Run our released checkpoint on your device.
Open should mean the weights, the data, and a way to actually run them. This is the Institute's first released policy checkpoint — a small, on-device controller trained on our own openly published dataset. Below, the exact published weights close the loop live on the same simulated arm they learned on. No server. No GPU. No install.
Weights, data, and a way to run them.
A released artifact is only as open as your ability to reproduce and run it. This checkpoint ships all three, together.
Released, not just described
The trained parameters ship under CC-BY-4.0 as safetensors — the artifact itself, downloadable and reusable, not a figure in a paper.
The set it learned from
Trained on our own openly published dataset, generated fully in the browser with no hardware and no cloud. Anyone can regenerate it in about a minute.
On your device, right now
The same weights close the loop on the same simulated arm, live on this page — no server, no GPU, no install. Open you can actually execute.
Small, and honestly measured.
Evaluated on two episodes held out entirely from training — an episode-level split, not a frame-level one — so the score reflects generalization, not memorization.
Held-out action MSE 5.68×10⁻⁷ against a predict-the-mean baseline of 4.20×10⁻⁴, with train and validation error essentially equal (no meaningful overfitting). The full metrics, training recipe, and citation are in the model card.
The same weights, everywhere.
The browser path uses plain float32 arrays and is verified bit-for-bit equivalent to the safetensors forward pass.
No server, plain arrays
const m = await (await fetch('policy.web.json')).json();
const silu = x => x/(1+Math.exp(-x));
// z-score in, MLP 7→128→128→3, z-score out
function act(obs){ /* 3 matmuls */ return dq; }NumPy + safetensors
from safetensors.numpy import load_file
w = load_file('model.safetensors')
def act(obs):
h = silu(w['0.weight'] @ ((obs-xm)/xs) + w['0.bias'])
... # 3 layers → denormalizeThe loop you're watching
// the released weights ARE the controller driving
// the arm in the panel: obs(7) → policy → action(3),
// stepped through in-browser MuJoCo at ~60 Hz.What it is, and what it isn't.
We release small honest artifacts because that is how open science compounds. Here is exactly what this one covers.
One task, in simulation
It solves a single reach task on a simulated arm. It is an educational reference policy — not a foundation model and not safety-tested for any physical deployment.
A small demonstration set
Eleven episodes from a scripted expert. The near-perfect fit reflects a low-dimensional, clean task; the point is a released, reproducible, runnable artifact.
Sim-to-real needs care
Because it is simulation-generated, transferring to hardware needs the usual domain-gap work. The dataset and training are open so you can extend both.
Weights, dataset, and the maker.
forge-arm-reach
The openly published trajectories it learned from — 11 episodes, generated on-device.
Forge
Record a new dataset and train a policy in your browser — the same loop that produced this one.