Metadata Model
This section is normative.
The Metadata Model defines the structured descriptions of bodies, sensors, devices, cameras, robots, objects, and retargeting relationships used throughout the MIND Standard. Metadata enables correct interpretation, alignment, calibration, and fusion of multimodal human, robotic, biosensing, and agent-control data.
Metadata as a Distinct Category
Metadata objects MUST NOT be treated as modalities or streams.
Metadata describes what a stream represents—not the data itself.
Metadata types include:
- SkeletonProfile
- CameraProfile
- DeviceProfile
- BiosensorProfile
- RobotModelProfile
- ObjectProfile
- RetargetMap
Each metadata object MUST be a standalone entity referenced by streams or events.
Metadata Identifiers
Metadata identifiers MUST follow the same structured, namespaced, versioned format as modalities:
<namespace>.<family>/<name>@<version>
Valid examples:
MIND.skeleton/HumanDefault@1.0.0
MIND.camera/Pinhole@1.0.0
LAB_X.biosensor/EEG64Channel@2.1.0
ROBOT_CO.robot/6DOFManipulator@3.2.5
Unknown namespaces MUST be preserved.
Canonical Metadata Families
Metadata MUST belong to one of the following canonical families:
skeleton/camera/device/biosensor/robot/object/retarget/
Additional families MAY be added via metadata extensions.
Metadata Requirements for Streams
Every stream MUST declare at least one metadata reference via:
stream.metadata_refs: [metadata_id]
Examples:
- SkeletalPose → SkeletonProfile
- Pose2D → CameraProfile
- EEG → BiosensorProfile
- IMURaw → DeviceProfile
- AgentCommand → RobotModelProfile
A stream without required metadata MUST invalidate the Container.
Hierarchical Metadata Composition
Metadata objects MAY contain hierarchical subcomponents.
Examples:
- A SkeletonProfile containing separate hand/face models
- A CameraRigProfile containing multiple cameras with transforms
- A BiosensorRig containing multiple sensors
- A RobotModel composed of links, joints, and end effectors
Hierarchy MUST form a Directed Acyclic Graph (DAG).
ASCII example:
RobotModel
├── Link 1
├── Link 2
│ └── Joint A
├── EndEffector
└── CalibrationProfile
Calibration Transforms
Metadata MUST support calibration transforms, including:
- local coordinate frame definitions
- parent-child transforms
- device-to-world transforms
- camera intrinsics/extrinsics
- robot joint offsets
- biosensor placement orientations
Transforms MUST follow the canonical coordinate system (Section 4 & 5).
Temporal Validity
Metadata MAY specify:
valid_from
valid_to
If present, a stream referring to metadata outside its validity range MUST be considered invalid.
Examples:
- Recalibrated camera after frame 10000
- EEG electrodes shifted after minute 12
- Robot tool-change at timestamp T
Metadata Referencing Streams
Metadata MAY reference streams when needed.
Examples:
- CameraProfile referencing calibration frames
- RobotModel referencing encoder calibration logs
- BiosensorProfile referencing baseline recordings
These references MUST resolve strictly.
Metadata Extensions
All metadata types MUST support the extensions field:
extensions: {
"LAB_X.customCalib": {...}
}
Extensions MUST NOT invalidate core schemas.
Summary
The metadata model provides:
- namespaced, versioned metadata types
- required metadata for streams
- hierarchical profiles
- calibration transforms
- temporal validity
- cross-references
- extensibility
Metadata is foundational for interpreting pose, bio, CV, XR, and robotics data in MIND.