Run a rollout
Open the Profiling page
In the web app, open Profiling from the icon rail and pick a learned skill from the dropdown. Only trained, activated skills appear.
Press Run rollout
The robot starts the skill and the page starts charting its inference profile live — progress head, ensemble disagreement, arm motion, base speed, and per-step latency. Profile only runs the same charts without recording anything on the robot.
Let the run end
A rollout ends when the policy completes, when auto-stop fires, when you press Stop, or at the skill’s
duration cap — whichever comes first.Where evaluation episodes go
Saved rollouts land in a dedicated Policy Rollouts dataset with typeeval — they are never mixed into a skill’s training data. Each episode is stamped with its provenance:
- source —
rollout(versusteleopfor demonstrations) - policy — the id of the skill that drove it
- outcome and tags — your ✓/✗ judgment and failure modes
Review and promote
On the Datasets page, evaluation datasets get their own treatment: provenance badges, per-policy filter chips, and a success-rate summary. Opening a rollout episode in the player shows an inference profile chart next to the video — progress on an absolute 0–1 axis, with hover readouts of the exact values — so you can see why a run was judged the way it was. A good rollout can be promoted into a training dataset from the episode’s context menu. The copy carries the episode’s video, trajectory, profile trace, outcome, and provenance; the original stays in the eval dataset untouched.Auto-stop for learned skills
An ACT policy never terminates on its own — it keeps emitting action chunks until the wall-clockduration cap. Auto-stop lets a learned skill end early, when it’s actually done, using the policy’s trained progress head.
It is off by default and opt-in per skill, in the skill’s metadata.json:
auto_stop on fills the tuning knobs below with a recommended configuration; any knob you set explicitly wins.
| Knob | Filled default | Meaning |
|---|---|---|
duration | 120 | Hard wall-clock cap, always on — auto-stop only ever ends a run earlier |
min_duration | 5.0 | Floor (seconds) before any early stop may fire |
progress_ema_alpha | 0.3 | Smoothing of the progress signal, in (0, 1]; 1.0 = raw |
engage_below | 0.75 | Arms the stop once smoothed progress first dips below this |
stable_min | 0.93 | …then stop once smoothed progress holds at or above this… |
stable_seconds | 3.0 | …for this long |
Why the dip-then-hold rule
On real checkpoints the progress head saturates near its maximum at both ends of a run: the opening seconds — before the arm engages — read just as high and stable as the finished tail. A bare “progress is high” check would stop the skill immediately. So the detector first requires progress to dip belowengage_below (evidence the policy actually started working), and only then stops once it holds above stable_min for stable_seconds.
Note that the dip is a one-way latch: once progress drops below engage_below, the run counts as engaged until the end — so set it below anything the idle opening phase can produce.
Tuning the thresholds
Read the numbers off a real run rather than trusting the defaults:- Run a successful rollout from the Profiling page and look at the Progress chart — it shows the whole run on a time axis, and hovering reads exact values.
- Set
stable_minjust under the settled tail’s plateau. - Set
engage_belowabove the mid-run working dips but below the idle opening plateau. - Saved rollouts keep their profile trace, so you can also read thresholds off past episodes in the Datasets player.

