Skip to main content

Metadata

Episode-level session metadata is published on a single topic. The message carries rig and capture info, global time range, optional location, task/scene identifiers, and operator info.

Topic & Message Type

  • Topic: /session/metadata
  • Message type: session.metadata.SessionMetadata
  • Encoding: protobuf

Defined in session/metadata.proto; all messages include common.header.Header.

Message definition (metadata, one message per session):

syntax = "proto3";

package session.metadata;

import "common/header.proto";

message Resolution {
uint32 width = 1;
uint32 height = 2;
}

message CaptureDevice {
string device_type = 1;
string firmware_version = 2;
string fps = 3;
string modality = 4;
Resolution resolution = 5;
int64 unix_start_time_ms = 6;
int64 unix_end_time_ms = 7;
}

message GlobalTime {
string start_time_iso = 1;
string end_time_iso = 2;
string timezone = 3;
}

message Location {
optional double latitude = 1;
optional double longitude = 2;
string coordinate_system = 3;
}

message TaskInfo {
string episode_uuid = 1;
string task_description = 2;
string task_name = 3;
string environment_id = 4;
string scene_id = 5;
string environment_description = 6;
string scene_description = 7;
bool has_tool_use = 8;
bool has_tool_use_significant = 9;
string meta_session_id = 10;
uint32 meta_session_index = 11;
}

message OperatorInfo {
double height = 1;
double arm_span = 2;
double leg_length = 3;
string unit = 4;
}

message Operator {
string operator_id = 1;
OperatorInfo operator_info = 2;
}

// Main message for topic /session/metadata
message SessionMetadata {
common.header.Header header = 1;
repeated CaptureDevice devices = 2;
GlobalTime global_time = 3;
Location location = 4;
TaskInfo task_info = 5;
Operator operator = 6;
}