Rayform

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.

LayerWhat it holdsWhere to find it
SceneGaussian splats, meshes and collision geometry of the placesegment.assets, Segment.scene_at()
MotionCamera, object and body trajectoriesEntity trajectories, poses/* channels
InteractionGrasps, placements, doors, drawers, toolssegment.events, Segment.events()
Robot stateJoint positions, velocities, effort, gripperjoints/*, gripper/* channels
ContextLighting, clutter, surface, weather, peoplesegment.context

Channel names

Rayform renames source topics to stable channel names, so loaders work the same across robots:

ChannelSource examples
cam{n}/rgb, cam{n}/depth/camera/color/image_raw, /camera/depth/image_rect_raw
wrist/rgbA 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_deltaDerived: change in position to the next sample
gripper/positionGripper 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

FieldDescription
idStable within a session, for example ent_mug_1
categoryOpen-vocabulary label, for example mug, person, robot_arm
movesWhether the entity moved during the segment
trajectoryPoses over time in the site frame, as channel poses/{id}
assetSplats of the entity alone, when it moves

Event types

TypeMeaning
graspA hand or gripper closes on an object
placeAn object is released onto a surface
pushAn object moves under contact without a grasp
open_drawer, close_drawerDrawer state changes
open_door, close_doorDoor state changes
handoverAn object passes between two agents
pour, wipeTool 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