Skip to content

Watch a run live

simulo logs --follow streams a job’s text output. simulo view streams the actual 3D scene — over WebRTC, live, into your browser — for any job submitted with --viewstream.

Terminal window
simulo run app.py --viewstream --num-envs 512 --max-iterations 600 --detach

--viewstream is opt-in per job — a job submitted without it runs headless and can’t be viewed later (streaming also costs simulation speed; see the caution below).

Terminal window
simulo view

simulo view (no job id → the most recent job) mints a short-lived view session and opens your browser onto it. Behavior depends on the job’s current state:

  • Queued — waits with a spinner until the job starts running.
  • Running with --viewstream — opens the live scene. Expect a waiting state while the simulator boots and renders its first frame. You run simulo view once, even on a slow cold boot: the CLI shows a “waiting for the simulator to finish booting…” status and keeps polling — holding no token during the wait — because the stream endpoint is registered only once the simulator is actually reachable. It then mints one fresh, in-window session token the moment the stream is live and opens your browser. A multi-minute first-time cold boot (e.g. a fresh shader cache) is fully covered by that wait, so the short-lived token can never expire mid-boot.
  • Finished (completed/failed/cancelled) — refused with a clear message; there’s nothing left to stream.
  • Running without --viewstream — refused; you can’t view a job that never enabled streaming.

The viewer frames the full scene when it opens. Its on-screen controls let you:

  • rotate, pan, and zoom directly in the scene;
  • return to the starting view or frame the whole scene;
  • aim the camera at a specific environment while keeping the full scene available; and
  • open the job’s details or jump to the job in the Simulo Console.

The header shows which job you are watching and whether the scene is starting, live, reconnecting, or offline. If the connection drops briefly, the viewer tries to reconnect for you. If the job finishes or the connection cannot be restored, it keeps the job information visible and explains what to do next.

Once you’ve watched a run, retrieve its trained models, or — if it was a rollout job rather than traindownload and inspect its MCAP recording for an after-the-fact review instead of a live one.