SO-101 SimStudio ้กน็›ฎไป‹็ป / Project intro

๐Ÿ“– This is the concise version (~3 min). For the full engineering details (design decisions, algorithm / reward, diagnostics, reproduce commands), read the deep-dive โ†’

Why this project

Like many in this community, I started my physical-AI and robotics journey with SO-101 and LeRobot โ€” an excellent on-ramp: open hardware, an active community, and a clear dataset format that gets you moving quickly.

I’m also an AMD ROCm developer. Simulation matters just as much for robot physical AI: before you invest in real hardware, MuJoCo-class physics lets you teleoperate, collect demonstrations, and validate pipelines in sim. Yet in the LeRobot ecosystem, turnkey SO-101 simulation + data collection on ROCm was still thin on the ground.

SO-101 SimStudio brings the pieces together: the SO-101 arm, MuJoCo physics, LeRobot v3.0 datasets, and a ROCm-first setup and docs. The goal is simple โ€” let physical-AI developers learn robot physical AI from simulation on AMD ROCm. An AMD Ryzen AI laptop or mini PC is enough to open that door.

The project is actively developed (real follower hardware, behavior-cloning training, and more on the ROADMAP). This post covers the first stable release (v0.1.2) โ€” what it is and what it can do today.

What v0.1.2 offers

CapabilityNotes
Three teleop backendsKeyboard (velocity), Joy-Con (cylindrical reach/swing), leader arm (Feetech STS3215 position mapping)
Dual recording GUI--view_mode mujoco (GLFW 3D, low latency) or rerun (multi-camera stream, Wayland-friendly)
LeRobot v3.0Record, replay, validate, Rerun viz โ€” no upstream LeRobot patches, plugin registration only
MuJoCo simSO-101 6-DOF arm, simple_pick table task, three cameras
ROCm setupmake rocm-sync one-shot deps; Ubuntu 24.04 + ROCm 7.2.x is the supported matrix

Three teleop modes (demo footage)

v0.1.2 ships three teleop backends on the same LeRobot v3.0 recording pipeline. Clips from project demo video (SO101-SimStudio-Demo01.mp4):

KeyboardJoy-ConLeader arm

Keyboard velocity control

Joy-Con cylindrical control

Real leader position mapping

World-frame velocity (WASD)Cylindrical reach/swing; one-handed recordFeetech STS3215, 1:1 position mapping

Running on AMD Ryzen AI Max+ 395

Architecture at a glance

Teleop โ†’ action mapping โ†’ MuJoCo sim โ†’ LeRobot dataset. LeRobot’s record/replay scripts discover plugins (lerobot_robot_* / lerobot_teleoperator_*); SimStudio implements the robot and teleop layers only, keeping the submodule pristine.

Architecture data flow

Where to start

New readers: start with QUICKSTART.md โ€” install, smoke checks, and recording commands for all three teleop modes.

Shortest path:

git clone --recursive https://github.com/alexhegit/so101-simstudio.git
cd so101-simstudio
make rocm-sync
source .venv-rocm/bin/activate

python -m simstudio.scripts.record \
    --config configs/so101_mujoco_keyboard.yaml \
    --view_mode mujoco

More docs: DESIGN.md (architecture), ROADMAP.md (plans).

Acknowledgements & practice

SimStudio stands on open source: LeRobot, MuJoCo, The Robot Studio SO-ARM100, joycon-robotics, Rerun, and more. See ACKNOWLEDGEMENTS.md in the repo.

Try it: clone โ†’ run make smoke-keyboard-record โ†’ record 1โ€“2 episodes โ†’ replay with dataset_viz or replay scripts. Issues and PRs welcome.

Series follow-up: Closing the Loop: Lab 01 Pick-and-Place (v0.1.3) โ€” sim demos โ†’ ACT / SmolVLA train โ†’ MuJoCo eval.

๐Ÿ“– Want more? Full engineering details in the deep-dive.