mrdoob / three.js
git clone https://github.com/mrdoob/three.js.git
r186 · 27d ago
🔥 on GitHub Trending today
JavaScript library for creating and rendering 3D scenes in the browser via WebGL and WebGPU renderers.
Why you might care
A general-purpose, lightweight 3D library for web apps and games, with WebGL and WebGPU renderers plus SVG and CSS3D renderers available as addons. Widely used with a large ecosystem, examples, and docs.
+18
stars, 24h · #794
+~126
stars, 7 days · #969
+1.3k
stars, 30 days · #401
117k
★ total · +0% this week
37k
forks · 400 open issues
Star history (as recorded here)
LanguageJavaScript
LicenseMIT
Created2010-03-23 (16y ago)
Last pushtoday
Watchers2.5k
OwnerUser
Seen on GitHub Trending
- 2026-10-22 — #12 monthly in javascript · +1,340 ★
- 2026-10-21 — #11 monthly in javascript · +1,317 ★
- 2026-10-20 — #11 monthly in javascript · +1,303 ★
GitHub topics
Links
- GitHub: github.com/mrdoob/three.js
- Homepage: https://threejs.org/
- Releases · Issues · Hacker News mentions
README excerpt
# three.js [![NPM Package][npm]][npm-url] [![Build Size][build-size]][build-size-url] [![NPM Downloads][npm-downloads]][npmtrends-url] [![jsDelivr Downloads][jsdelivr-downloads]][jsdelivr-url] [![Discord][discord]][discord-url] #### JavaScript 3D library The aim of the project is to create an easy-to-use, lightweight, cross-browser, general-purpose 3D library. The current builds only include WebGL and WebGPU renderers but SVG and CSS3D renderers are also available as addons. Examples — Docs — Manual — Wiki — Migrating — Questions — Forum — Discord ### Usage This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a `WebGL` renderer for the scene and camera, and it adds that viewport to the `document.body` element. Finally, it animates the cube within the scene for the camera. [code] If everything goes well, you should see this. ### Cloning this repository Cloning the repo with all its history results in a ~2 GB download. If you don't need the whole history you can use the `depth` parameter to significantly reduce download size. [code] ### Change log Releases [npm]: https://img.shields.io/npm/v/three [npm-url]: https://www.npmjs.com/package/three [build-size]: https://badgen.net/bundlephobia/minzip/three [build-size-url]: https://bundlephobia.com/result?p=three [npm-downloads]: https://img.shields.io/npm/dw/three [npmtrends-url]: https://www.npmtrends.com/three [jsdelivr-downloads]: https://data.jsdelivr.com/v1/package/npm/three/badge?style=rounded [jsdelivr-url]: https://www.jsdelivr.com/package/npm/three [discord]: https://img.shields.io/discord/685241246557667386 [discord-url]: https://discord.gg/56GBJwAnUS
Blurb generated by claude-haiku-5-5 1d ago. Star deltas marked ~ are extrapolated from partial history.