Interdisciplinary Β· Active Β· Living Document

SO-101 Sim-to-Real Integration Roadmap

Three parallel tracks, adopted after the camera fix closed out one investigation and MuJoCo opened another β€” sim runs alongside real recording, not before it

Status: active plan, adopted 22 September 2026, superseding a same-day first-pass draft. Following the camera-fix + lighting/position investigation (closed the same day) and the earlier data-poisoning paper follow-up, the next stage is training SmolVLA β€” a real vision-language-action model β€” while standing up a MuJoCo simulation track on the ML Desktop, in parallel, without letting either block the other.
23 Sept update: SmolVLA's Pi 5 inference-speed problem is resolved β€” forward pass now runs remotely on the ML Desktop's GPU, 0.55 Hz β†’ 3.02 Hz.
Expect this to move: the user's roadmaps shift as reality disagrees with them β€” this document gets rewritten wholesale as it evolves, not patched incrementally.

Where things stand (22 Sept, end of day)

Three compatibility gaps between sim and real, identified today

  1. Action space mismatch β€” sim uses normalized end-effector deltas [dx, dy, dz, grasp]; real recordings are joint-space actions. No translation layer exists yet.
  2. Resolution/camera mismatch β€” sim renders 128Γ—128 from a fixed default view; real cameras are 640Γ—480 (main) / 320Γ—240 (gripper), front-facing.
  3. Task mismatch β€” sim ships one canned pick-cube task; SmolVLA needs genuinely varied language-conditioned tasks, not more positions of the same task.
Conclusion carried into this plan: sim is real and working, but it is not yet a shortcut to more SmolVLA training data. It's a parallel investment, not a dependency for starting real recording.

Vocabulary β€” three integration strategies

These name how sim and real eventually combine, once the three gaps above are closed. They are not the near-term plan β€” see the adopted tracks below for that.

  1. Domain randomization β€” randomize sim rendering (textures, lighting, color, camera jitter) so a sim-trained policy doesn't overfit to sim's visual appearance. Fits naturally with the bgdiv (background-diversity) result already found on real hardware. Doesn't by itself solve the task/language-variety problem.
  2. Joint co-training on sim + real together β€” needs sim episodes schema-compatible with real LeRobot episodes (same feature schema, comparable action/state spaces). The most format-engineering-heavy option; mixing ratio is an open research question, not a known default.
  3. Sim-pretrain β†’ real-finetune ("polish") β€” the voice-training analogy the user has direct prior experience with (Dimitar/Piper). Lowest new-tooling risk, mechanically similar to existing HF-checkpoint fine-tuning. Risk: catastrophic overfitting back to the small real set if the fine-tune isn't done carefully.

The adopted plan: three parallel tracks

Track A β€” Real Multi-Task Recording for SmolVLA β—‰ Starts Now, No Blockers

Goal: give SmolVLA genuine language variety, which sim can't yet provide.

Plan

This week's lessons, applied to every new batch

βΈ» ⬇ βΈ»

Track B β€” Simulation, Scoped Honestly β—‰ In Progress, No Deadline

Given the three compatibility gaps above, sim's realistic near-term jobs are narrower and more honest than "generate training data":

Runs whenever ML Desktop time is free between real-data training runs. No dependency relationship with Track A β€” they only eventually compete for the same GPU, which isn't a real constraint yet.

βΈ» ⬇ βΈ»

Track C β€” SmolVLA Training ☐ Blocked on Track A

Sequencing summary

TrackWhatBlocks onRuns when
A β€” Real recordingTask 2 (push-left), then maybe Task 3 (stack)NothingWhenever the rig is free
B β€” SimulationPipeline learning, domain randomization prototypingNothingWhenever ML Desktop is free between real-data work
C β€” SmolVLA trainingQuick run on Task 1+2, then scaleTrack A producing β‰₯2 tasksAfter first new batch is recorded

A and B run genuinely in parallel β€” they don't compete for the same resource (Pi 5 rig vs. ML Desktop GPU) except both eventually want ML Desktop GPU time, which isn't a real constraint yet.

Explicitly open / deliberately deferred

Adopted: 22 September 2026 Β· Last updated: 22 September 2026