fuyichen0725/blinkmimic
Machine LearningTrains a Unitree G1 whole-body motion tracking policy in minutes on one RTX 4090.
Overview
BlinkMimic is a research training recipe for whole-body motion tracking on the Unitree G1 humanoid. It learns a differentiable world model and optimizes the policy by backpropagating through imagined rollouts inside mjlab and MuJoCo Warp. On a single RTX 4090, one policy is trained across all 40 LAFAN1 clips (2.45 h of motion) and reaches an evaluation normalized return of 0.82 in about 2.9 minutes of training (mean of 3 seeds), with about 3.4 minutes to also meet strict criteria.
The README reports that BlinkMimic builds on SuperMimic and InstantTrack, and changes the optimization and reset strategy. The main additions are a semi-implicit world model, mirror augmentation, fixes to reset statistics, and evaluation-guided resets: from iteration 1000, the deployed policy is swept over all clips every 125 iterations, and 15% of resets target the 10 seconds before failures. It also uses Muon on hidden weight matrices and CUDA graphs for world-model and policy updates, as summarized in What BlinkMimic changes.
It is aimed at researchers and engineers working on physics-based humanoid motion tracking who have an NVIDIA GPU and are comfortable with a Python training pipeline. BlinkMimic follows the same simulator, MDP, reward and evaluator as SuperMimic and InstantTrack for comparison purposes.
Setup
The training environment targets Linux x86_64 with an NVIDIA GPU driver supporting CUDA 12.8. You also need uv, git, curl, python3, and ffmpeg if you plan to render videos. The repository is public at fuyichen0725/blinkmimic.
git clone https://github.com/fuyichen0725/blinkmimic.git
cd blinkmimic
uv sync # creates .venv with mjlab, MuJoCo Warp, Warp, torch 2.9.0 (CUDA 12.8)
tools/download_data.sh # downloads 40 G1-retargeted LAFAN1 clips + G1 description -> data/
uv run python tools/test_env.py # sanity check: FK vs simulator, state round-trip, reference playback
The setup steps and their prerequisites come from the Setup section. The uv tool is available at docs.astral.sh/uv.
Train and evaluate
The train command runs about 3500 iterations and writes a checkpoint every 100 iterations. The README estimates roughly 8 minutes for a full run. Evaluation and time-to-target tooling are bundled in tools/.
bash scripts/train.sh logs/run_s0 --seed 0
uv run python tools/eval_batch.py --run_dir logs/run_s0 --group 18 --reps 4
uv run python tools/time_to_target.py logs/run_s0
The Train, evaluate, reproduce section also provides bash scripts/reproduce.sh logs/reproduce to reproduce the 3-seed evaluation and time-to-target table. Additional tools include tools/eval_metrics.py for accuracy and contact metrics, tools/render.py for videos produced with python -m blinkmimic.evaluate --record, and tools/export_onnx.py and tools/play_onnx.py for ONNX export and a simulator check; play_onnx.py requires onnxruntime.
Constraints
Training needs an otherwise idle GPU. The README warns that on a shared GPU, --eprobe_async can crash with an illegal memory access and should be disabled with --eprobe_async 0. Training wall-clock numbers include compilation, CUDA-graph capture, probe sweeps and checkpointing, but exclude process start-up and data loading.
The code is MIT-licensed, but the LAFAN1 motion data is CC BY-NC-ND 4.0, and trained checkpoints and GIFs derived from it are for non-commercial research use only. Data-derived files are not covered by the repository's MIT License; the constraints are described in the Attribution and licenses section and the repository LICENSE. Third-party notices are in THIRD_PARTY_NOTICES.md.
HotRepo's take
BlinkMimic appeared on HotRepo's new-project leaderboard for the Python list on 2026-11-04, where the recorded snapshot shows 107 stars and 4 stars gained within an hour-long growth window. That is enough to mark it as a fresh, fast-moving project but not enough to establish a trend; the repository has no GitHub daily rank record in the available data. The README is unusually specific for a project of this age: it reports training times for 3 seeds, per-iteration cost, failed-clip counts and a comparison table against SuperMimic and InstantTrack. For readers evaluating whole-body tracking for the G1, the most useful thing here is the reproducible baseline, not the headline minutes.
Written by AI from the project's README, updated . The project's own docs are the source of truth.