Documentation menu

Live runtime today

Exactly what runs on real infrastructure right now, how to reach it, and what is still served by test mode.

Everything on this site documents the full contract. Most of it is served today by test mode: simulated robots, real statistics. This page is the honest inventory of the live runtime, the Go control plane that schedules real cells, records evidence and scores outcomes independently of the policy. It is updated as capabilities land.

What is live

CapabilityStatus
Submit a run with a reference policy on the tasks below, 1 to 20 episodesLive
Exclusive cell allocation, durable queue, idempotent retries, cancellationLive
Operator-confirmed reset before every episode, with recorded initial conditionsLive
Independent scoring from recorded observations, never from the policy's own claimLive
Result with n, success_rate, a fixed-n Wilson 95% interval (two or more scored episodes), published denominators and per-episode evaluationsLive
robot_hours and environment_hours from recorded intervals, plus per-episode operator and execution minutesLive
Five hashed artifacts per run (commands, telemetry, events, MCAP, manifest) behind authenticated downloadsLive
Per-episode camera video (episode-NNN.<camera>.mp4, frame receipts on the MCAP camera channel)Live for cells with cameras; the simulation cell records synthetic frames
Live view of a cell camera (GET /v1/streams/{cell}?camera=top, MJPEG for an <img> tag or a JPEG snapshot with Accept: image/jpeg)Live for cells with cameras; frames come straight from the cell's camera owner, stamped with capture time
Console API keys (rbr_live_) authenticated through operator-written grantsLive
Ground-truth object poses, LeRobot and RLDS exportTest mode only
Container, checkpoint and endpoint policiesTest mode only
auto(ci, moe) sizing, perturbation schedules, budgets, quotes, suites, gates, matrix, threshold, compare, transferTest mode only
Dollar pricingNot metered; the two meters are reported in hours

Tasks on the live catalogue

TaskEnvironmentReference policyScored by
place-die@1dice-mat@1dice-place-reference@1Planar object observations from the trusted recorder: the die must finish settled inside the target zone
pick-up-die@1dice-floor@1dice-pickup-reference@1Object lift and hold from fixture observations

Both tasks run today on simulation cells with an explicitly simulated: true result. Physical cells are refused before queueing until the installed calibration, camera-to-arm registration and guarded executor exist; the result never claims physical reliability it did not measure.

Statuses

Public runs report the contract's status, with the exact runtime state beside it in execution_status and a phase where the status alone is not enough.

statusphaseexecution_statusMeaning
queuedqueuedAccepted; no cell allocated yet
schedulingdispatchingCell allocated; the host is being reached
runningreset_waitreset_requiredWaiting for the operator's readiness attestation before the next episode
runningexecutingrunningAn episode is executing
runningcancellingcancellingCancellation requested; the cell has not yet verified a stop
reconciliation_requiredunknown or resolvingsameExecution outcome is uncertain; an operator must inspect the cell. Not terminal, never presented as stopped
completedcompletedEvery episode finished; read result once artifact_status is available
stoppedcancelledcancelledThe cell verified a stop after cancellation; scored episodes stay scored
failedfailed, expired or interruptedsameThe run ended without completing; the phase says why

The SDKs' result() raises for stopped, failed and reconciliation_required rather than fabricating a result. run.watch() streams the same transitions as server-sent events, replaying the durable history for late subscribers and resuming after Last-Event-ID; the stream ends once the run is terminal and its evidence has settled.

Reaching it

The live runtime is hosted for design partners and is not the public sandbox host. Both SDKs already support the override:

export ROBORAMA_API_KEY=rbr_live_...          # from the console, with a grant
export ROBORAMA_BASE_URL=https://<runtime host you were given>
from roborama import Client, Policy

client = Client(mock=False)
run = client.runs.create(
    robot="<cell>-robot@1",                 # from GET /v1/tasks
    environment="dice-mat@1",
    task="place-die@1",
    policy=Policy.reference("dice-place-reference@1"),
    episodes=10,
    interventions="none",
    idempotency_key="my-first-live-run",   # persist before submitting
)
result = run.result(timeout=3600)
print(result.n, result.success_rate, result.ci95, result.robot_hours)

A rbr_live_ key against the sandbox host returns 403 live_key_on_sandbox, and a rbr_test_ key against the runtime is refused, so the two can never be confused. Runs wait in reset_required until a local operator confirms the fixture; customer code cannot acknowledge readiness.

Disclosure

  • The live embodiment is a Waveshare RoArm-M2-S, a four-axis engineering testbed. It proves the control plane; it is not the pilot embodiment and it does not represent a premium robot-hour tier.
  • Until the physical executor is installed, the live tasks run on simulation cells and every record says simulated: true. The scorer, statistics, artifacts and meters are the same code paths a physical cell will use.
  • Nothing is metered in dollars. robot_hours and environment_hours come from recorded intervals; null means unobserved, never zero.
  • Every episode waits for a local operator's readiness attestation, recorded with initial conditions. Customer code cannot acknowledge a reset.

Reading this site

Pages that describe capabilities outside the table above carry a Test mode today marker. The request and response shapes on those pages are the contract the runtime is converging on; the sandbox serves them now so integrations can be written ahead of the hardware.