See what your robot saw.Then prove your next model handles it.
RoboTrace gives robotics teams one place to record every robot run, replay the synced video and sensors, and re-test new models against that history — so you catch regressions before they hit a real robot. pip install, robotrace login, and your first episode is live.
robotrace loginROS 2 nativeLeRobot readyOpen SDKYes, your robot already writes logs. Here's why that isn't enough to ship a policy.
Every robotics team starts the same way — rosbags piling up on a dev machine, an MP4 from the wrist cam in someone's Downloads folder, regression checks in a notebook nobody can rerun. It works until a model regresses in the field and you can't tell which run, which sensor, or which scene broke it.
What you already have
Logs your robot writes today — every robotics team starts here, and they hit the same wall about three months in.
- Rosbags, MP4s, and joint-encoder CSVs sit in different files at different rates. Replaying “what the robot saw at t=14.3s” means stitching them together by hand.
- 30 GB rosbags live on the laptop that recorded them. They never get backed up, never get searched, and never make it into training data.
- A new policy can’t run against a rosbag — a rosbag is a recording, not an environment. Re-rolling a candidate means putting the robot back on the table.
- Regression checks are a notebook on someone’s laptop. When v8 breaks reflective objects, you hear about it from a customer email.
- “Which policy ran on which robot during the Tuesday demo?” is a 4-hour archaeology session through Slack DMs and shared drives.
What RoboTrace adds
One pip install on top of the SDK you\u2019d eventually have to write yourself \u2014 without losing the quarter to write it.
- One
log_episode(...)call ships video, sensors, and motor commands as a single synced episode. Resumable uploads, signed URLs, and R2 storage are already wired up. - Every episode is searchable by robot, policy version, scene, and git SHA. The dataset that trained v8 is still there, byte-identical, in week 12.
- Re-roll any candidate policy against thousands of past episodes. Per-step performance deltas, side-by-side, before the robot leaves the rack.
- Out-of-distribution alerts and crash replays the moment a deployed robot drifts. You hear about regressions from RoboTrace, not from your customer.
- Tag, slice, and snapshot runs into reproducible training sets. No git-LFS, no “Maria sent it in Slack on March 12,” no archaeology.
Your engineers' job is the policy that makes the robot do the right thing. RoboTrace is everything between that policy and the engineer — the SDK, the storage, the replay, the regression harness — so the next quarter goes into the model, not into rebuilding the dashboard your team complains about every standup.
One platform. Four problems your team has been duct-taping for months.
Replay every robot run
Walk through a synced timeline of video, sensors, and motor commands. Pause on the exact frame your robot did the wrong thing.
- Multi-camera support
- Frame-accurate playback
- Bookmark moments
Test before you ship
Run a new model against thousands of past runs. See exactly where it improves and where it regresses — before it touches a real robot.
- Side-by-side model diffs
- Per-step performance delta
- Regression dashboards
Versioned datasets
Tag, slice, and snapshot runs into reproducible training sets. Reach for the same data weeks later without juggling git-LFS or shared drives.
- Tag and filter runs
- Saved slices
- S3-compatible exports
Fleet observability
Stream live telemetry from your deployed robots. Get notified the moment a model behaves out of distribution or crashes in the field.
- Out-of-distribution alerts
- Crash replays
- Per-robot drilldowns
From pip install
to a live replay in five minutes.
- STEP 01
Install and log in
One pip install plus one `robotrace login` and your machine is authorized — no copy-pasting API keys out of a portal. The CLI opens your browser, you click Authorize, and the credentials drop into ~/.robotrace/credentials.
Terminal · bash$ pip install robotrace Successfully installed robotrace-0.1.0 $ robotrace login Logging in this machine via your browser… To authorize this device, open: [robotrace] → https://app.robotrace.dev/cli/auth?code=XKDF-PQ4N Confirmation code: XKDF-PQ4N ✓ Logged in as art@robotrace.dev - STEP 02
Wrap your run loop
Three lines around the loop you already have. Works with LeRobot, ROS 2 bags, a Gymnasium env, or your own training script. The moment the episode opens, the SDK prints a clickable URL straight to its replay page.
train.py — output# import robotrace as rt # # with rt.start_episode(name="pick-and-place v3", # policy_version="vla-7b@v12") as ep: # rollout(env, policy, ep) # ep.upload_video('./run.mp4') $ python train.py [robotrace] → https://app.robotrace.dev/portal/episodes/ep_8f3c uploading run.mp4 … 100% sensors.bin … 100% ✓ Episode ready in 4.2s. - STEP 03
Open the dashboard
Runs appear in your project within seconds. Walk through the timeline, drop a bookmark on the exact frame the robot got it wrong, or share a permalink that opens to the same instant on your teammate's screen.
- STEP 04
Test on past runs
Trained a new model? Run it against the last 1,000 recorded runs without touching real hardware. See exactly what changed — and what regressed — before anything ships to a real robot.
rt eval start --episodes "tag:nightly,last:1000" \ --policy "vla-7b@v13" \ --diff "vla-7b@v12"
Every frame. Every joint. Every action.
Your sensor streams and action vectors are time-locked to the video clock at ingest. Scrub frame-by-frame, drop a bookmark, and share a permalink that opens to the exact same instant on your teammate's screen.
Don't ship a regression to a real robot.
Every run RoboTrace records becomes a test case. Point a new model at thousands of past runs, see exactly where it does better and where it does worse, and roll the results up into the metrics your team already tracks — all without booking a single hour of robot time.
- No real-world testing cost
- Compare any two model versions
- Slice by tag, environment, or sensor config
- Webhook into your CI before release
- Success rate62.4%78.1%+15.7
- Avg. reward / step0.4120.521+0.109
- Collision rate8.2%3.1%−5.1
- Time-to-goal (s)14.711.2−3.5
- OOD action share1.9%0.4%−1.5
Plays nicely with your stack.
Bring your own simulator, policy, or dataset format. RoboTrace ships first-class adapters for the stacks robotics teams already use. If yours isn't listed, the SDK accepts raw numpy arrays.
- SoonROS 2humble · jazzyimportrobotrace.adapters.ros2
- SoonLeRobotdatasets + policiesimportrobotrace.adapters.lerobot
- SoonMuJoCoPlayground / MJXimportrobotrace.adapters.mujoco
- SoonGenesisfast simimportrobotrace.adapters.genesis
- SoonIsaac SimNVIDIAimportrobotrace.adapters.isaac
- SoonGymnasiumFaramaimportrobotrace.adapters.gym
- SoonHugging Facedatasets + hubimportrobotrace.adapters.hf
- Raw NumPyDIY rolloutsimportrobotrace.adapters.numpy
Free while you tinker. Pay when it's on a real robot.
Free
Forever, while you build.
For students, indie roboticists, and weekend tinkerers.
- Up to 50 episodes / month
- 1 project, 1 seat
- 30-day retention
- Community Discord
Starter
Per organization.
For freelancers and small research labs running their first paid pilots.
- Up to 1,000 episodes / month
- 3 seats, 2 projects
- 90-day retention
- Replay & comparisons
- Email support
Team
Per organization.
For startups shipping policies on real robots and small fleets.
- Unlimited episodes
- 10 seats, unlimited projects
- 12-month retention
- Eval engine + webhooks
- Replay regression harness
- Slack support · 24h SLA
Enterprise
Annual contract.
For robot companies with deployed fleets and compliance needs.
- BYO Cloudflare R2 / S3
- SAML SSO + SCIM
- On-prem regional pinning
- SOC 2 (in progress)
- Dedicated Slack channel
Phase 1 is invite-only and free for every tier. We'll turn on metering once we're sure the product earns its price.
The questions we get every week.
Start logging in minutes.
Join the early-access cohort. We're onboarding teams one at a time so we can stay close to the painful parts. Tell us what you're building and we'll get back to you this week.
Phase 1 · Free for early-access teams · English only
