Packages

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

Schema v1Repository

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