Skip to content

Record & inspect MCAP

A rollout job (see Evaluate & roll out) records every simulation step to an MCAP file — a “flight recorder” for a policy, including embedded video from any camera the task defines.

Terminal window
simulo recordings
verified rollout.mcap — 1602 messages
Open in Lichtblick: /home/you/rollout.mcap

simulo recordings (no job id → the most recent job) downloads the MCAP and reads it back with the bundled mcap reader before confirming — a corrupt download prints a warning instead of silently leaving you with a broken file.

Terminal window
simulo recordings <job-id> # a specific job
simulo recordings <job-id> --all -o ./recordings/ # every recording for that job, into a directory

File → Open local file…rollout.mcap. Add an Image panel on the camera topic ending in _foxglove (e.g. /sensors/camera/side_cam/video_foxglove) to watch the embedded h264 clip play back — you watch the rollout happen instead of inferring it from plots.

Useful topics beyond the video panel:

  • /reward.total — plot the reward the policy accumulated at each step. (/reward is the MCAP topic; .total selects the field inside it — Foxglove and Lichtblick Plot panels take a topic.field path, not a bare topic.)
  • /policy/action — plot the raw action the policy emitted.
  • /episode/start / /episode/end — fire once per environment at episode boundaries. If your rollout doesn’t run long enough for an episode to actually terminate, expect no /episode/end messages at all — that’s the recording being honest about what happened, not a bug.
Terminal window
python -c "
from mcap.reader import make_reader
r = make_reader(open('rollout.mcap', 'rb'))
print(sum(1 for _ in r.iter_messages()), 'messages')
"

mcap ships as a dependency of simulo itself — no extra install needed.

Anything that writes an MCAP is downstream of a rollout job — see Evaluate & roll out if you haven’t run one yet, or Watch a run live if you want to watch training happen in real time instead of reviewing a recording afterward.