dorkhub

awesome-threejs

3️⃣ A curated list of awesome ThreeJS resources

AxiomeCG
94667 forksCC0-1.0updated 3 days ago
git clone https://github.com/AxiomeCG/awesome-threejs.gitAxiomeCG/awesome-threejs

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

more like this

lottery

🎉🌟✨🎈年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序,奖品🧧🎁,文字,图片,抽奖规则均可配置,😜抽奖人员信息Excel一键导入😍,抽奖结果Excel导出😎,给你的抽奖活动带来全新酷炫体验🚀🚀🚀

JavaScript4.6k

q5xjs

A small and fast alternative (experimental) implementation of p5.js

JavaScript574

search

search projects, people, and tags