Sim runners
A simulation test is any test that needs a 3D physics world to evaluate the system under test. Roboticks supports Gazebo Harmonic and Webots today, on hosted G4dn.xlarge Spot Fleet GPUs or self-hosted via theroboticks-runner binary on your own GPU box.
Sim minutes are the only meaningful cost dimension on the platform. They exist because GPU time is expensive. Reserve sim tests for the cases where headless ROS2 won’t do.
When is a sim test worth it
The default should be headless ROS2. Push the sim envelope only when the headless test would lie.
Mark the test
Two parameters on@requires_sim:
engine:"gazebo"or"webots". The scheduler refuses to dispatch agazebotest to awebotsrunner.gpu: WhenTrue, routes to G4dn.xlarge Spot Fleet (hosted) or any self-hosted runner labelledgpu=true. WhenFalse, the scheduler can use a CPU-only sim runner for lightweight scenarios.
The job router
Routing priority:- Self-hosted pools with matching labels take precedence (free of sim-minute charges).
- Hosted pools take the rest. Sim minutes are metered per the pricing page.
- If neither pool can serve the request, the job queues with a warning the dashboard surfaces immediately.
Hosted sim runners
Cold-start ranges from 30 s (Fargate cached image) to 90 s (Spot Fleet cold scale-up). Image pull and spin-up are not billed — only wall-clock the job runs.
Self-hosted sim runners
Run the Go binary, declare your GPU, and you’re in the pool. See Runners → Installation for the full setup. The relevant excerpt for sim:nvidia-smi output on enrolment; the scheduler uses it to match gpu=True jobs to physical GPUs.
Cost realism
A typical hosted Gazebo nav test is 60–120 s of wall-clock per run. A nightly suite of 50 such tests, running every weekday, on the Team tier (500 minutes included):- 50 tests × 90 s = 75 min / night.
- 20 weekdays × 75 min = 1,500 min / month.
- 1,500 − 500 (included) = 1,000 metered minutes.
- 1,000 × 100 / month overage** on a single team running this cadence.
Image customisation
Hosted images are pinned. If you need a customised Gazebo world or extraapt packages, two options:
- Bundle in your test tree. The runner makes
tests/sim_assets/available to launched worlds. Best for project-specific worlds. - Bring your own image on a self-hosted runner. The runner pulls the image you point it at, including your custom Gazebo or Webots build.
Next
Runners overview
Hosted vs self-hosted, pools, labels, autoscaling.
Self-host a runner
Get a GPU box into the pool.
Pricing
How sim minutes are counted.
Launch testing
Multi-node sim test patterns.