Bring your robot
to life.
Pick a brain from 39 open robot models. Deploy it as your Policy. Call one API and pay per step. Tune a new revision on your episodes when the base needs adaptation.
# one action chunk from π0 — image + proprio in, 50 actions out
curl https://rsi.robomart.ai/v1/act \
-H "Authorization: Bearer $RSI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"pi0", "image":"data:image/jpeg;base64,...", "state":[0.1,0.4,...], "instruction":"pick up the red mug"}'
# OpenAI-compatible — point your existing SDK at a robot brain
curl https://rsi.robomart.ai/v1/chat/completions \
-H "Authorization: Bearer $RSI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"molmo2-er", "messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"..."}},{"type":"text","text":"point at every gauge reading above 60 psi"}]}]}'
# 5 seconds of predicted future from a world model
curl https://rsi.robomart.ai/v1/world \
-H "Authorization: Bearer $RSI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"cosmos3-nano", "image":"...", "prompt":"the forklift reverses and turns left", "seconds":5}'
# create an account-scoped deployment from a base model
curl -X POST https://rsi.robomart.ai/v1/policies \
-H "Authorization: Bearer $RSI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"pi0-v1", "base_model":"pi0"}'
# → acme/pi0-v1 · stable name · queued deployment
39
robot brains — complete VLA, VLM, world; license-verified
1
unit — the step: a motor tick, a frame, or a decision
$0
platform fee. No credits to buy. Pay the meter.
1
POST between a base model and your own
Pick. Deploy. Call. Tune when ready.
01
Pick a brain
39 complete robot brains — VLAs, robot VLMs, world models — license-verified with the receipts shown.
02
Deploy a Policy
Give the model an account-scoped name such as acme/pi0-v1. The name stays stable across future revisions.
03
Call the Policy
Use the Policy name with the matching action, reasoning, or world-model route.
04
Tune a revision
Connect your episodes when the base needs adaptation. The Policy keeps the same name as revisions improve.
The brains.
A few of the 39 — the full set is in the model index; the 148-model research sweep stays in the catalog archive.
One unit. The step.
A step is one tick of the control loop — one motor command, one frame of imagined future, or one decision. (A humanoid taking one physical step burns about fifty of them.) Every model carries its own rate, like token prices vary by model — the bands below, exact rates on each model page. Queued jobs run when GPUs have slack: −66%.
| Brains | What a step is | Live rate range | Examples |
|---|---|---|---|
| Action | one motor command (a call = ~50 steps) | $0.008–0.040 /1k | π0 $0.024 · X-VLA $0.015 · RDT-2 $0.040 |
| Reasoning | one decision (≤500 tokens inside) | $0.60–1.50 /1k | Molmo2-ER $0.60 · Qwen3-VL $0.80 · GLM-4.6V $1.50 |
| World | one frame of imagined future (queue-native) | $0.50–8.00 /1k | V-JEPA 2 $0.50 · Cosmos 3 Nano $3.00 |
| Fine-tune | jobs bill the clock, not steps | $0.07/min A100 · $0.10/min H100 | new revision on an existing Policy |
Built like you actually work.
API first.Mint a key, make a call, and keep the development workflow you already use.
Licenses are the catalog.Every model here was verified against its actual license file for commercial hosted serving — the research-only traps (GR00T N1.5, Alpamayo, AnyGrasp) are named and excluded.
Your Policy keeps its name.Start from a catalog model. Add tuned revisions as the robot improves. The account-scoped Policy remains the callable target.
One unit: the step.You already type env.step() — now the bill reads in it. ~180k steps ≈ one robot-hour ≈ $1.50–4 of brain.