One platform to run Vision-Language-Action policies in simulation on serverless GPUs, measure what actually decides deployability success, robustness, control rate, memory and cost, and benchmark models head-to-head. Every run is reproducible from its config hash. There is no universally best model, only the best one for your task, robot and constraints.
“open the middle drawer of the cabinet”
unedited · 1× speed · frozen init state
100%
success
331
ms/step
$0.031
cost
16
GB
Optimise for
Max GPU · 16 GB
3 of 3 models eligible
Recommended
OpenVLA-7B
highest success, ties broken by robustness · beat OpenVLA-7B 4-bit
success
100%
gpu
16 GB
$/ep
$0.021
latency
335 ms
robustness
−33 pts
success
100%
gpu
8 GB
$/ep
$0.024
latency
445 ms
robustness
−67 pts
success
100%
gpu
10 GB
$/ep
$0.050
latency
1197 ms
robustness
not run
Ranking is a plain sort on the axis you picked, never a hidden weighted score. Every figure is measured, and “not run” stays blank rather than being estimated.
What the harness is for
Published VLA numbers are hard to act on because the things that determine whether a policy is deployable (control rate, memory, degradation under noise) are usually not reported alongside them, and rarely re-derivable.
OpenVLA-7B measures 335 ms/step on an A10, roughly 3 Hz closed-loop. Workable on quasi-static LIBERO scenes, far below what reactive manipulation needs. That number belongs beside the success rate, not in an appendix.
4-bit held 100% clean and fell further under σ=0.1 action noise than full precision. n=3, so this is a hypothesis worth more episodes rather than a finding, and the harness exists to make that follow-up cheap.
π0 scores 0% here. The cause is a checkpoint/library mismatch (state_dict missing language_model.embed_tokens.weight), not a statement about the policy. Separating those two is most of the work.
How it works
Five stages, one system. Most tooling stops after “Run”.
Define an environment (policy, cameras, task) and attach a GPU instance. Cold start to first rollout in minutes.
Execute across simulators and embodiments on serverless GPUs. Frozen initial states, so every model sees an identical scene.
Score every episode with evidence: goal predicates in sim, plus rollout video and partial progress for anything a human must trust.
Success, cost, latency, GPU and robustness on one frontier, with a recommendation for your constraints rather than a global #1.
Ranked failure hypotheses name the likely cause: gripper polarity, image orientation, embodiment mismatch, plus the slice to retrain on.
One command
Pre-flight checks action-space and embodiment compatibility before a GPU starts. Episodes are scored against LIBERO goal predicates and stored with their video. The perturbation and its magnitude are part of the config hash, so a perturbed run is a distinct, re-derivable result rather than an overwrite.
Action chunk · prediction horizon
VLAs emit an action chunk per forward pass. ROBIT’s adapter interface is chunk-native, so a 1-step model and a 50-step model run through the identical loop.
Robustness
Each model runs clean, then under a seeded perturbation applied at the policy’s input/output boundary. Both quantizations hold 100% on a clean bench; they separate under σ=0.1 action noise. n=3 per condition: directional, not conclusive.
−0
full precision
−0
4-bit quantized
Cost per successful task diverges once conditions degrade: $0.043 vs $0.141 here. With n=3 that ratio rests on a single episode, so treat it as a reason to run more, not as a measured 3×.
harness check · null policy · no success claimed
One harness, many simulators
SimEnv and ModelAdapter are narrow Protocols, so the eval loop is simulator-agnostic and each backend gets its own container image and GPU tier. LIBERO is verified with a real policy; RoboCasa currently proves only that the environment loads and steps.
LIBERO
MuJoCo · Franka Panda · 2 of 40 tasks run
RoboCasa
robosuite · PandaOmron · null policy only
Isaac Lab
PhysX · blocked: no /dev/dri on host
Platform
Pareto-optimal models circled, dominated models greyed out. Nothing beats a frontier model on every axis at once.
Goal predicates in sim, plus rollout video and partial progress kept per episode, so a number a human must trust always has something behind it.
episode_000
success
episode_001
success
episode_002
success
Set a priority and hard limits (max GPU, min success, max latency) and get the strongest eligible model, plus the runner-up it beat.
Turns a bare “0%” into ranked, actionable causes drawn from documented VLA-on-sim failure modes, each with a concrete fix.
Embodiment, adapter and action-space checks before a GPU spins up. A 7-DoF policy cannot silently drive a 12-DoF mobile base.
Describe the constraint and ROBIT configures the comparison, launches it, and lands you on the answer.
cheapest VLA that opens a drawer under 8 GB
Scope and limitations
Stated plainly so results are not read as broader than they are. This is early infrastructure with a small experimental record, not a benchmark suite.
Established
Not established
Point the harness at a policy and a LIBERO task. You get per-episode video, control rate, memory and cost from GPU wall clock, and a config hash that reproduces the run.