# Useful Links

The following is a collection of links that you might find useful when learning three.js.
If you find something that you'd like to add here, or think that one of the links below is no longer relevant or working, feel free to click the 'edit' button in the bottom right and make some changes!
Note also that as three.js is under rapid development, a lot of these links will contain information that is out of date - if something isn't working as you'd expect or as one of these links says it should, check the browser console for warnings or errors. Also check the relevant docs pages.

## Help forums

Three.js officially uses the [link:https://discourse.threejs.org/ forum] and [link:http://stackoverflow.com/tags/three.js/info Stack Overflow] for help requests. If you need assistance with something, that's the place to go. Do NOT open an issue on Github for help requests.

## Tutorials and courses

### Getting started with three.js

- [link:https://threejs.org/manual/#en/fundamentals Three.js Fundamentals starting lesson]
- [link:https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-1-the-scene Beginning with 3D WebGL] by [link:https://codepen.io/rachsmith/ Rachel Smith].
- [link:https://www.august.com.au/blog/animating-scenes-with-webgl-three-js/ Animating scenes with WebGL and three.js]

### More extensive / advanced articles and courses

- [link:https://threejs-journey.com/ Three Journey] Course by [link:https://bruno-simon.com/ Bruno Simon] - Teaches beginners how to use Three.js step by step
- [link:https://discoverthreejs.com/ Discover three.js]
- [link:http://blog.cjgammon.com/ Collection of tutorials] by [link:http://www.cjgammon.com/ CJ Gammon].
- [link:https://medium.com/soffritti.pierfrancesco/glossy-spheres-in-three-js-bfd2785d4857 Glossy spheres in three.js].
- [link:https://www.udacity.com/course/interactive-3d-graphics--cs291 Interactive 3D Graphics] - a free course on Udacity that teaches the fundamentals of 3D Graphics, and uses three.js as its coding tool.
- [Link:https://aerotwist.com/tutorials/ Aerotwist] tutorials by [link:https://github.com/paullewis/ Paul Lewis].
- [link:https://discourse.threejs.org/t/three-js-bookshelf/2468 Three.js Bookshelf] - Looking for more resources about three.js or computer graphics in general? Check out the selection of literature recommended by the community.

## News and Updates

- [link:https://twitter.com/hashtag/threejs Three.js on Twitter]
- [link:http://www.reddit.com/r/threejs/ Three.js on reddit]
- [link:http://www.reddit.com/r/webgl/ WebGL on reddit]

## Examples

- [link:https://github.com/edwinwebb/three-seed/ three-seed] - three.js starter project with ES6 and Webpack
- [link:http://stemkoski.github.io/Three.js/index.html Professor Stemkoskis Examples] - a collection of beginner friendly examples built using three.js r60.
- [link:https://threejs.org/examples/ Official three.js examples] - these examples are maintained as part of the three.js repository, and always use the latest version of three.js.
- [link:https://raw.githack.com/mrdoob/three.js/dev/examples/ Official three.js dev branch examples] - Same as the above, except these use the dev branch of three.js, and are used to check that everything is working as three.js being is developed.

## Tools

- [link:https://github.com/tbensky/physgl physgl.org] - JavaScript front-end with wrappers to three.js, to bring WebGL graphics to students learning physics and math.
- [link:https://whsjs.readme.io/ Whitestorm.js] – Modular three.js framework with AmmoNext physics plugin.
- [link:http://zz85.github.io/zz85-bookmarklets/threelabs.html Three.js Inspector]
- [link:http://idflood.github.io/ThreeNodes.js/ ThreeNodes.js].
- [link:https://marketplace.visualstudio.com/items?itemName=slevesque.shader vscode shader] - Syntax highlighter for shader language.
  [link:https://marketplace.visualstudio.com/items?itemName=bierner.comment-tagged-templates vscode comment-tagged-templates] - Syntax highlighting for tagged template strings using comments to shader language, like: glsl.js.
- [link:https://github.com/MozillaReality/WebXR-emulator-extension WebXR-emulator-extension]

## WebGL References

- [link:https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf webgl-reference-card.pdf] - Reference of all WebGL and GLSL keywords, terminology, syntax and definitions.

## Old Links

These links are kept for historical purposes - you may still find them useful, but be warned that they may have information relating to very old versions of three.js.

- [link:https://www.youtube.com/watch?v=Dir4KO9RdhM AlterQualia at WebGL Camp 3]
- [link:http://yomotsu.github.io/threejs-examples/ Yomotsus Examples] - a collection of examples using three.js r45.
- [link:http://fhtr.org/BasicsOfThreeJS/#1 Introduction to Three.js] by [link:http://github.com/kig/ Ilmari Heikkinen] (slideshow).
- [link:http://www.slideshare.net/yomotsu/webgl-and-threejs WebGL and Three.js] by [link:http://github.com/yomotsu Akihiro Oyamada] (slideshow).
- [link:https://www.youtube.com/watch?v=VdQnOaolrPA Trigger Rally] by [link:https://github.com/jareiko jareiko] (video).
- [link:http://blackjk3.github.io/threefab/ ThreeFab] - scene editor, maintained up until around three.js r50.
- [link:http://bkcore.com/blog/3d/webgl-three-js-workflow-tips.html Max to Three.js workflow tips and tricks] by [link:https://github.com/BKcore BKcore]
- [link:http://12devsofxmas.co.uk/2012/01/webgl-and-three-js/ A whirlwind look at Three.js] by [link:http://github.com/nrocy Paul King]
- [link:http://bkcore.com/blog/3d/webgl-three-js-animated-selective-glow.html Animated selective glow in Three.js] by [link:https://github.com/BKcore BKcore]
- [link:http://www.natural-science.or.jp/article/20120220155529.php Building A Physics Simulation Environment] - three.js tutorial in Japanese