3d-scene-schema
Engine-independent scene specification: the shared structure for scenes, objects, transforms, materials, assets, and metadata.
Scene package, MIT license, version schema v1
Installation
This repository holds JSON Schema (2020-12) files rather than an installable package. Read schema/v1/ and the examples/ folder in the repository, or use an engine adapter such as 3d-unity-scene.
Purpose
The source of truth for a 3D scene. It is the shared contract between Unity, future Unreal Engine apps, web applications, AI systems, geometry services, and APIs, so one scene can feed every runtime without rewriting the format.
Usage
Applications and engine adapters read and write scene documents that conform to the schema. Every document carries a schemaVersion (semver); breaking changes get a new schema/v{n}/ directory instead of changing v1. Units are meters in a right-handed, Y-up system, and engine adapters convert to and from their own conventions.
Current state
scene.schema.json: root document with schemaVersion, sceneId, timestamps, units, origin, and a flat list of objects scene-object.schema.json: a semantic label (ROOM, FLOOR, CEILING, WALL_FACE, DOOR_FRAME, WINDOW_FRAME and common furniture), a transform, an optional boundary or volume, and a parentId transform.schema.json and common.schema.json: position, rotation, scale, and shared primitives Example instances: room-scan.example.json and corridor-scan.example.json
Main features
- Engine-independent, JSON-based scene format
- Scenes, objects, transforms, and metadata
- Semantic labels that mirror Meta Quest Scene API / MRUK classifications
- A per-scene origin so several scenes can share one coordinate frame
- Versioned schema with semver schemaVersion
Examples
- A scanned room described as one scene
- A corridor scan sharing a coordinate frame with a room scan
