Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC
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.

human only

Limited machine-readable signal and partial portal coverage — documentation a human can read, but little a machine or agent can consume without scraping.

Kin Score

API Evangelist profiles Three.js the way a machine reads it — 34 machine-readable artifacts across 6 APIs, pulled from the provider's own public surface and indexed so a developer, an analyst, or an AI agent can evaluate it against every other provider on the network.

Every provider in the network is reduced to the same set of machine-readable artifacts — OpenAPI contracts, event specifications, GraphQL schemas, runnable collections, pricing and rate-limit signals, security posture, OAuth scopes, and the agent surfaces (MCP servers and skills) that let software drive the API on its own. We profile them because the interface is the part of a company you can actually inspect: it is a truer signal of what a provider does than any marketing page. From those artifacts we compute the Kin Score — Three.js scores 35.8/100 (thin), with a separate agent-readiness read of 7/100 (human only). The full breakdown is below, followed by every artifact we hold — each card links through to its machine-readable definition on apis.io.

Kin Score

This is the API Evangelist rating — a single, repeatable read computed from the artifacts on this page. Green fill is points earned; the red track is points possible, so every bar shows earned-versus-possible at a glance.

Kin Score Kin Score How this is scored →
scored 2026-07-27 · rubric v0.5
Composite quality — 35.8/100 · thin
Contract Quality 8.5 / 25
Developer Ergonomics 7.0 / 20
Commercial Clarity 0.0 / 20
Operational Transparency 2.7 / 13
Governance 8.8 / 12
Discoverability 8.8 / 10
Agent readiness — 7/100 · human only
Machine-Readable Contract 0 / 18
Agentic Access Contract 0 / 15
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

How we profile Three.js

Each block below is one kind of artifact we hold for Three.js. For each we say what it is and why it earns a place in the profile, then list every one we've indexed — capped at two rows, scroll within the panel for the rest.

APIs 6

Each API is captured as its own OpenAPI definition — every operation, parameter, and response. This is the single most useful machine-readable description of what an API does, and it's what lets us score, lint, mock, and generate against it without asking the provider for anything.

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

The notable capabilities this provider advertises, captured as structured features so they can be searched and compared instead of read one landing page at a time.

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 within the panel for all 21 ·

Semantic Vocabularies 1

JSON-LD contexts give the data shared meaning across APIs. We profile them because semantics are what let a machine reconcile 'customer' here with 'customer' somewhere else.

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

Threejs Context

58 classes · 5 properties

JSON-LD

Spectral Rules 1

Governance rulesets we run against this provider's specs — the automated checks behind parts of the score. Profiling them makes the quality bar explicit and re-runnable, not a matter of opinion.

Three.js API Rules

5 rules · 3 warnings

SPECTRAL

JSON Schema 3

Standalone JSON Schema definitions describe the data models behind the API. We profile them so the shapes are validatable on their own — useful long after a single request is forgotten.

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

Real request and response payloads are what turn a spec from abstract into obvious — and they're one of the twelve things an agent needs to call an API correctly on the first try.

Example request and response payloads for these APIs.

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals — the evidence that a provider takes security seriously enough to document it. We profile it because you can't govern what you can't see.

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

Threejs Domain Security

TLSv1.3

SECURITY

Resources

Every other property we hold for Three.js — documentation, portals, status pages, policies, and corporate surface — grouped by the job it does, following the integrator's arc from getting started to running in production.

Get Started 2

Portal, sign-up, and the first successful call

Access & Security 1

Authentication, authorization, and security posture

Commercial 1

Pricing, plans, and the legal terms of use

Other 4

Properties that don't map to a standard resource type

← All providers · Data indexed from github.com/api-evangelist/threejs · machine-readable index on apis.io