README-en
Last updated
Last updated
3️⃣ A curated list of awesome ThreeJS resources
3D Math Primer for Graphics and Game Development: A must-read book to be comfortable with 3D maths. by @ZPostFacto & @Ian-Parberry
Physically Based Rendering - From Theory to Implementation: A reference in term of PBR concepts. A gold mine. by @mmp, @wjakob & @humper
The Nature of Code: Amazing book by a very funny author about a bunch of stuff to make experiences more natural based on the Processing language by @shiffman
ThreeJS Journey: A great course accessible for the most beginner programmer who wants to learn how to make ThreeJS 3D experiences from scratch. by @bruno_simon
The Book of Shaders: A reference on the road to master shaders. And it's free. by @patriciogv
Shaderific for OpenGL: Documentation on GLSL
Explaining Homogeneous Coordinates & Projective Geometry: A very comprehensive article on homogeneous coordinates and projective geometry (To finally understand what is the 4th coordinate (w) in your vertex shaders)
Surface Sampling in Three.js: A comprehensive article about MeshSurfaceSampler
How to Create a Fake 3D Image Effect with WebGL: A good article to learn how to add a fake depth to a 2D image in ThreeJS.
Tutorial on Matrices: A limpid tutorial to understand shader projection, view and model matrices (visually impactful)
Real-time rendering of water caustics Clever approach to caustics rendering
Realtime fluid simulation Awesome article for the ones that want to create truly realistic water
generative artistry tutorials: Really awesome evolutive tutorial to acquire some knowledge on Generative Art by @rumyra & @tholman
same.energy: Visual search engine by keyword or picture (a bit like Pinterest)
Pinterest: Good source of inspiration
ShaderToy: Prepare to be blown away by this shader sharing platform.
ShaderShop videos: Some awesome videos about ShaderShop and more. by @mandy3284
Poliigon: Assets for 3D artists (Textures, Models, HDRI)
Poly Haven: Public CC0 3D Asset Library (Textures, Models, HDRI)
3D textures: Free PBR textures with Diffuse, Normal, Displacement, Occlusion, Specularity and Roughness Maps.
Arroway Textures: Digital textures for 3D rendering and real-time use.
ambientCG: - CC0 textures for Physically Based Rendering
Signal shaping functions: A useful set of signal shaping patterns (to convert into GLSL) by @iquilezles
Shaping functions: Awesome set of shaping functions for shaders by @golan
Cheat sheet on curves: A quick reminder on how to make some signal patterns by @kyndinfo
GLSL Noises: Noises coded by others so you can use them directly in your shaders for cool effects (included: Perlin noises)
Realistic water shader There are also some links with explanation of the approach
PixelSpirit Elements Deck: This is a tarot deck for learning GLSL shaders. Each PixelSpirit card has a visual element and its GLSL shader code. The cards are ordered from simplest to most complex, building a library of code functions that combine like a book of spells to form an infinite visual language. by @patriciogv
PixelSpirit GitHub Library associated with the PixelSpirit Elemens Deck by @patriciogv
Polygonjs: Node-based WebGL design tool, used for procedural geometry, particles, materials and animation.
Blender: Free and powerful to create your own 3D assets. A lot of export file extensions are available.
Houdini: To create procedural 3D assets. The free licence "Houdini Apprentice" can be used to learn (no commercial usage)
Spline: A promising tool for 3D modeling, collaboratively.
HDRI-to-CubeMap: A tool to convert your HDRI file into a Cube map that can be load as a CubeTexture in ThreeJS. by @matheowis
GraphToy: Powerful tool to wrap your head around and test shaping signals in GLSL by @iquilezles
ShaderShop editor: Visually impactful editor to work on shaping signals, by drag and dropping patterns. (Mindblowingly awesome) by @mandy3284
glslViewer: Console-based GLSL Sandbox for 2D/3D shaders by @patriciogv. Battle-tested by its creator, it enables to build a creative pipeline agnostic to the target platform and to iterate very fast and with less frictions for making a draft of your shaders ideas. A must-have in your toolkit.
codesandbox: Sandbox to experiment and share with people. ThreeJS template can be easily found.
codepen: Found it hard to configure for ThreeJS x Typescript, but a good sandbox to try out new things.
threejs-editor: A nice tool to, for example, try out your Blender exports and how they will react in ThreeJS.
vercel: Easy tool to host your projects, and free for a personal/hobbyist type of projects.
lygia: a granular and multi-language shader library designed for performance and flexibility by @patriciogv. A cross platform library that will help you iterate on your shaders very easily. Going deep in the code of a specific functionality can also help you learn GLSL/HLSL.
react-three-fiber: A declarative way of handling your ThreeJS stuff for React by @pmndrs
angular-three: Declarative ThreeJS inspired by r3f for the Angular ecosystem by @nartc
threlte: A three.js component library for Svelte.
svelte-cubed: Declarative ThreeJS for Svelte by @Rich-Harris
three-mesh-bvh by @gkjohnson: Highly effective way to check for collisions and to accelerate raycasting by the usage of bounding volume hierarchy. (Really a must have in your toolkit)
three-bvh-csg by @gkjohnson: A flexible, memory compact, fast and dynamic CSG implementation on top of three-mesh-bvh. (Amazing tool to perform some Boolean operations between meshes like intersection, difference, ...)
Pathfinging.js Useful library with tons of settings
Three-pathfinging Three.js plugin for navigation
Kompute Easy to use steering library
ossos A complete character skinning & animation library for the web
mannequin.js Library for procedural character generation. Armature included
fft-ocean Fast Fourier Transform ocean rendering for Three.js
skunami.js Marvellous project with realistic water interaction
Shallow water Demo project that shows water ripple effect
Axis-Aligned Bounding Boxes AABB based collision detection
Stackoverflow ThreeJS: Forum where you can ask your questions ( be sure to search well before)
Contributions welcome! Read the contribution guidelines first.
Or you can reach me on Twitter:
awesome-glsl - A curated list of awesome GLSL resources.
awesome-webgl - A curated list of awesome WebGL libraries, resources and much more.
awesome-webgpu - A curated list of awesome WebGPU resources.
awesome-opengl - A curated list of awesome OpenGL libraries, debuggers and resources.
awesome-creative-coding - A carefully curated list of awesome creative coding resources primarily for beginners/intermediates.
awesome-computer-vision - A curated list of awesome computer vision resources.
awesome-vulkan - A curated list of awesome Vulkan projects and ecosystem.
gamedev - A awesome list about game development.
graphics-resources - A list of graphic programming resources.