Sunday, December 14, 2025win3 min read
MuJoCo Simulation: Now We're Cooking
Got the physics simulation running in headless mode. I can now develop without the physical robot.
Major infrastructure win today. The MuJoCo simulation is working, which means I can:
- Develop when the robot isn't connected
- Test potentially dangerous movements safely
- Iterate faster (no physical constraints)
- Record demos without the physical hardware
Setup
The SDK ships with MuJoCo 3.3.0 support. Running in simulation mode:
bashpython -m reachy_mini.daemon.app.main --sim --headless --fastapi-port 8000The --headless flag is key for running from scripts/CI. Without it, MuJoCo tries to open a 3D window.
What Works
- All movement commands
- Antenna control
- Head poses
- Position feedback
- The REST API at localhost:8000
What Doesn't
- Camera (see future debugging session)
- Audio (no physical speakers to simulate)
- Some edge cases in collision detection
LaunchAgent Setup
I set up a LaunchAgent so the daemon starts automatically on login:
xml~/Library/LaunchAgents/com.bioinfo.reachy-daemon.plistNow I can just write code and trust the daemon is running. If it crashes, launchd restarts it.
Feeling
Productive. Having the simulation layer means I can move faster on software without being blocked by hardware logistics.