Git Product home page Git Product logo

awesome-threejs's Introduction


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

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

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

awesome-threejs's People

Contributors

axiomecg avatar frading avatar jaimetorrealba avatar johnsamilin avatar kalmarv avatar onsummer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-threejs's Issues

Change the structure of the awesome-list to enlight the thematic more than the type of resources.

Currently, the main axis of classification is the type of resources (books, articles, ...)

It seems to me that the more the list grows and the more it becomes messy due to it.
I think what would be more interesting is a classification by thematic (shaders, collisions, etc...) because I guess it is how people are searching for a resource: "What interesting resources can I get on this specific topic?"

If anyone has a better idea on the structure, feel free to share your insights here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.