Skip to main content

Core Object Model

Containers

A Container MUST contain:

  • one or more Streams
  • MAY contain Events
  • MAY contain Metadata objects

ASCII diagram:

Container
├── Streams[]
│ └── Samples[]
├── Events[]
└── Metadata[]

Streams

A Stream MUST:

  • declare exactly one Modality
  • contain ordered Samples
  • include a unique stream_id

ASCII visualization:

Stream (SkeletalPose)
Sample 0 ── t=33.1ms
Sample 1 ── t=50.3ms
Sample 2 ── t=66.6ms

Samples

Each Sample MUST include:

  • at least one timestamp
  • payload matching the Modality schema

Example:

{
"timestamp": { "t_system": 38932922 },
"joints": [...]
}

Events

Events live at the Container level.

ASCII:

EventPoint("left-hand-grasp-start")
timestamp → 103.2ms
refs → [left_hand_pose_stream]

Cross-References

All references MUST resolve strictly.

Timeline Policy

No global timeline policy required.

Invariants

  • Streams carry one modality.
  • Samples always have timestamps.
  • Events live at container-level.
  • All references resolve strictly.