Three.js website screenshot

Three.js

Three.js is an open-source JavaScript 3D library originally created by Ricardo Cabello (mrdoob) in 2010 and now maintained by a broad community of contributors. It abstracts WebGL and WebGPU behind a clean object-oriented API — Scenes, Cameras, Lights, Geometries, Materials, Textures, Loaders, Controls, Animation, and Post-Processing — to make interactive 3D in the browser practical for games, product configurators, data visualization, generative art, GIS, scientific visualization, simulations, AR/VR (WebXR), and creative coding. The library ships as the `three` npm package under MIT license with a rich addon ecosystem (`three/addons/*`) including dozens of loaders for industry asset formats (glTF, OBJ, FBX, USDZ, KTX2, DRACO), controls, helpers, post-processing passes, and a node-based shading language (TSL) that targets both WebGL and WebGPU. A browser-based editor at threejs.org/editor produces scenes in a documented JSON object format. Three.js has become the de-facto foundation for the JavaScript 3D ecosystem and underpins higher-level projects including React Three Fiber, A-Frame, model-viewer, Threlte, and TroisJS.

Three.js publishes 6 APIs on the APIs.io network. Tagged areas include 3D, Graphics, WebGL, WebGPU, and JavaScript.

The Three.js catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

Three.js’ developer surface includes developer portal, documentation, code examples, sandbox, changelog, support, tooling, and 22 more developer resources.

30.4/100 thin ▬ flat Agent 2/100 human only Full breakdown ↓
scored 2026-08-05 · rubric v0.9.1
6 APIs 21 Features
3DGraphicsWebGLWebGPUJavaScriptRenderingOpen SourceGame DevelopmentVisualization

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-05 · rubric v0.9.1
Composite quality — 30.4/100 · thin
Contract Quality 7.3 / 25
Developer Ergonomics 7.0 / 20
Commercial Clarity 0.0 / 20
Operational Transparency 2.7 / 13
Governance 7.0 / 12
Discoverability 6.5 / 10
Agent readiness — 2/100 · human only
Machine-Readable Contract 0 / 18
Agentic Access Contract 0 / 10
MCP Server 0 / 12
Machine-Readable Auth 0 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 0 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/threejs: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 6

Individual APIs this provider publishes, each with its own machine-readable definition.

Three.js Core

The Three.js core library provides the scene graph, cameras, lights, geometries, materials, textures, loaders, and animation primitives used to build interactive 3D applications...

Three.js Renderers (WebGL and WebGPU)

