Three.js · Schema
THREE.Object3D
A serialized three.js Object3D node as produced by Object3D.toJSON(). Object3D is the base class for nearly all 3D-positioned entities — Mesh, Group, Line, Points, Camera, Light, Bone, Skeleton, etc.
3DGraphicsWebGLWebGPUJavaScriptRenderingOpen SourceGame DevelopmentVisualization
Properties
| Name | Type | Description |
|---|---|---|
| uuid | string | Stable identifier for this node, auto-assigned when the Object3D is constructed. |
| type | string | The Object3D subclass type — e.g. 'Mesh', 'Group', 'PerspectiveCamera', 'DirectionalLight', 'Line', 'Points', 'Bone', 'SkinnedMesh', 'Object3D'. |
| name | string | Optional human-readable name. Useful for lookups via Object3D.getObjectByName(). |
| matrix | array | Local transformation matrix in column-major order (16 numbers). |
| up | array | The up direction used by lookAt(). Defaults to Object3D.DEFAULT_UP which is [0, 1, 0]. |
| visible | boolean | Whether the object is rendered. Defaults to true. |
| castShadow | boolean | Whether this object casts shadows. |
| receiveShadow | boolean | Whether this object receives shadows. |
| frustumCulled | boolean | When true (default) the object is culled by the camera frustum before rendering. |
| renderOrder | number | Override default rendering order; lower values render first. |
| userData | object | Free-form object for caller-defined application data; survives serialization. |
| layers | integer | Layers bitmask controlling which cameras can see the object. |
| geometry | string | UUID reference into the top-level `geometries` array (Mesh / Line / Points / SkinnedMesh). |
| material | object | UUID or array of UUIDs referencing materials in the top-level `materials` array. |
| children | array | Child Object3D nodes. |
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-object3d-schema.json",
"title": "THREE.Object3D",
"description": "A serialized three.js Object3D node as produced by Object3D.toJSON(). Object3D is the base class for nearly all 3D-positioned entities — Mesh, Group, Line, Points, Camera, Light, Bone, Skeleton, etc.",
"type": "object",
"properties": {
"uuid": {
"type": "string",
"format": "uuid",
"description": "Stable identifier for this node, auto-assigned when the Object3D is constructed."
},
"type": {
"type": "string",
"description": "The Object3D subclass type — e.g. 'Mesh', 'Group', 'PerspectiveCamera', 'DirectionalLight', 'Line', 'Points', 'Bone', 'SkinnedMesh', 'Object3D'."
},
"name": {
"type": "string",
"description": "Optional human-readable name. Useful for lookups via Object3D.getObjectByName()."
},
"matrix": {
"type": "array",
"minItems": 16,
"maxItems": 16,
"items": { "type": "number" },
"description": "Local transformation matrix in column-major order (16 numbers)."
},
"up": {
"type": "array",
"items": { "type": "number" },
"minItems": 3,
"maxItems": 3,
"description": "The up direction used by lookAt(). Defaults to Object3D.DEFAULT_UP which is [0, 1, 0]."
},
"visible": {
"type": "boolean",
"description": "Whether the object is rendered. Defaults to true."
},
"castShadow": {
"type": "boolean",
"description": "Whether this object casts shadows."
},
"receiveShadow": {
"type": "boolean",
"description": "Whether this object receives shadows."
},
"frustumCulled": {
"type": "boolean",
"description": "When true (default) the object is culled by the camera frustum before rendering."
},
"renderOrder": {
"type": "number",
"description": "Override default rendering order; lower values render first."
},
"userData": {
"type": "object",
"description": "Free-form object for caller-defined application data; survives serialization."
},
"layers": {
"type": "integer",
"description": "Layers bitmask controlling which cameras can see the object."
},
"geometry": {
"type": "string",
"format": "uuid",
"description": "UUID reference into the top-level `geometries` array (Mesh / Line / Points / SkinnedMesh)."
},
"material": {
"oneOf": [
{ "type": "string", "format": "uuid" },
{ "type": "array", "items": { "type": "string", "format": "uuid" } }
],
"description": "UUID or array of UUIDs referencing materials in the top-level `materials` array."
},
"children": {
"type": "array",
"items": { "$ref": "#" },
"description": "Child Object3D nodes."
}
},
"required": ["uuid", "type"]
}