Skip to content

Recordings & Live Viewstream

Simulo gives you two distinct ways to see what a job did: a downloadable MCAP flight recording you inspect after the fact, and a live viewstream you watch while a job is running. They serve different purposes and are configured independently.

simulo.RLPlayer.play() accepts a record= simulo.RecordConfig(...) argument that captures a rollout to an MCAP file in the job’s workspace, ready to download with simulo recordings when the job finishes:

record = simulo.RecordConfig(
output_path=f"{reports.path}/rollout.mcap",
policy_checkpoint=policy_path,
robot_model="cartpole",
include_video=True,
video_fps=30,
video_bitrate="4M",
)
stats = player.play(num_steps=200, record=record)

A recording captures policy observations and actions, applied actions, rewards, terminations, episode boundaries, and robot commands — everything needed to understand why a rollout behaved the way it did. Setting include_video=True (with a camera attached to the robot in build()) additionally embeds a playable video channel, so you can watch the rollout alongside its numeric data.

Open the file in Lichtblick or Foxglove, or read it programmatically with the mcap Python library.

Download a job’s recording from the CLI:

Terminal window
simulo recordings <job-id> # downloads the job's sole recording
simulo recordings <job-id> rollout.mcap -o ./rollout.mcap
simulo recordings <job-id> --all -o ./out/

There is no list mode: a bare simulo recordings downloads the job’s only recording directly, and when a job has several it exits with the available names so you can pick one (or pass --all).

For watching a job while it runs, submit with --viewstream and open the browser viewport:

Terminal window
simulo run app.py --viewstream --num-envs 4
simulo view

simulo view [job-id] opens the live 3D viewport for a running --viewstream job — omit the job id to view the most recent one. This works for both Task-driven training/rollout jobs and scripted Scenario jobs; a Scenario job is often the most satisfying one to watch live, since it’s driving a deterministic, easy-to-follow control law rather than an in-progress policy.

The browser viewer includes camera framing and environment-focus controls, live connection and job status, job details, and a link to the same job in the Simulo Console. It reconnects automatically after a brief interruption. See Watch a run live for the complete workflow.