Zhen Wu*, Xiaoyu Huang*, Lujie Yang*, Yuanhang Zhang, Xi Chen, Pieter Abbeel†, Rocky Duan†, Angjoo Kanazawa†, Carmelo Sferrazza†, Guanya Shi†, C. Karen Liu†
Project page · arXiv · Video
PHP (Perceptive Humanoid Parkour) enables humanoid robots to autonomously perform long-horizon, vision-based parkour across challenging obstacle courses. The framework has three steps:
- Motion matching. Compose retargeted atomic human skills into long-horizon trajectories offline using motion matching.
- Teacher training. Train RL experts to track the trajectories with privileged state and terrain observations.
- Student training. Distill the experts into a depth-based, multi-skill policy using DAgger + RL.
For sim2sim with an existing ONNX pair, use the PHP launchers and pinned Holosoma setup.
For motion matching and training, clone PHP with its pinned Holosoma submodule:
git clone --recurse-submodules https://github.com/amazon-far/php_parkour.git
cd php_parkourChoose a guide below for environment setup and commands. For training, use the prepared example datasets or generate your own with motion matching. If you already have an exported ONNX pair, go directly to sim2sim.
| Guide | Workflow | Requirements |
|---|---|---|
| Motion matching | Generate and inspect motion/terrain datasets; upload them for training or add new skills | Conda; no IsaacSim |
| Training and evaluation | Train teachers, distill a student, evaluate checkpoints, and export ONNX | Linux/NVIDIA with IsaacSim |
| Sim2sim | Run the exported depth policy in MuJoCo | Holosoma's MuJoCo and inference environments |
To try the example student policy in MuJoCo, download the validated ONNX pair from the student release. Run from the PHP checkout root:
python scripts/download_assets.py studentThe release contains sanitized depth_backbone.onnx and student.onnx files,
without raw .pt or teacher checkpoints. Files default to
~/.cache/php-parkour/student; pass --destination DIR to choose another
directory. The downloader verifies the archive and both model files against
release-assets.json.
Follow the sim2sim guide to run the policy. You can also use the automatically exported ONNX pair from your own student training run.
- PHP on mjlab — A community port by @yhx1203. See the announcement and videos.
@article{wu2026perceptive,
title={Perceptive humanoid parkour: Chaining dynamic human skills via motion matching},
author={Wu, Zhen and Huang, Xiaoyu and Yang, Lujie and Zhang, Yuanhang and Chen, Xi and Abbeel, Pieter and Duan, Rocky and Kanazawa, Angjoo and Sferrazza, Carmelo and Shi, Guanya and others},
journal={arXiv preprint arXiv:2602.15827},
year={2026}
}Related: OmniRetarget.