WebGLRenderer (default, ships in the main bundle) and the newer WebGPURenderer (under `three/webgpu`) draw the scene graph to a canvas. The Node Material System (TSL — Three.js ...

Three.js Loaders

A family of asset loaders consumed via `three/addons/loaders/*` covering glTF/GLB (recommended), OBJ, FBX, Collada, STL, PLY, 3MF, USDZ, DRACO, KTX2, Basis, and HDR/EXR environm...

Three.js Controls and Helpers

Camera and object controls shipped as addons (`three/addons/controls/*`) including OrbitControls, MapControls, TrackballControls, FirstPersonControls, FlyControls, PointerLockCo...

Three.js Post-Processing

EffectComposer plus a passes library — RenderPass, ShaderPass, UnrealBloomPass, BloomPass, SSAOPass, SSRPass, SAOPass, OutlinePass, SMAAPass, FXAAPass, TAARenderPass, BokehPass,...

Three.js Editor

Browser-based scene editor for assembling Three.js scenes, importing assets, editing materials and lights, and exporting to the documented Three.js JSON object format. Useful as...

Features 21

Notable capabilities this provider offers.

WebGLRenderer — production WebGL 2 renderer with PBR materials, shadows, instancing, and morph targets
WebGPURenderer — next-generation WebGPU backend with the Node Material System (TSL) authoring model
TSL — Three.js Shading Language, a node-based shader graph that compiles to both GLSL and WGSL
Scene graph based on Object3D with Groups, LOD, Bones, Skinned meshes, InstancedMesh, and BatchedMesh
Cameras — PerspectiveCamera, OrthographicCamera, ArrayCamera, StereoCamera, CubeCamera
Lights — Ambient, Directional, Point, Spot, Hemisphere, Rect Area, plus shadow maps and light probes
Materials — MeshStandard, MeshPhysical (clearcoat, sheen, iridescence, transmission), MeshBasic, MeshLambert, MeshPhong, MeshToon, Shader, Raw, Sprite, Line, Points
Geometry primitives — Box, Sphere, Plane, Cylinder, Cone, Torus, TorusKnot, Tetra/Octa/Icosa/Dodecahedron, Capsule, Lathe, Extrude, Tube
Loaders — glTF/GLB (with KHR_draco_mesh_compression, KHR_mesh_quantization, KHR_texture_basisu, EXT_meshopt_compression), OBJ, FBX, Collada, STL, PLY, 3MF, USDZ
Texture pipeline — KTX2/Basis Universal, HDR/EXR/RGBE, video textures, canvas textures, compressed textures
Animation system — AnimationMixer, AnimationClip, KeyframeTrack, morph target and skeletal animation
Controls addons — OrbitControls, MapControls, TrackballControls, PointerLockControls, TransformControls, ArcballControls, DragControls
Post-processing — EffectComposer with RenderPass, Bloom, SSAO, SSR, SMAA, FXAA, TAA, DOF, Outline, Glitch
XR — WebXR support for VR and AR via `renderer.xr` and XR controllers/hands
Physics integrations — Cannon.js, Ammo.js, Rapier (community)
Browser-based Editor at threejs.org/editor for visual scene authoring and JSON export/import
Three.js JSON Object format — documented serialization via `Object3D.toJSON()` and `ObjectLoader.parse()`
Distributed as `three` on npm, ES modules in `three/build/three.module.js`, addons in `three/addons/*`
TypeScript types via `@types/three` on DefinitelyTyped, mirrored in three-types/three-ts-types
Monthly release cadence — current release r184 (April 2026), 47k+ commits, 113k+ GitHub stars
MIT licensed, no required runtime dependencies, runs in browser, Node.js, Electron, Tauri, Deno, and React Native

Scroll for all 21

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Threejs Context

58 classes · 5 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Three.js API Rules

5 rules · 3 warnings 2 info

SPECTRAL

JSON Schema 3

Standalone JSON Schema definitions for this provider's data models.

THREE.Object3D

15 properties

JSON SCHEMA

Three.js JSON Object Scene

6 properties

JSON SCHEMA

THREE.Vector3

3 properties

JSON SCHEMA

Examples 1

Example request and response payloads for these APIs.

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Threejs Domain Security

TLSv1.3

SECURITY

Resources

Get Started 2

Portal, sign-up, and the first successful call

Documentation 6

Reference material describing how the API behaves

Build 9

SDKs, sample code, and the tooling you integrate with

Scroll for all 9

Access & Security 1

Authentication, authorization, and security posture

Operate 6

Status, limits, changes, and where to get help

Commercial 1

Pricing, plans, and the legal terms of use

Other 4

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: threejs
url: https://raw.githubusercontent.com/api-evangelist/threejs/refs/heads/main/apis.yml
apis:
- aid: threejs:threejs-core
  name: Three.js Core
  tags:
  - 3D
  - Graphics
  - WebGL
  - WebGPU
  - JavaScript
  - Rendering
  humanURL: https://threejs.org/docs/
  properties:
  - url: https://threejs.org/docs/
    type: Documentation
  - url: https://threejs.org/manual/
    type: Documentation
  - url: https://github.com/mrdoob/three.js
    type: GitHubRepository
  - url: https://www.npmjs.com/package/three
    type: Package
  - url: json-schema/threejs-vector3-schema.json
    type: JSONSchema
  - url: json-schema/threejs-object3d-schema.json
    type: JSONSchema
  - url: json-schema/threejs-scene-schema.json
    type: JSONSchema
  - url: json-ld/threejs-context.jsonld
    type: JSONLD
  description: The Three.js core library provides the scene graph, cameras, lights, geometries, materials, textures, loaders,
    and animation primitives used to build interactive 3D applications in the browser and on Node.js. The public surface is
    a JavaScript API consumed via ES modules and a small CDN-friendly UMD build; classes are organized into Scene, Object3D,
    Camera, Geometry, Material, Light, and Texture hierarchies and serialize to a documented JSON scene format produced by
    `Object3D.toJSON()`.
- aid: threejs:threejs-renderers
  name: Three.js Renderers (WebGL and WebGPU)
  tags:
  - 3D
  - Graphics
  - Rendering
  - WebGL
  - WebGPU
  humanURL: https://threejs.org/docs/#api/en/renderers/WebGLRenderer
  properties:
  - url: https://threejs.org/docs/#api/en/renderers/WebGLRenderer
    type: Documentation
  - url: https://threejs.org/docs/#api/en/renderers/WebGPURenderer
    type: Documentation
  - url: https://github.com/mrdoob/three.js/tree/dev/src/renderers
    type: SourceCode
  description: WebGLRenderer (default, ships in the main bundle) and the newer WebGPURenderer (under `three/webgpu`) draw
    the scene graph to a canvas. The Node Material System (TSL — Three.js Shading Language) provides a unified node-based
    authoring model that compiles to GLSL for WebGL and WGSL for WebGPU, plus addon SVG and CSS3D renderers for non-raster
    output.
- aid: threejs:threejs-loaders
  name: Three.js Loaders
  tags:
  - 3D
  - Loaders
  - glTF
  - OBJ
  - FBX
  - USDZ
  - Assets
  humanURL: https://threejs.org/docs/#api/en/loaders/Loader
  properties:
  - url: https://threejs.org/docs/#api/en/loaders/Loader
    type: Documentation
  - url: https://github.com/mrdoob/three.js/tree/dev/examples/jsm/loaders
    type: SourceCode
  - url: examples/threejs-gltf-scene-example.json
    type: Examples
  description: A family of asset loaders consumed via `three/addons/loaders/*` covering glTF/GLB (recommended), OBJ, FBX,
    Collada, STL, PLY, 3MF, USDZ, DRACO, KTX2, Basis, and HDR/EXR environment maps. Loaders read binary or text formats and
    produce Three.js scene graph objects ready to add to a `THREE.Scene`.
- aid: threejs:threejs-controls
  name: Three.js Controls and Helpers
  tags:
  - Controls
  - Input
  - Camera
  - Interaction
  humanURL: https://threejs.org/docs/#examples/en/controls/OrbitControls
  properties:
  - url: https://threejs.org/docs/#examples/en/controls/OrbitControls
    type: Documentation
  - url: https://github.com/mrdoob/three.js/tree/dev/examples/jsm/controls
    type: SourceCode
  description: Camera and object controls shipped as addons (`three/addons/controls/*`) including OrbitControls, MapControls,
    TrackballControls, FirstPersonControls, FlyControls, PointerLockControls, TransformControls, DragControls, and ArcballControls.
    Helpers (`three/addons/helpers/*`) visualize lights, cameras, axes, and bounding volumes for debugging.
- aid: threejs:threejs-postprocessing
  name: Three.js Post-Processing
  tags:
  - Post-Processing
  - Effects
  - Rendering
  - Compositing
  humanURL: https://threejs.org/docs/#manual/en/introduction/How-to-use-post-processing
  properties:
  - url: https://threejs.org/docs/#manual/en/introduction/How-to-use-post-processing
    type: Documentation
  - url: https://github.com/mrdoob/three.js/tree/dev/examples/jsm/postprocessing
    type: SourceCode
  description: EffectComposer plus a passes library — RenderPass, ShaderPass, UnrealBloomPass, BloomPass, SSAOPass, SSRPass,
    SAOPass, OutlinePass, SMAAPass, FXAAPass, TAARenderPass, BokehPass, GlitchPass — for chaining screen-space effects, with
    WebGPU equivalents under `three/addons/postprocessing` for the new renderer.
- aid: threejs:threejs-editor
  name: Three.js Editor
  tags:
  - Editor
  - Authoring
  - Tools
  humanURL: https://threejs.org/editor/
  properties:
  - url: https://threejs.org/editor/
    type: Sandbox
  - url: https://github.com/mrdoob/three.js/tree/dev/editor
    type: SourceCode
  description: Browser-based scene editor for assembling Three.js scenes, importing assets, editing materials and lights,
    and exporting to the documented Three.js JSON object format. Useful as a no-code starting point that produces files consumable
    by `ObjectLoader` in any Three.js application.
name: Three.js
tags:
- 3D
- Graphics
- WebGL
- WebGPU
- JavaScript
- Rendering
- Open Source
- Game Development
- Visualization
kind: opensource
accessModel:
  pricing: unknown
  onboarding: unknown
  trial: false
  try_now: false
  public: false
  label: Unknown
  confidence: low
  source: []
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/threejs.png
access: Open Source
common:
- type: DomainSecurity
  url: security/threejs-domain-security.yml
- url: https://threejs.org
  type: Portal
- url: https://threejs.org/docs/
  type: Documentation
- url: https://threejs.org/manual/
  name: Three.js Manual
  type: Documentation
- url: https://threejs.org/examples/
  name: Three.js Examples
  type: CodeExamples
- url: https://threejs.org/editor/
  name: Three.js Editor
  type: Sandbox
- url: https://github.com/mrdoob/three.js
  type: GitHubRepository
- url: https://github.com/mrdoob
  type: GitHubOrganization
- url: https://github.com/mrdoob/three.js/releases
  name: Three.js Releases
  type: ChangeLog
- url: https://github.com/mrdoob/three.js/blob/dev/LICENSE
  name: MIT License
  type: License
- url: https://github.com/mrdoob/three.js/blob/dev/CONTRIBUTING.md
  type: Documentation
- url: https://github.com/mrdoob/three.js/blob/dev/CODE_OF_CONDUCT.md
  type: CodeOfConduct
- url: https://github.com/mrdoob/three.js/wiki
  type: Documentation
- url: https://github.com/mrdoob/three.js/wiki/Migration-Guide
  name: Three.js Migration Guide
  type: Documentation
- url: https://github.com/mrdoob/three.js/issues
  type: Issues
- url: https://github.com/mrdoob/three.js/pulls
  type: PullRequests
- url: https://github.com/mrdoob/three.js/discussions
  type: Forums
- url: https://discourse.threejs.org/
  name: Three.js Discourse Forum
  type: Forums
- url: https://discord.gg/56GBJwAnUS
  name: Three.js Discord
  type: Forums
- url: https://stackoverflow.com/questions/tagged/three.js
  name: Stack Overflow — three.js
  type: Support
- url: https://www.npmjs.com/package/three
  name: three (npm)
  type: Package
- url: https://www.npmjs.com/package/@types/three
  name: '@types/three (DefinitelyTyped)'
  type: Package
- url: https://github.com/three-types/three-ts-types
  name: Three.js TypeScript Types
  type: SDKs
- url: https://cdn.jsdelivr.net/npm/three/
  name: jsDelivr CDN
  type: CDN
- url: https://unpkg.com/three/
  name: unpkg CDN
  type: CDN
- url: https://github.com/pmndrs/react-three-fiber
  name: React Three Fiber
  type: Integrations
- url: https://github.com/pmndrs/drei
  name: drei (R3F helpers)
  type: Integrations
- url: https://github.com/aframevr/aframe
  name: A-Frame (built on three.js)
  type: Integrations
- url: https://github.com/Tencent/tweenjs
  name: Tween.js
  type: Integrations
- url: https://github.com/google/model-viewer
  name: <model-viewer> (uses three.js)
  type: Integrations
- url: https://github.com/threlte/threlte
  name: Threlte (Svelte renderer)
  type: Integrations
- url: https://github.com/troisjs/trois
  name: TroisJS (Vue renderer)
  type: Integrations
- url: https://github.com/mrdoob/stats.js
  name: stats.js
  type: Tools
- url: https://github.com/threejs/three-devtools
  name: Three.js DevTools
  type: Tools
- url: https://x.com/threejs
  type: X
- url: https://github.com/mrdoob/three.js/blob/dev/README.md
  type: Documentation
- type: Features
  data:
  - WebGLRenderer — production WebGL 2 renderer with PBR materials, shadows, instancing, and morph targets
  - WebGPURenderer — next-generation WebGPU backend with the Node Material System (TSL) authoring model
  - TSL — Three.js Shading Language, a node-based shader graph that compiles to both GLSL and WGSL
  - Scene graph based on Object3D with Groups, LOD, Bones, Skinned meshes, InstancedMesh, and BatchedMesh
  - Cameras — PerspectiveCamera, OrthographicCamera, ArrayCamera, StereoCamera, CubeCamera
  - Lights — Ambient, Directional, Point, Spot, Hemisphere, Rect Area, plus shadow maps and light probes
  - Materials — MeshStandard, MeshPhysical (clearcoat, sheen, iridescence, transmission), MeshBasic, MeshLambert, MeshPhong,
    MeshToon, Shader, Raw, Sprite, Line, Points
  - Geometry primitives — Box, Sphere, Plane, Cylinder, Cone, Torus, TorusKnot, Tetra/Octa/Icosa/Dodecahedron, Capsule, Lathe,
    Extrude, Tube
  - Loaders — glTF/GLB (with KHR_draco_mesh_compression, KHR_mesh_quantization, KHR_texture_basisu, EXT_meshopt_compression),
    OBJ, FBX, Collada, STL, PLY, 3MF, USDZ
  - Texture pipeline — KTX2/Basis Universal, HDR/EXR/RGBE, video textures, canvas textures, compressed textures
  - Animation system — AnimationMixer, AnimationClip, KeyframeTrack, morph target and skeletal animation
  - Controls addons — OrbitControls, MapControls, TrackballControls, PointerLockControls, TransformControls, ArcballControls,
    DragControls
  - Post-processing — EffectComposer with RenderPass, Bloom, SSAO, SSR, SMAA, FXAA, TAA, DOF, Outline, Glitch
  - XR — WebXR support for VR and AR via `renderer.xr` and XR controllers/hands
  - Physics integrations — Cannon.js, Ammo.js, Rapier (community)
  - Browser-based Editor at threejs.org/editor for visual scene authoring and JSON export/import
  - Three.js JSON Object format — documented serialization via `Object3D.toJSON()` and `ObjectLoader.parse()`
  - Distributed as `three` on npm, ES modules in `three/build/three.module.js`, addons in `three/addons/*`
  - TypeScript types via `@types/three` on DefinitelyTyped, mirrored in three-types/three-ts-types
  - Monthly release cadence — current release r184 (April 2026), 47k+ commits, 113k+ GitHub stars
  - MIT licensed, no required runtime dependencies, runs in browser, Node.js, Electron, Tauri, Deno, and React Native
  sources:
  - https://threejs.org/
  - https://github.com/mrdoob/three.js
  - https://github.com/mrdoob/three.js/blob/dev/README.md
  - https://registry.npmjs.org/three/latest
  updated: '2026-05-25'
created: '2026-05-25T00:00:00.000Z'
modified: '2026-05-25'
position: Producing
description: Three.js is an open-source JavaScript 3D library originally created by Ricardo Cabello (mrdoob) in 2010 and now
  maintained by a broad community of contributors. It abstracts WebGL and WebGPU behind a clean object-oriented API — Scenes,
  Cameras, Lights, Geometries, Materials, Textures, Loaders, Controls, Animation, and Post-Processing — to make interactive
  3D in the browser practical for games, product configurators, data visualization, generative art, GIS, scientific visualization,
  simulations, AR/VR (WebXR), and creative coding. The library ships as the `three` npm package under MIT license with a rich
  addon ecosystem (`three/addons/*`) including dozens of loaders for industry asset formats (glTF, OBJ, FBX, USDZ, KTX2, DRACO),
  controls, helpers, post-processing passes, and a node-based shading language (TSL) that targets both WebGL and WebGPU. A
  browser-based editor at threejs.org/editor produces scenes in a documented JSON object format. Three.js has become the de-facto
  foundation for the JavaScript 3D ecosystem and underpins higher-level projects including React Three Fiber, A-Frame, model-viewer,
  Threlte, and TroisJS.
maintainers:
- FN: Kin Lane
  email: info@apievangelist.com
  X: apievangelist
  url: https://apievangelist.com
specificationVersion: '0.16'