GMR
[ICRA 2026] GMR: General Motion Retargeting. Retarget human motions into diverse humanoid robots in real time on CPU. Retargeter for TWIST.
Install / Use
/learn @YanjieZe/GMRREADME
GMR: General Motion Retargeting
<a href="https://arxiv.org/abs/2505.02833"> <img src="https://img.shields.io/badge/paper-arXiv%3A2505.02833-b31b1b.svg" alt="arXiv Paper"/> </a> <a href="https://arxiv.org/abs/2510.02252"> <img src="https://img.shields.io/badge/paper-arXiv%3A2510.02252-b31b1b.svg" alt="arXiv Paper"/> </a> <a href="https://opensource.org/licenses/MIT"> <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"/> </a> <a href="https://github.com/YanjieZe/GMR/releases"> <img src="https://img.shields.io/badge/version-0.2.0-blue.svg" alt="Version"/> </a> <a href="https://x.com/ZeYanjie/status/1952446745696469334"> <img src="https://img.shields.io/badge/twitter-ZeYanjie-blue.svg" alt="Twitter"/> </a> <a href="https://yanjieze.github.io/humanoid-foundation/#GMR"> <img src="https://img.shields.io/badge/blog-GMR-blue.svg" alt="Blog"/> </a> <a href="https://www.bilibili.com/video/BV1p1nazeEzC/?share_source=copy_web&vd_source=c76e3ab14ac3f7219a9006b96b4b0f76"> <img src="https://img.shields.io/badge/tutorial-BILIBILI-blue.svg" alt="Blog"/> </a>

