Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

fuyichen0725/blinkmimic

Machine Learning

Trains a Unitree G1 whole-body motion tracking policy in minutes on one RTX 4090.

132
9
Python
MIT
4 days old

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.