Three.js Tools, Examples & Courses for
3D Web Development, Gaming & VR.

Explore a curated collection of Three.js resources, courses, and examples for building immersive Three.js websites, VR projects, and interactive Three.js games. Find tools, tutorials, libraries, and Three.js shaders to enhance your development and bring your 3D ideas and experiences to life.

New to it? Start with what Three.js is — then pick a learning path or see how it compares to the alternatives.

Loading...

0 / 282 tools

Full ecosystem of the 3D web

Everything for building on the 3D web in one place — the libraries you install, the courses you learn from, and the work that shows what is possible.

Tools & libraries

A curated directory of Three.js tools, libraries, shaders and 3D assets, sorted by category.

Browse the directory

Courses & learning

Interactive Three.js courses with live demos, plus tutorials and a structured path to follow.

Start learning

Showcase & gaming

Real Three.js websites, WebGL games and VR projects built by the community.

See the showcase

Creators & marketplace

Find the developers and agencies behind the work, or pick up a production-ready boilerplate.

Meet the creators

F.A.Q

Three.js, answered.

The questions people actually search alongside Three.js — with a link to the page that covers each one properly.

The basics

What Three.js is, and what it costs.

Three.js is a free, open-source JavaScript library for rendering 3D graphics in the browser using WebGL or WebGPU. It wraps the browser's low-level graphics APIs in a friendlier scene graph — cameras, lights, meshes, materials — so you can build interactive 3D product configurators, games, data visualisations and immersive sites with plain JavaScript, and the visitor installs nothing. Read the full explainer, or see what people have built with it.

Yes. Three.js is released under the MIT licence, which means it is free to use in personal and commercial projects, with no runtime fees and no per-seat licensing. You can read the terms on the project's GitHub repository. Paid options in this ecosystem are things built around it — courses, and boilerplates and templates — never the library itself.

Three.js is built on top of WebGL (and now WebGPU) rather than competing with it. WebGL is the low-level browser graphics API; Three.js wraps it in a scene graph, camera/light/material abstractions and asset loaders so you write far less boilerplate. Use Three.js for nearly everything, and drop to raw WebGL only where a library's abstractions cost more than they save. The full comparison goes into when that is.

Choosing a library

How Three.js compares, and when something else fits better.

Yes — it remains the most widely used 3D library on the web, and it is actively developed: recent releases added a WebGPU renderer and TSL, its new shading language. The honest caveat is that it is a rendering library, not a game engine, so for some projects a batteries-included engine is the better fit. Three.js alternatives lays out where that line falls, and the TSL guides cover the newer WebGPU work.

Nothing is strictly better — the alternatives trade Three.js's flexibility for less setup in a specific niche. Babylon.js is a more complete, batteries-included engine; PlayCanvas ships a hosted visual editor; A-Frame is a declarative HTML layer for WebXR (built on Three.js itself); and model-viewer is a zero-code web component if you only need to display one model. See the alternatives breakdown.

Pick Three.js when you want maximum flexibility and the widest choice of framework integrations (React Three Fiber, TresJS). Pick Babylon.js when you want more built in and fewer decisions on day one — it ships a physics API, a node material editor and a scene inspector out of the box. Neither is objectively better; they optimise for different teams. Full side-by-side.

React Three Fiber is a React renderer for Three.js — it produces the exact same underlying Three.js objects, just expressed as JSX instead of imperative new THREE.X() calls. So the question is really whether your project is already a React app: if it is, use R3F and gain the component ecosystem; if it is not, use vanilla Three.js rather than adding React for a feature that does not need it. Compare the two.

Learning it

The curve, and where to start.

The API itself is approachable if you know JavaScript — a first scene is a handful of lines. The harder part is the 3D concepts underneath: coordinate spaces, lighting models, materials, and eventually shaders, none of which are specific to Three.js. Most people are productive on simple scenes quickly and then hit a slower stretch at the graphics fundamentals. Our learning path is ordered around exactly that.

It depends far more on your starting point than on the library. If you are comfortable with JavaScript, rendering a model and animating a scene is a matter of days; shaders, performance work and production-grade asset pipelines take considerably longer. Rather than guess at a number for you, we'd point at the structured courses, which state their own scope and prerequisites, and the hands-on guides for specific problems.

Start with what Three.js is and what it can do, then follow the learning path. When you hit a concrete problem, the guides are written against a stated Three.js release, and the glossary covers the vocabulary. For libraries and helpers, browse the tools directory.