Skip to content
Projects

AxiomeCG/awesome-threejs

View on GitHub

AxiomeCG/awesome-threejs has 1,026 GitHub stars and 126 forks. GitHot measured +2 stars in 24 hours. Last checked 2026-11-08 13:28 UTC. Last push 2026-07-28.

How these counts are measured

3️⃣ A curated list of awesome ThreeJS resources

Measured star growth

in 24h
+2
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

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

Audio Visualization

  • Audio Reactive 3D Visualizer: An MIT-licensed browser-based music visualizer combining Three.js, WebGL, and the Web Audio API, with real-time rendering and Full HD MP4 export — by @7g3n.

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.
  • Three-Blender: Blender based tool, to convert your Blender files directly to threeJS.

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)
  • img2threejs: Rebuild the object in a reference image as a code-only, procedural, quality-gated Three.js model. Pure-Python stdlib tooling emits diffable TypeScript, no downloaded meshes. by @hoainho
  • 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.

Controls

  • camera-controls by @yomotsu: A well-rounded camera controller for ThreeJS with damping, boundaries, and smooth transitions between viewpoints — more full-featured than the built-in OrbitControls.
  • three-pivot-controls by @bbdaii: A gizmo-style pivot control for vanilla ThreeJS — drag to translate, rotate, and scale objects with mouse and touch, inspired by drei's PivotControls but framework-free.

Related Frameworks

React

  • react-three-fiber: A declarative way of handling your ThreeJS stuff for React by @pmndrs
  • drei: Useful helpers for react-three-fiber by @pmndrs
  • react-postprocessing: A postprocessing wrapper for @react-three/fiber by @pmndrs
  • react-spring: An awesome library about physically accurate animations. Works smoothly also for react-three-fiber using the package @react-spring/three
  • framer-motion: A nice animation library for react, and can be used with react-three-fiber too through the framer-motion-3d package usage. Very nice for binding animation on entering and leaving the viewport element.
  • morph-hero: A cinematic portfolio hero component where particles morph between a country flag and a name, with constellation lines and mouse parallax. Single particle system architecture. Live demo at morph-hero.othmaro.dev by @othmarodev

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

Explore related projects