Game engine
Three.js
Three.js is the JavaScript 3D library under a lot of web scenes. It renders. Cameras, loaders, and controls are included. A game loop, physics, and UI are not a product you switch on.

Developer: mrdoob and contributors
Overview
Treat Three.js as a renderer with excellent examples, not as a peer of Unity. You will choose a physics library, a UI approach, and an asset pipeline. That is an advantage when the “game” is a product configurator or a one-off WebGL piece, and a tax when you wanted enemies and a save file.
The examples folder is the textbook: pointer-lock controls, loaders, postprocessing. Games in the wild, such as HexGL, show the library used as an engine only because the authors wrote the rest.
Choose Babylon.js instead when you want physics, a GUI, and an inspector already aimed at games. Choose Three.js when you want the thinner dependency and you know you will build the frame.
Technical specifications
Specs checked 2026-10-05. Version lines move; the download link is the source of truth.
- Developer
- mrdoob and contributors
- Version line
- r184
- License
- MIT
- Business model
- MIT library. There is no editor seat and no runtime fee. You assemble the game.
- Releases
- Frequent numbered releases. r184 is the 2026 baseline; pin the revision in package.json.
- Editor platforms
- Any OS with a browser and Node.js
- Export targets
- Web
- Languages
- JavaScript, TypeScript
- 2D / 3D
- 3D
- VR
- Yes, through WebXR examples and controls.
- AR
- WebXR AR on devices that expose it. Not a mobile AR product kit.
- Visual scripting
- No. It is a rendering library.
- Beginners
- For a web developer who wants a 3D scene. Not for someone who wants “new 3D game” from a template with a player already in it.
- Learning curve
- Medium if you know JavaScript. Steep if you expected an engine to supply gameplay.
- Graphics
- Whatever you build on WebGL or WebGPU. The ceiling is the browser, not a missing material editor.
- Team size
- One graphics-comfortable developer, or a small web team.
- GitHub stars
- 108,000 · mrdoob/three.js
- Documentation
- https://threejs.org/docs/
- Community
- https://discourse.threejs.org/
- Assets and examples
- https://threejs.org/examples/
Where it fits
- MIT, ubiquitous, and documented by a huge example set.
- WebGL and WebGPU in the browser, including WebXR.
- No editor and no vendor plan.
Where it does not
- Not a game engine. Gameplay, physics, and UI are separate choices.
- Desktop and console builds are not the point.
- You maintain the scene graph discipline yourself.
Matching source
All examples
Drakonas
Bullet-hell shooter rendered with Three.js.

Three.js tower defense
3D tower defense on Three.js.

3d.city
City builder used to stress WebGL and Three.js.

Astray
WebGL maze using Three.js and 2D physics.

HexGL
Futuristic browser race built on Three.js.
Pirate 3D
Three.js scene packaged toward iOS with Capacitor.
How does it compare?
The batteries-included web 3D engine.
A browser editor on top of a WebGL engine.
Native high-fidelity 3D when the browser is the wrong target.
Questions
Is Three.js a game engine?
No. It is a 3D library. You can build a game on it. The library will not hand you one.
Three.js or Babylon.js?
Three.js for a thin renderer you control. Babylon.js when you want an engine-shaped tool: inspector, GUI, and physics options.
Which version should I pin?
r184 is a solid 2026 baseline. Pin the exact release your examples were written against.
Does it run outside the browser?
The target is the browser. Native shells exist as wrappers. They are not the supported game-export story.