Key features of GMR:
- Real-time high-quality retargeting, unlock the potential of real-time whole-body teleoperation, i.e., TWIST.
- Carefully tuned for good performance of RL tracking policies.
- Support multiple humanoid robots and multiple human motion data formats (See our table below).
[!NOTE] If you want this repo to support a new robot or a new human motion data format, send the robot files (
.xml,.urdf, and meshes) / human motion data to <a href="mailto:lastyanjieze@gmail.com">Yanjie Ze</a> or create an issue, we will support it as soon as possible. And please make sure the robot files you sent can be open-sourced in this repo.
This repo is licensed under the MIT License.
News & Updates
- 2026-01-21: GMR now supports Xsens BVH offline data.
- 2026-01-12: GMR now supports Fourier GR3, the 17th humanoid robot in the repo.
- 2025-12-02: GMR now supports TWIST2, which utilizes XRoboToolkit SDK.
- 2025-11-17: To join our community for discussions, you can add my WeChat contact QR Code with info like "[GMR] [Your Name] [Your Affiliation]".
- 2025-11-08: [MimicKit] from Jason Peng now supports GMR format. Check here.
- 2025-10-15: Now supporting PAL Robotics' Talos, the 15th humanoid robot.
- 2025-10-14: GMR now supports Nokov BVH data.
- 2025-10-14: Add a doc on ik config. See DOC.md
- 2025-10-09: Check TWIST open-sourced code for RL motion tracking.
- 2025-10-02: Tech report for GMR is now on arXiv.
- 2025-10-01: GMR now supports converting GMR pickle files to CSV (for beyondmimic), check
scripts/batch_gmr_pkl_to_csv.py. - 2025-09-25: An introduction on GMR is available on Bilibili.
- 2025-09-16: GMR now supports to use GVHMR for extracting human pose from monocular video and retargeting to robot.
- 2025-09-12: GMR now supports Tienkung, the 14th humanoid robot in the repo.
- 2025-08-30: GMR now supports Unitree H1 2 and PND Adam Lite, the 12th and 13th humanoid robots in the repo.
- 2025-08-28: GMR now supports Booster T1 for both 23dof and 29dof.
- 2025-08-28: GMR now supports using exported offline FBX motion data from OptiTrack.
- 2025-08-27: GMR now supports Berkeley Humanoid Lite, the 11th humanoid robot in the repo.
- 2025-08-24: GMR now supports Unitree H1, the 10th humanoid robot in the repo.
- 2025-08-24: GMR now supports velocity limits for the robot motors,
use_velocity_limit=Trueby default inGeneralMotionRetargetingclass (and we use 3*pi as the velocity limit by default); we also add printing of robot DoF/Body/Motor names and their IDs by default, and you can access them viarobot_dof_names,robot_body_names, androbot_motor_namesattributes. - 2025-08-10: GMR now supports Booster K1, the 9th robot in the repo.
- 2025-08-09: GMR now supports Unitree G1 with Dex31 hands.
- 2025-08-07: GMR now supports Galexea R1 Pro (this is a wheeled humanoid robot!) and KUAVO, the 7th and 8th humanoid robots in the repo.
- 2025-08-06: GMR now supports HighTorque Hi, the 6th humanoid robot in the repo.
- 2025-08-04: Initial release of GMR. Check our twitter post.
Demos
<table> <tr> <td align="center" width="20%"> <b>Demo 1</b><br> Retargeting LAFAN1 dancing motion to 5 robots.<br> <video src="https://github.com/user-attachments/assets/23566fa5-6335-46b9-957b-4b26aed11b9e" width="200" controls></video> </td> <td align="center" width="20%"> <b>Demo 2</b><br> Galexea R1 Pro robot (view 1).<br> <video src="https://github.com/user-attachments/assets/903ed0b0-0ac5-4226-8f82-5a88631e9b7c" width="200" controls></video> </td> <td align="center" width="20%"> <b>Demo 3</b><br> Galexea R1 Pro robot (view 2).<br> <video src="https://github.com/user-attachments/assets/deea0e64-f1c6-41bc-8661-351682006d5d" width="200" controls></video> </td> <td align="center" width="20%"> <b>Demo 4</b><br> Switching robots by changing one argument.<br> <video src="https://github.com/user-attachments/assets/03f10902-c541-40b1-8104-715a5759fd5e" width="200" controls></video> </td> <td align="center" width="20%"> <b>Demo 5</b><br> HighTorque robot doing a twist dance.<br> <video src="https://github.com/user-attachments/assets/1d3e663b-f29e-41b1-8e15-5c0deb6a4a5c" width="200" controls></video> </td> </tr> <tr> <td align="center"> <b>Demo 6</b><br> Kuavo robot picking up a box.<br> <video src="https://github.com/user-attachments/assets/02fc8f41-c363-484b-a329-4f4e83ed5b80" width="200" controls></video> </td> <td align="center"> <b>Demo 7</b><br> Unitree H1 robot doing a ChaCha dance.<br> <video src="https://github.com/user-attachments/assets/28ee6f0f-be30-42bb-8543-cf1152d97724" width="200" controls></video> </td> <td align="center"> <b>Demo 8</b><br> Booster T1 robot jumping (view 1).<br> <video src="https://github.com/user-attachments/assets/2c75a146-e28f-4327-930f-5281bfc2ca9c" width="200" controls></video> </td> <td align="center"> <b>Demo 9</b><br> Booster T1 robot jumping (view 2).<br> <video src="https://github.com/user-attachments/assets/ff10c7ef-4357-4789-9219-23c6db8dba6d" width="200" controls></video> </td> <td align="center"> <b>Demo 10</b><br> Unitree H1-2 robot jumping.<br> <video src="https://github.com/user-attachments/assets/2382d8ce-7902-432f-ab45-348a11eeb312" width="200" controls></video> </td> </tr> <tr> <td align="center"> <b>Demo 11</b><br> PND Adam Lite robot.<br> <video src="https://github.com/user-attachments/assets/a8ef1409-88f1-4393-9cd0-d2b14216d2a4" width="200" controls></video> </td> <td align="center"> <b>Demo 12</b><br> Tienkung robot walking.<br> <video src="https://github.com/user-attachments/assets/7a775ecc-4254-450c-a3eb-49e843b8e331" width="200" controls></video> </td> <td align="center"> <b>Demo 13</b><br> Extracting human pose (GVHMR + GMR).<br> <a href="https://www.bilibili.com/video/BV1Tnpmz9EaE">▶ Watch on Bilibili</a> </td> <td align="center"> <b>Demo 14</b><br> PAL Robotics’ Talos robot fighting.<br> <video src="https://github.com/user-attachments/assets/3ec0bf80-80c1-4181-a623-dc2b072c2ca2" width="200" controls></video> </td> <td align="center"> <b>Demo 15</b><br> (Optional placeholder if you add a new one later!)<br> <i>Coming soon...</i> </td> </tr> </table>Supported Robots and Data Formats
| Assigned ID | Robot/Data Format | Robot DoF | SMPLX (AMASS, OMOMO) | BVH LAFAN1| FBX (OptiTrack) | BVH Nokov | PICO (XRoboToolkit) | More formats coming soon |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | Unitree G1 unitree_g1 | Leg (2*6) + Waist (3) + Arm (2*7) = 29 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 1 | Unitree G1 with Hands unitree_g1_with_hands | Leg (2*6) + Waist (3) + Arm (2*7) + Hand (2*7) = 43 | ✅ | ✅ | ✅ | TBD | TBD |
| 2 | Unitree H1 unitree_h1 | Leg (2*5) + Waist (1) + Arm (2*4) = 19 | ✅ | TBD | TBD | TBD | TBD |
| 3 | Unitree H1 2 unitree_h1_2 | Leg (2*6) + Waist (1) + Arm (2*7) = 27 | ✅ | TBD | TBD | TBD | TBD |
| 4 | Booster T1 booster_t1 | TBD | ✅ | TBD | TBD | TBD |
| 5 | Booster T1 29dof booster_t1_29dof | TBD | ✅ | ✅ | TBD | TB
