Workflow Run Modes#
A run mode answers one simple question: How should this workflow run?
The code and command-line interface use the shorter name mode, including WORKFLOW.modes and --mode. Documentation and other beginner-facing text use run mode to make the meaning clear.
Standard Run Modes#
| Friendly label | Mode name | What it does | Shared implementation |
|---|---|---|---|
| View only | idle |
Opens and renders the Scene without driving the robot. | idle.py |
| Manual control | teleop |
Lets a person drive the robot with a supported input device. | teleop.py |
| Rule-based | rule-based |
Runs a deterministic task graph in the simulator. | Workflow-specific graph, with reusable Cartesian patterns in rule_based.py |
| AI policy | policy |
Runs a learned policy Task. | policy.py |
| Playback | replay |
Applies actions from a recorded episode. | replay.py |
A workflow exposes only the run modes it can actually execute. For example:
WORKFLOW = Workflow(
scene="example_scene",
modes={
"idle": idle,
"rule-based": rule_based,
"teleop": teleop,
},
)
All run modes use the same Scene and shared SimulationRunner. Selecting a run mode changes the TaskGraph; it does not select a different runner or create another Scene.
Workflow-Specific Run Modes#
A workflow may expose a specialized run mode when the standard five do not describe a genuinely different graph. Current examples include:
policy_n17for the scissor workflow's GR00T N1.7 policy variant.demofor the endoluminal workflow's deterministic demonstration.validate_fluoroscopyfor the endoluminal workflow's imaging diagnostic.
These names are extensions for one workflow, not additional standard run modes. Prefer a standard mode when it accurately describes the execution path, and use checkpoint or runtime configuration instead of creating a new mode for ordinary parameter changes.
Ownership#
- Keep reusable run-mode builders in this directory.
- Keep workflow-specific graph builders in the owning workflow module.
- Keep each workflow's supported run modes in its
WORKFLOW.modesmapping. - Keep the Engine independent of concrete run-mode names; it executes the selected
TaskGraph.