Three.js
The general-purpose JavaScript 3D library for the web, with WebGL and WebGPU renderers. Part of Open-source motion studio: 20 repos.
Checked 2026-10-27 against the GitHub repository, its README, and the npm or PyPI registry where relevant.
| Runtime | Browser; GPU through WebGL or WebGPU. Runs headless only in a headless browser with GPU or software rendering. |
| How an agent drives it | Library API in code. It renders on request, so a host that calls render() per frame at a chosen time gives frame-exact output; HyperFrames lists Three.js as a supported adapter. |
| License | MIT. |
| Maintenance | Latest release r186, 2026-09-24; repo pushed 2026-10-27; not archived. |
What it gives you
- Input: scenes of cameras, meshes, materials, lights and loaders (including glTF); shaders through material extensions. Output: a canvas.
- SVG and CSS3D renderers are available as add-ons. Examples, manual and a large community.
Key differentiator
The broadest ecosystem for 3D on the web: loaders, examples and integrations (react-three-fiber, many tools). Source: README and release cadence.
Pick something else when
Babylon.js (Apache-2.0) or PlayCanvas (MIT) for a more engine-like toolset with an editor. OGL for a smaller shader-first layer. regl for a functional WebGL wrapper. See the 3D comparison.
Agent fit
Good as a scene inside a composition: scripts are text, assets are files, and renderers can seek time. Needs GPU or software rendering in the capture environment.
Overlap with the rest of the stack
Overlaps OGL (smaller, shader-first). Reads files optimised by glTF Transform. Adapter in HyperFrames.