We searched public wheel-legged stacks, skipped anything that requires NVIDIA Isaac, cloned wheel_legged_genesis, and wired its pretrained PPO policy into MuJoCo.
Good demos are easy to find. Easy reproduction on Apple Silicon is not. Isaac Gym / Isaac Lab were treated as a hard no.
| Project | Demo | Why not / why yes |
|---|---|---|
| DreamWaQ Go2-W / LocoLeggedWheel | Strong real-robot Go2-W video | NVIDIA Isaac Gym or Isaac Lab. |
| SUSTech Wheel-Legged-Gym | Classic wheeled biped RL | Isaac Gym Preview 4. |
| jaykorea Flamingo (Isaac + Genesis forks) | Excellent sim2real | Isaac Lab; Genesis fork still heavy. |
| LimX TRON WF MuJoCo | Vendor wheel-foot humanoid | Linux SDK wheels only. |
| Albusgive/wheel_legged_genesis | Bilibili locomotion + MuJoCo transfer | MIT, in-repo checkpoints, MuJoCo XML, no NVIDIA required for replay. |
CJ-003 is a balancing wheel-legged biped: six position-controlled leg joints and two velocity-controlled wheels. Commands are forward speed, yaw rate, left/right leg length, and a lean term.
The v0.3.2 policy is a TorchScript actor, 286 observations (9 history frames + current 28-D slice + 6 scaled commands) to 8 actions.
Everything this v0.3.2 actor can track through its 6-D command:
vx, vy, yaw, left_leg, right_leg, lean.
vy was trained at 0, so there is no lateral strafe. No jump channel either.
CUDA_VISIBLE_DEVICES=1 /data/ypx/.conda/envs/wl_genesis/bin/python \ reproduce/run_genesis_motion_demo.py # full gallery: media/motions/
Genesis GPU eval of the official v0.3.2 actor (policy.pt from model_21000.pt). This is the training simulator on CUDA, not MuJoCo. Scripted forward command 0.8 m/s. All three maps stayed upright in this run.
CUDA_VISIBLE_DEVICES=1 /data/ypx/.conda/envs/wl_genesis/bin/python \ reproduce/run_genesis_terrain_demo.py --seconds 8 # MuJoCo heightfield replay still falls (sim2sim gap): python reproduce/run_terrain_demo.py
Cloned the repo, loaded the shipped policy on CPU PyTorch, patched the MJCF (Linux absolute paths → relative; planar slides → freejoint), and stepped the closed-loop controller in MuJoCo 3.3 from the existing twip_rl conda env.
The loop runs. Visual offscreen recording is blocked in this agent session (no CoreGraphics), and mesh-contact sim2sim still dumps the robot after a few hundred ms — the upstream Python sim2sim file is still the older 6-action observation. The Mac replay script uses the v0.3.2 8-action layout.
On a local Mac display you can open the MuJoCo viewer from reproduce/run_mujoco_demo.py. Official GPU training/eval stays on Linux + Genesis, as the authors specify.
# motion repertoire (Genesis + CUDA): CUDA_VISIBLE_DEVICES=1 /data/ypx/.conda/envs/wl_genesis/bin/python \ reproduce/run_genesis_motion_demo.py # terrains: CUDA_VISIBLE_DEVICES=1 /data/ypx/.conda/envs/wl_genesis/bin/python \ reproduce/run_genesis_terrain_demo.py --seconds 8 # MuJoCo CPU replay (will tip — known sim2sim gap): python reproduce/run_mujoco_demo.py --seconds 8