agi.diy

Models · WFM (world foundation model, Cosmos3-Edge post-trained) · flagship · preview

agi-wfm/so101

checking availability…

Our checkpoint cagataydev/agi-wfm-so101 (weights private for now), for the SO-101 arm. It answers one observation with the next 32 actions. It is not a general-purpose controller; the task sentence is passed to the model, but only the task it was trained on is expected to work. The older id wfm/so101 still works and leases the same row.

flagship · preview.post-training in progress. The numbers below are held-out offline scores, not a success rate on a real arm — what the service can and cannot tell you.

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)
task text
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.

Units before motion.Values are LeRobot normalized (arm −100…100, gripper 0…100), not degrees — whatever the 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.3 chunk / 3.51 first step

RMSE over 2.13 s of motion (32 actions at 15 Hz) / first step (normalised units) — every gate below is measured over the same 2.13 s · lerobot/svla_so101_pickplace (apache-2.0), episodes 45–49 held out · Cosmos3-Edge post-trained, 1,500 iterations, H200, 62.6 min; longer runs in progress. 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 first action

this checkpoint
3.51
our ACT checkpoint
4.82

One action rather than an average over a chunk, so the two are measured on the same thing. This is the part of the flagship that is already as good as our ACT checkpoint; the gap over a whole chunk is drift across it.

Does it use its cameras?

as recorded
14.66
cameras swapped
20.2
frames blanked
34.88
a different episode
55.8

The same checkpoint over the same episodes, with the images interfered with. Swapping the two cameras makes it a little worse, blanking them makes it much worse, and feeding frames from a different episode is worse still — so the policy is reading the images, not replaying a memorised trajectory.

Try it

One billed call with synthetic inputs ($0.0032). No robot moves.

Code
pip install agi-diy
agi login
agi run agi-wfm/so101 --probe -n 1

Needs 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

Checkpointcagataydev/agi-wfm-so101 · weights privateOpenMDW-1.1 (base nvidia/Cosmos3-Edge)
Base modelnvidia/Cosmos3-EdgeOpenMDW-1.1
Training datalerobot/svla_so101_pickplace (apache-2.0), episodes 45–49 held outas 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.