Models · WFM (world foundation model, Cosmos3-Edge post-trained) · tic-tac-toe · vision-driven
agi-wfm/so101-ttt
checking availability…
Our checkpoint cagataydev/
Price
- per call
- $0.0032 · 32 tokens
- per action
- $0.0001
- billed
- every returned action, whether or not your robot plays it
What you send
observation.state[6]- shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper · normalized: arm -100..100, gripper 0..100
observation.images.front[480, 640, 3]- front camera, RGB uint8 (JPEG on the wire)
observation.images.wrist[480, 640, 3]- wrist camera, RGB uint8 (JPEG on the wire)
tasktext- passed to the policy
Read the camera names out of your lease’s features (or the wire’s hello) rather than this table: a slot answers with its own.
What comes back
32 actions × 6 joints, to be played at 15 Hz — 2.13 s of motion per call.
semantics label says. That label echoes whichever runner answered your lease, so both values are in circulation: never branch on it (units, explained). LeRobot’s so101_follower defaults to degrees: run it with --robot.use_degrees=false. What the arm does if the connection drops.Held out
- ours
- 14.17 chunk / 6.2 first step
14.17 over the 2.13 s it predicts (seed 0, 4 denoise steps, 263 held-out windows) against 19.80 for repeating the last action — 1.40x; across seeds it varies by 1.03. It picks and places from vision; the task string does not yet choose the cell..
RMSE over 2.133 s of motion (32 actions at 15 Hz) / first step, so101-normalized-v1 units — every gate below is over the same 2.133 s on the same 263 windows · cagataydev/so101-tic-tac-toe-norm (apache-2.0), the LAST episode of every task held out (19,29,…,209), every 15th frame · warm start from runs/20261025T092425Z-train (the flagship's svla post-training), 1,000 iterations ≈ 76k samples ≈ 1.9 epochs of 190 episodes, lr 3e-5, one H200, 181 min, $15.11. Lower is closer to the recorded human demonstration; it is not a task success rate.
The chunk here is its own 32 steps — 2.13 s of motion at 15 Hz. Do not read it against another model’s figure unless both the step count and the seconds of motion match: drift grows with time, so a chunk covering less of it is an easier average.
The deadline is not this model’s chunk. With agi rollout the arm asks for the next chunk when 0.75 s of motion is left in its queue (LeRobot’s own default is 0.5 s), so a round trip has roughly that long however long the chunk is — 2.13 s here only sets how often you pay for one. Answer later than that and the arm holds its last position targets until the chunk arrives; it does not stop. Your own round trip is the figure the dashboard and /play print after a call.
Try it
One billed call with synthetic inputs ($0.0032). No robot moves.
pip install agi-diy
agi login
agi run agi-wfm/so101-ttt --probe -n 1Needs Python 3.12 — LeRobot is installed on first use, requires 3.12 or later and does not run on 3.14 yet.
Or run a test call from the dashboard, or drive the simulated SO-101.
Licences and data
| Checkpoint | cagataydev/ | OpenMDW-1.1 (base nvidia/Cosmos3-Edge) |
|---|---|---|
| Base model | nvidia/ | OpenMDW-1.1 |
| Training data | cagataydev/so101-tic-tac-toe-norm (apache-2.0), the LAST episode of every task held out (19,29,…,209), every 15th frame | as declared on the Hub |
Licences as declared on the Hub. A lease says which of these answered it — pool and checkpoint on the session. Policies, explained.