Sim rollouts
A trained policy is a neural network — nothing to watch. What's worth seeing is the policy acting: the agent walking, reaching, flying. This guide turns one rollout into a single MCAP DreamLake plays natively — the mesh moving through the scene, every reward and joint a cursor-synced chart. No screen recording, no bespoke viewer.
Anything with a body and a 3D pose fits — robot, character, drone, hand. DreamLake already ships the last two moves; this guide is mostly the first.
Prerequisites
Generate the MCAP
Roll the policy out and log three channels, each a Foxglove well-known schema DreamLake decodes with zero config.
The skill ships a runnable template that fills the two
helpers above and gets the easy-to-miss details right — quaternion order
(wxyz → xyzw) and exporting meshes in a format the viewer reads today
(OBJ or GLB).
Connect a source
The .mcap is data like any other — DreamLake reads it in place, never
imports. Put it in storage you already reach, then link it on the namespace's
Sources page (full rules):
Watch it
A .dreamrc beside the file names which channel feeds which view — embedded
mesh, a motion trail, the metric charts:
Name it .dreamrc for a folder, or <file>.mcap.dreamrc for one mcap when the
folder holds several. Keys, options, and the validate loop: the
Dataset Viz docs.
Bring your own robot
Two ways to put a body on the skeleton — pick one.
Embed the mesh for a self-contained file, or — if DreamLake's robot registry
(live9080/dreamlake-robots) has your robot and its link names match your
/tf frames — emit a /tf-only MCAP and let the .dreamrc load the URDF.
Let Claude do it
The sim-to-mcap skill runs this end to end and hands off to the source and dataset-viz skills:
| You say | It does |
|---|---|
| "visualize my mjlab G1 walking policy" | rolls out the checkpoint, writes the MCAP |
| "the robot shows as bare axes" | re-exports the mesh in a format the viewer reads, binds /robot::* |
| "use the preset G1 model instead" | switches to a /tf-only file + URDF |