← All reportsPublic report

mrdoob/three.js

JavaScript 3D Library.

115k stars JavaScript View on GitHubprofiled 11d ago
Try GitZoid
199PRs this week
34Contributors
225Deps scanned
0Issues found
01 · Repo overview

How three.js is put together

three.js is a browser-side JavaScript 3D rendering library published as the npm package 'three' (v0.185.0), built as pure ES modules with no runtime dependencies. The core library lives in src/ and is bundled by Rollup into multiple builds (three.module.js, three.cjs, three.webgpu.js, three.tsl.js) exposing WebGL/WebGPU renderers plus scene-graph, materials, loaders, and node-based shader systems. The repo also ships a browser-based 3D editor (editor/), a Chrome DevTools extension (devtools/), a manual (manual/), and Node.js tooling under utils/ including a local static file server for development. Data flow is client-only: user code constructs scenes/cameras/renderers that draw to canvas via WebGL/WebGPU APIs; the editor persists project state to window.localStorage.

Languages

JavaScriptHTMLCSS

Frameworks

WebGLWebGPUWebXRNode.js (dev tooling)

Infrastructure

npm registry distribution (package 'three')jsDelivr CDN distributionChrome extension packaging (devtools/manifest.json)Local HTTP dev server on port 8080

Major components

Core library (src/, build/)

The three.js scene graph, math, materials, geometries, loaders, and WebGL/WebGPU renderers, pre-bundled into ESM/CJS/WebGPU/TSL entry points.

Editor (editor/)

A full in-browser 3D scene editor with command-based undo history, sidebar property panels, menubars, viewport controls, and localStorage-backed configuration.

DevTools extension (devtools/)

A Chrome DevTools extension (background, content-script, bridge, panel) for inspecting live three.js scenes.

Dev server & tooling (utils/)

Node.js utilities including a zero-dependency static file server with MIME handling, range requests, and directory listings, plus build/changelog scripts.

Test infrastructure (test/)

Puppeteer-driven unit tests (headless/headful) over UnitTests.html pages, e2e screenshot tests, WebGPU e2e, and tree-shaking bundle checks.

Documentation (manual/, docs pipeline)

HTML tutorial pages under manual/pages plus JSDoc-generated API docs and an llms.txt builder.

Linting & code style (eslint.config.js)

Flat ESLint config enforcing the mdcs style guide, single quotes, prefer-const, JSDoc type checks, and compat/browser-API rules across src, examples, editor, manual, test, and utils.

Over the past five weeks, three.js development has centered on its next-generation WebGPU renderer and the TSL shader language, with a big push on GPU-native unit testing, new lighting features like cascaded shadow maps for sun-like lights, and a fast-growing Gaussian Splatting pipeline. The visual editor and inspector tools also saw steady polish, while numerous loaders (FBX, USD, Rhino3dm, SPZ, 3MF) gained fixes and new capabilities. Later weeks shifted toward cleanup and hardening: async renderer disposal, memory-leak fixes, and better test coverage.

Week by week

2026-08-24A quieter week focused on renderer disposal, shadow-map reliability, and editor group selection.latest6 changes

Feature

Async renderer disposal

The renderer gained a dispose() method that can clean up asynchronously, making shutdown safer.

Fix

Lighter anti-aliasing pass

The SSAO-style post-processing pass now uses single-sample render targets to save memory.

Fix

Dynamic shadow map detection

The node-based lighting system now notices when shadow map sizes change so shadows update correctly.

Feature

Editor group selection

The built-in scene editor now lets users select whole groups of objects at once.

Chore

More GPU unit tests

New GPU tests cover area lights, point lights, environment lighting, and post-processing utilities.

Chore

Removed ecsy example

An outdated example using the ecsy library was removed from the examples collection.

2026-08-17A large week dominated by a brand-new suite of GPU-native unit tests that caught many real math bugs in TSL.6 changes

Chore

GPU-native TSL unit tests

A new testing system runs shader-language functions directly on the GPU, with broad coverage of math, color, packing, and logic operations.

Fix

Batch of TSL math bug fixes

The new tests exposed and fixed bugs in rotate(), sinc(), determinant(), faceForward(), gain(), and pcurve() functions.

Feature

Volumetric fog example

A new example demonstrates realistic fog rendered through post-processing.

Refactor

Tree-shaking friendly nodes

Shader node code was restructured so unused parts can be stripped from builds, shrinking bundle sizes.

Feature

SunLight moved to addons with two cascades

The sun-lighting feature became an official add-on and now uses two shadow cascades instead of more.

Fix

WebGL readback cleanup

Fixed leftover GPU buffer bindings after asynchronous pixel reads that could cause glitches.

2026-08-10Gaussian Splatting matured rapidly while a new SunLight with cascaded shadows landed in WebGLRenderer.6 changes

Feature

SunLight with cascaded shadow maps

WebGLRenderer gained a dedicated sun light that renders sharp shadows over large outdoor scenes using cascaded techniques.

Refactor

Gaussian splat performance work

Splat rendering got faster bounding-box generation, packed colors, per-mesh culling, and correct sorting when objects move.

Feature

View-dependent splat shading

Gaussian splats now use spherical harmonics so they change appearance realistically as the camera moves.

Feature

Order-independent transparency pass

A new render pass lets transparent objects blend correctly regardless of draw order.

Feature

SPZ v4 and 3MF beam lattice support

Loaders added support for the newest SPZ splat format and basic beam-lattice geometry in 3MF files.

Feature

Multi-touch trackball controls

The orbit-style camera control now supports rotating with multiple fingers on touch devices.

2026-08-03Gaussian Splatting arrived as a full TSL-based renderer with glTF import, alongside a direct render pipeline option.6 changes

Feature

Gaussian Splat renderer and loader

A complete splat-rendering system using the shader language shipped, working on both WebGPU and WebGL and loading via glTF.

Feature

DirectRenderPipeline

WebGPURenderer gained a simpler direct rendering mode for scenes that don't need intermediate passes.

Refactor

Rhino3dm loader improvements

The Rhino 3D file loader got faster loading, physically-based materials, and editor import support.

Fix

Depth-of-field memory leak fixed

The depth-of-field effect no longer leaks GPU memory when it is set up repeatedly.

Feature

FBX multi-clip timelines

FBX animation files containing several clips on one timeline now load correctly.

Fix

Physical material specular fix

Node-based physical materials had broken specular highlights that were corrected.

2026-07-27WebXR received major quality upgrades including MSAA anti-aliasing, while the inspector tool gained split-screen views.6 changes

Feature

MSAA for WebXR

VR/AR sessions on WebGPU now support multi-sample anti-aliasing for smoother edges in headsets.

Feature

Inspector split screen and revisions

The debugging inspector added side-by-side views, grid layouts, and revision history.

Fix

WebXR transmission fix

Glass-like transmission materials now render correctly during VR sessions.

Feature

Object3D.dispose()

Scene objects gained a standard way to release their resources when removed.

Feature

GLTFExporter copyright notice

Exported glTF files can now include a custom copyright notice.

Fix

XR camera restore and loader fixes

Camera settings are restored after VR sessions end, and image loading regressions were repaired.

03 · Security check

Dependencies and code review

225 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 225 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required