Quickstart
Six steps take you from installation to a policy you can run on your own machine: install, scaffold an app, log in, run it, observe it, then export the trained policy. The starter already pins a validated cartpole, so you can get a first success before learning the asset catalog.
1. Install
Section titled “1. Install”pip install simuloPython 3.11+. Torch-free — nothing GPU-related comes down with this
install. Verify with simulo --help. Detail: Install.
2. Scaffold an app
Section titled “2. Scaffold an app”simulo create mybotCreated training app in mybot/ (app.py + .simuloignore).Next steps: cd mybot simulo run app.pysimulo create only writes files to your machine; it needs no login or network
connection. mybot/app.py is runnable code that trains a PPO policy on the
pinned global-catalog asset simulo/robot/cartpole:v1. Detail: Create your
first app.
3. Log in
Section titled “3. Log in”simulo loginsimulo login opens Simulo’s sign-in page in your browser. Sign in, and the
terminal confirms:
Logged in as you@example.com (org: <org-id>)No browser available? The CLI falls back to a manual code and fingerprint flow. Detail: Log in.
4. Run it on the cloud
Section titled “4. Run it on the cloud”cd mybotsimulo run app.py --frozen --strict-assetsBecause you logged in at step 3, this packages the app, uploads it, creates
a job on the Simulo cloud, and follows its logs to completion. --frozen
requires every catalog ref to include an exact version; --strict-assets
rejects deprecated or runtime-unvalidated inputs.
Submitted job 'train' -> job <job-id> (cloud)Following job <job-id> (--detach to submit without waiting)...[train] iteration 1/200 ...[train] iteration 200/200 ...Detail on every flag simulo run understands, and the ones your app defines
instead: Run & submit.
5. Observe or stop the job
Section titled “5. Observe or stop the job”simulo jobs # your job, now "completed"simulo result # its return value — best_reward, checkpoint, iterationssimulo models # best.pt / latest.pt, ready to downloadsimulo models <job-id> best.pt # download it, sha256-verifiedIf the job is still running and you want to stop it, name it explicitly:
simulo cancel <job-id>Pressing Ctrl-C while simulo run is following logs only detaches your
terminal; the cloud job keeps running. simulo cancel <job-id> stops a queued
or running job. You can also open Simulo Console,
select the job, and use Cancel.
Detail: Observe.
6. Take the policy off Simulo
Section titled “6. Take the policy off Simulo”A checkpoint is only useful inside Simulo. This converts it to ONNX and downloads a bundle that runs anywhere Python does:
simulo exportConverting and validating on Simulo's compute... (Ctrl-C to stop watching; the export keeps running)Exporting best.pt from job <job-id> PyTorch → ONNX … done Validating 100 golden vectors … passed Maximum action difference: 4.8e-07
Deployment bundle downloaded: ./train-policy-best/
Simulo export validation: PASSEDNo arguments: Simulo already knows your latest job, its best checkpoint, the tensor names, and the right tolerance. Before publishing anything it replays the same observations through the original PyTorch policy and the converted model — a disagreement fails the export instead of handing you a bundle that loads and misbehaves.
Then prove it on your own machine, with Simulo uninstalled:
cd train-policy-bestpython -m pip install -r requirements.txt # onnxruntime + numpy, nothing elsepython verify.pyLOCAL VALIDATION: PASSEDThis policy model runs independently of Simulo on this machine.That needs no Simulo SDK, no simulator, no CUDA, no GPU, and no login. Detail: Export a policy to ONNX.
What’s next
Section titled “What’s next”- Edit
mybot/app.pyfor your own robot and task — start with Bring your own robot. - Explore the Simulo global catalog, choose another ready-to-use robot, or validate and publish your own package: Choose & validate assets.
- Learn why the scaffold pins
simulo/robot/cartpole:v1: Asset Catalogs & Version Pinning. - Keep training the policy you just trained:
simulo run app.py --from <job-id>— see Continue training. - Watch the training run live in your browser instead of just its logs — see Watch a run live.
- Browse the other two starters (
--type inference,--type scenario) in Templates.