Use Roborama from anywhere.

Real robots as an API.

Statistically defensible evaluation on physical hardware. Simulation screens; physical testing verifies.

api console
import roborama  # auth: ROBORAMA_API_KEY

run = roborama.runs.get("run_demo")

for event in run.watch():  # SSE ticker
    print(event)

print(run.result())
run_demo · ready — press play

# requests & SSE eventsland here in step with the footage

0:00 / 0:35
For policy & model teams

Package a checkpoint, container, or endpoint; pin a robot and a versioned scene; get back a success rate with its n and Wilson 95% interval. episodes="auto(ci=0.95, moe=0.03)" sizes the run for the precision you need. Start with the quickstart.

For release & fleet verification

Sweep one policy across every embodiment and environment you ship to — each cell a rate with its interval, gated against a declared threshold, compared against prior runs. Wire it into CI gates and webhooks for release sign-off.

For simulation vendors

Send the scenarios your simulator flags; verify() runs them on physical hardware and returns the disagreements with full ground truth — mocap poses, commanded-vs-executed. Calibration exports ship under sim-calibration-v1. See sim triage.

The product

The product is a function call.

pip install roborama-sdk — then hand us a policy, pin a robot and an environment, and get back a result you can put in front of a customer, a safety board, or a CI gate.

roborama.run()
import roborama  # auth: reads ROBORAMA_API_KEY from the environment

run = roborama.run(
    robot="g1-edu-pro@fw2.3",
    environment="kitchen-std@v1.2",
    policy=roborama.Policy.checkpoint(hf="acme/skill-v4", runtime="openpi"),
    task="load_dishwasher@v2",
    episodes="auto(ci=0.95, moe=0.03)",
    max_budget_usd=4000,
)
print(run.result())
n=612 success_rate=0.874 ci95=(0.846, 0.898)
failure_clusters: [grasp_slip: 41, perception_miss: 22, collision: 9]
robot_hours=20.4 environment_hours=20.4 cost_usd=3,812
artifacts: mcap[], video[], ground_truth[], report_pdf

The discipline

n=612 · ci95=(0.846, 0.898)

Every result ships with error bars. A success rate arrives with its n and a Wilson interval — a bare percentage is treated as a bug, in our API and on this site.

bodies × brains × cadence

The testing surface compounds: every embodiment multiplies against every policy and every scheduled re-run. The matrix is a primitive, not a spreadsheet.

7 of 8 minutes

In Physical Intelligence's published online-RL result, 7 of 8 minutes of wall-clock went to resets and overhead, not robot data. Scripted resets are the economic core of the facility.

Sources and arithmetic on the research page.

The pipeline

Quote to verified, one thread.

Pin the claim, price it before a single motor moves, watch it meter live, and end at a number you can defend — every value below is the run_8842 fixture, end to end.

01
pin the claimPOST /v1/runs
task load_dishwasher@v2robot g1-edu-pro@fw2.3environment kitchen-std@v1.2perturbation set-B@v1.4
02
price before you runquote
$3,740

600 episodes est · 20 robot-hours × 20 env-hours · queue 6h

03
it runs — metered liverun_8842
n=612

20.4 robot-hours · 20.4 env-hours · metered $3,812 against the $3,740 quote

04
verifiedresult
0.874

ci95=(0.846, 0.898) · wilson · gate ci95 lower 0.80 → pass

The matrix

Embodiments × environments, resolving all day.

One policy, ten bodies, three scenes — every cell a rate with its interval. The full grid lives on the product page.

pass = Wilson 95% lower bound 0.80

10 embodiments × 3 environments · pick_place_class3 · episodes_per_cell=auto(ci=0.95, moe=0.05)

10 embodiments3 environments30 cells this sweep69 cells on the floor

Transfer

One brain, many bodies — measured.

The leading foundation models train overwhelmingly on arms and mobile bases, so every cross-embodiment claim ships with an unverified transfer to the bodies that matter most. transfer() measures the gap before a customer does — the same weights on two embodiments, Wilson intervals on both ends, and the new failure clusters named.

transfer(towel_fold@v1)one policy · two embodiments · wilson ci95

sourcealoha-bimanual@fw3.1

0.942

n=380 · ci95=(0.914, 0.961)

targetg1-edu-pro@fw2.3

0.715

n=340 · ci95=(0.665, 0.760)

grasp_slipwrist_singularityopened at the target · zero at source

Δ −22.7 pts — intervals on both ends, clusters named in between

The number nobody in the market can currently produce is the one every deployment decision needs — the worked example, with sources, on the research page.

Observability

Watch it run.

A WebRTC stream for every cell, an episode ticker, stage rates with Wilson intervals — and when the run completes, the artifacts are yours: mcap, video, ground truth, a citable report.

LIVErun_9101 · espresso@v1g1-edu-pro@fw2.3 · kitchen-std@v1.2 · n=412

cell-g1-04 — episode 341/412 · scripted reset between episodes

result.stage_rates — Wilson 95%

grasp_cup0.966 (0.944, 0.980)
cup_placed0.932 (0.904, 0.953)
extraction0.893 (0.860, 0.919)
served0.850 (0.812, 0.881)

failure_clusterscup_misplace 24spill 19timeout 12

artifactsmcapvideoground_truthreport_pdfwss://streams.roborama.com/cells/cell-g1-04/webrtc

The evidence

Reliability compounds against you.

Useful physical work is a chain of steps, and per-step reliability compounds across it — the entire economic value of deployment lives in the last decimals. A demo reel is one survivor-selected take; a 20-trial eval cannot distinguish 85% from 99%.

0.9930 = 0.74

99% per step — deployable

0.9530 = 0.21

95% per step — a demo reel

rule of three: a failure rate below 1-in-1,000 at 95% confidence takes ~3,000 clean episodes; 1-in-10,000 takes ~30,000 — the price of evidence is set by mathematics, not by us

Agent-native

Built for your agents too.

Every page on this site has a markdown twin — append .md. The docs ship whole as /llms.txt and /llms-full.txt, the API as an OpenAPI 3.1 spec with a runnable example on every operation, and ⌘K jumps anywhere. An agent can go from zero to a priced, running evaluation without rendering a pixel.

agent sessionno browser required
$ curl -s https://roborama.com/docs/quickstart.md
# Quickstart

Key → run → result in under five minutes.

You'll create an API key, launch a physical run on a humanoid in a kitchen
replica, and read back a result with a confidence interval. Nothing here
requires hardware knowledge — the defaults are the point.
$ 

Built for engineers. Legible to agents.

Get started