Skip to content

Templates

simulo create <name> --type <type> scaffolds a runnable app folder from one of three starter templates, bundled inside the simulo package itself — no network call, no login. Every template targets the pinned global-catalog asset simulo/robot/cartpole:v1, matching the current shipped scaffolds.

Terminal window
simulo create mybot --type training # default
simulo create mybot --type inference
simulo create mybot --type scenario
  • Training a policy for a task you can describe with an observation, a reward, and a termination condition → training.
  • You additionally want to score the trained policy over multiple rounds and produce a recorded rollout (an MCAP flight recording of the policy’s observations, actions, and rewards) → inference. For a rollout MCAP with an embedded video channel on top, see the Cartpole Eval example, which adds a camera and include_video=True.
  • You’re not training anything — you want to script a deterministic simulation (a demo, a physical plausibility check, a hand-written controller) → scenario.

Every template puts the parts you’re expected to change at the top, marked # EDIT: in the generated code — the scene construction (build()), the observation/reward/termination logic, and the job’s own parameters, which are the CLI flags (no @app.entrypointsimulo run maps flags onto the job directly; see App & Jobs). Everything else (the runtime image, the volume wiring, the checkpoint callback) is boilerplate you can leave alone until you need to change it.

Once you’ve picked a robot to build with, see Bring your own robot for publishing your own USD or URDF package and replacing the global cartpole ref. The API Reference documents the submit-side classes the templates use (simulo.App, simulo.Runtime, simulo.Volume, the callbacks) and the contracts they implement (simulo.Task, simulo.Scenario, and the component protocols), plus the GPU-runtime classes (simulo.Robot, simulo.RLTrainer, …) — each has its own reference page now, but the templates’ own annotated walkthroughs are still the better first read for how those classes fit together end to end.