Schemas / Other

rig.vr.space

v1.0.0 · stable maturity: draft 2 fields 1 required

Fields

FieldTypeMeaning
reference enumlocal · local-floor · stage · unbounded required local, local-floor, stage, unbounded
bounds array<vec2>min 3 items optional Optional. Play-area polygon. Each item is x, z in this space, scene units. At least 3. Absent = no recorded boundary

Where the user stands in the scene. Format when present.

Pose is rig.spatial.transform. Parent is rig.spatial.relationship. A label is rig.meta.named. 3D axes: document.md.

local puts the origin at the head where the session started. local-floor uses that same yaw and puts Y = 0 on the floor. stage is a room: origin on the floor, bounds when the play area is known. unbounded is a large space with no boundary.

bounds is the floor outline (guardian, chaperone, bounded floor). Y of the space is the floor for local-floor and stage. Do not repeat the first point to close the ring.

Sessions, recentering, and the live boundary mesh stay in the host. OpenXR and WebXR map onto this component - docs/vr.md.

JSON Schema

Resolves at https://rig.works/schemas/rig.vr.space.schema.json — raw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.vr.space.schema.json",
  "title": "rig.vr.space",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "reference": {
      "type": "string",
      "enum": [
        "local",
        "local-floor",
        "stage",
        "unbounded"
      ]
    },
    "bounds": {
      "type": "array",
      "minItems": 3,
      "items": {
        "$ref": "./_defs.schema.json#/$defs/vec2"
      },
      "$comment": "Each item is x, z in this space, scene units. Y is the floor."
    }
  },
  "required": [
    "reference"
  ],
  "x-rig-maturity": "draft"
}

Seen in

vr-room.json