Three.js · Schema
Three.js JSON Object Scene
Top-level serialization format produced by Object3D.toJSON() / Scene.toJSON() and consumed by ObjectLoader.parse(). This is the format the Three.js Editor exports.
3DGraphicsWebGLWebGPUJavaScriptRenderingOpen SourceGame DevelopmentVisualization
Properties
| Name | Type | Description |
|---|---|---|
| metadata | object | |
| geometries | array | Reusable BufferGeometry definitions referenced by Object3D nodes by UUID. |
| materials | array | Reusable material definitions. |
| textures | array | Texture definitions referencing entries in `images`. |
| images | array | Image sources — either inline data URLs or external URLs. |
| object | object | The root Object3D — typically a Scene with children, lights, cameras, and meshes. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/threejs/refs/heads/main/json-schema/threejs-scene-schema.json",
"title": "Three.js JSON Object Scene",
"description": "Top-level serialization format produced by Object3D.toJSON() / Scene.toJSON() and consumed by ObjectLoader.parse(). This is the format the Three.js Editor exports.",
"type": "object",
"required": ["metadata", "object"],
"properties": {
"metadata": {
"type": "object",
"required": ["version", "type", "generator"],
"properties": {
"version": {
"type": "number",
"description": "Three.js JSON object format version (e.g. 4.6)."
},
"type": {
"type": "string",
"description": "The serialized container type — typically 'Object' for an Object3D / Scene serialization."
},
"generator": {
"type": "string",
"description": "Name of the producer — typically 'Object3D.toJSON' or 'Scene.toJSON' or 'Three.js Editor'."
}
}
},
"geometries": {
"type": "array",
"description": "Reusable BufferGeometry definitions referenced by Object3D nodes by UUID.",
"items": {
"type": "object",
"required": ["uuid", "type"],
"properties": {
"uuid": { "type": "string", "format": "uuid" },
"type": { "type": "string", "description": "Geometry class name — e.g. BoxGeometry, SphereGeometry, BufferGeometry." },
"data": {
"type": "object",
"description": "Class-specific parameters or attribute / index data for BufferGeometry."
}
}
}
},
"materials": {
"type": "array",
"description": "Reusable material definitions.",
"items": {
"type": "object",
"required": ["uuid", "type"],
"properties": {
"uuid": { "type": "string", "format": "uuid" },
"type": {
"type": "string",
"description": "Material class name — e.g. MeshStandardMaterial, MeshPhysicalMaterial, MeshBasicMaterial, LineBasicMaterial, ShaderMaterial."
},
"color": { "type": ["integer", "string"], "description": "Diffuse color, hex integer or '#RRGGBB' string." },
"roughness": { "type": "number" },
"metalness": { "type": "number" },
"opacity": { "type": "number" },
"transparent": { "type": "boolean" },
"side": { "type": "integer", "description": "0 = FrontSide, 1 = BackSide, 2 = DoubleSide." }
}
}
},
"textures": {
"type": "array",
"description": "Texture definitions referencing entries in `images`.",
"items": {
"type": "object",
"required": ["uuid"],
"properties": {
"uuid": { "type": "string", "format": "uuid" },
"name": { "type": "string" },
"image": { "type": "string", "format": "uuid" },
"wrap": {
"type": "array",
"items": { "type": "integer" },
"minItems": 2,
"maxItems": 2,
"description": "[wrapS, wrapT] — 1000 RepeatWrapping, 1001 ClampToEdgeWrapping, 1002 MirroredRepeatWrapping."
},
"encoding": { "type": "integer", "description": "Color space encoding constant." }
}
}
},
"images": {
"type": "array",
"description": "Image sources — either inline data URLs or external URLs.",
"items": {
"type": "object",
"required": ["uuid", "url"],
"properties": {
"uuid": { "type": "string", "format": "uuid" },
"url": {
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" }, "description": "Cube texture face URLs." }
]
}
}
}
},
"object": {
"$ref": "https://raw.githubusercontent.com/api-evangelist/threejs/refs/heads/main/json-schema/threejs-object3d-schema.json",
"description": "The root Object3D — typically a Scene with children, lights, cameras, and meshes."
}
}
}