Skip to content

AxiomeCG/awesome-threejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


logo

Awesome Threejs Awesome badge

3️⃣ A curated list of awesome ThreeJS resources

Contents

Core

Books

3D Theory

Creative Coding

  • 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

Courses

ThreeJS

  • 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

Shaders

Articles

Documentation

3D Theory

Tutorials

Water

Generative Art

Collision detection

Inspiration

Common

  • same.energy: Visual search engine by keyword or picture (a bit like Pinterest)
  • Pinterest: Good source of inspiration

Shaders

  • ShaderToy: Prepare to be blown away by this shader sharing platform.

Videos

Shaders

Resources

Miscellaneous

  • Three.js Resources: Contains a bunch of curated resources (tools, tutorials, libraries, and techniques...) related to Three.js

Matcaps

3D assets

  • Poliigon: Assets for 3D artists (Textures, Models, HDRI)
  • Poly Haven: Public CC0 3D Asset Library (Textures, Models, HDRI)

Textures

  • 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

GLSL Shaders

Main

Other

  • 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

Tools

Debug/Optimization

  • GLTF Report: Web app to diagnose, optimize your gltf files. Nice inspector that even support BASIS/KTX2 textures. by @donmccurdy
  • gltf-transform: CLI to run on your GLTF file for a lot of different optimizations (welding, pruning, draco compression...). It also enables the conversion of textures into KTX2 for optimizing textures on the GPU by @donmccurdy

Scene Creation

  • Polygonjs: Node-based WebGL design tool, used for procedural geometry, particles, materials and animation.

3D modeling

  • 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.

Materials

Cube Texture

  • 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

Shaders

Online tools

  • 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
  • NodeToy: The shader tool for the web. NodeToy provides creators a powerful editor to create incredible new shaders and visual effects. If you are a react-three-fiber user, consider checking react-nodetoy. All of this provided by @Nodetoy.
  • Shader Park: A JavaScript library for creating interactive procedural 2D and 3D shaders. Helpful for raymarching shaders (the raymarcher is already built-in, SDFs and boolean operation between them already available). Works both in p5js style and GLSL. (to contribute) by @shader-park

Installed tools

  • 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.

Sandbox

  • 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.

Hosting

  • vercel: Easy tool to host your projects, and free for a personal/hobbyist type of projects.

Libraries

GLSL/HLSL Shaders

  • 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.

Animation

  • gsap: A mastodon for animations in CSS and for three.js too, backed up by awesome plugins like ScrollTrigger, Flip,... and mostly framework agnostic.

Related Frameworks

React

Angular

Vue

Svelte

Physics

Spatial querying & Raycasting

  • 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)

Constructive Solid Geometry

  • 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, ...)

Pathfinding

Characters

  • ossos A complete character skinning & animation library for the web
  • mannequin.js Library for procedural character generation. Armature included

Demonstrations

Water

  • 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

Collision detection

Community

Core

Contribute

Contributions welcome! Read the contribution guidelines first.

Or you can reach me on Twitter:

Twitter

Related Lists