Reference
Data model
The five layers Rayform builds from every recording, and the channels and entities that carry them.
Rayform is in private preview. APIs, formats and the SDK described here may change before general availability.
Every processed segment carries five layers, aligned to one clock and one coordinate frame.
| Layer | What it holds | Where to find it |
|---|---|---|
| Scene | Gaussian splats, meshes and collision geometry of the place | segment.assets, Segment.scene_at() |
| Motion | Camera, object and body trajectories | Entity trajectories, poses/* channels |
| Interaction | Grasps, placements, doors, drawers, tools | segment.events, Segment.events() |
| Robot state | Joint positions, velocities, effort, gripper | joints/*, gripper/* channels |
| Context | Lighting, clutter, surface, weather, people | segment.context |
Channel names
Rayform renames source topics to stable channel names, so loaders work the same across robots:
| Channel | Source examples |
|---|---|
cam{n}/rgb, cam{n}/depth | /camera/color/image_raw, /camera/depth/image_rect_raw |
wrist/rgb | A camera mounted on the end effector |
lidar/points | /velodyne_points, /ouster/points |
imu | /imu/data |
joints/position, joints/velocity, joints/effort | /joint_states |
joints/position_delta | Derived: change in position to the next sample |
gripper/position | Gripper joint or command topic |
poses/{entity} | Derived trajectories, for example poses/cam0, poses/ent_mug_1 |
The mapping for each session is listed in session.channels with the original topic names, so nothing is hidden.
Entities
| Field | Description |
|---|---|
id | Stable within a session, for example ent_mug_1 |
category | Open-vocabulary label, for example mug, person, robot_arm |
moves | Whether the entity moved during the segment |
trajectory | Poses over time in the site frame, as channel poses/{id} |
asset | Splats of the entity alone, when it moves |
Event types
| Type | Meaning |
|---|---|
grasp | A hand or gripper closes on an object |
place | An object is released onto a surface |
push | An object moves under contact without a grasp |
open_drawer, close_drawer | Drawer state changes |
open_door, close_door | Door state changes |
handover | An object passes between two agents |
pour, wipe | Tool actions |
Events carry a span (t_start_ns to t_end_ns), the instant of contact (t_ns), the entities involved, and a confidence.
Last updated October 18, 2026