Open Source RoboticsRobots, software & learning

GMR

Software

Human-to-humanoid motion retargeting toolkit with robot-specific mappings, MuJoCo visualization and saved motion output. [1]

Installation & first result →Official websiteGetting started

For
Humanoid researchers preparing reference motions [1]
Source rights
Named licenses are documented by part. Review licenses
Unknowns
compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware

Requirements · Research details and dates

On this page

Overview

General Motion Retargeting (GMR) converts human motion into humanoid robot configurations. It is useful when preparing reference trajectories for a tracking system or inspecting a robot-specific motion mapping. The repository supplies inverse-kinematics mappings and MuJoCo visualization; downstream policy training and physical control remain separate steps. [1] [3]

Is this for you?

Known limitations
  • Robot and input-format support varies by mapping.
  • The inspected BVH script skips appending the final frame before saving.
  • Saved BVH root rotations use xyzw; other routes may differ.

Editorial assessment from cited documentation; no runtime testing.

[1] [3] · Editorial assessment

What you need

Operating system
  • Ubuntu 20.04 and 22.04 (upstream-tested)

[1]

Languages / runtimes
  • Python

[2]

Dependencies
  • Python >=3.10
  • mink, MuJoCo, qpsolvers[proxqp]
  • SMPL-X installed from an unpinned Git URL

[2]

Installation & first result

Open the upstream getting-started guide [1]

  • Obtain a permitted LAFAN1-format BVH motion.
  • Run scripts/bvh_to_robot.py with --robot unitree_g1, --format lafan1, --bvh_file and --save_path.
  • Inspect MuJoCo playback and validate saved frame count and quaternion order.

Editorial assessment from cited documentation; no runtime testing.

[1] [3] · Editorial assessment

Installation

Create a Python 3.10 environment and install the checked-out source with pip install -e .

[1]

Hardware, models & data

Inputs and outputs

BVH human motion produces robot root positions, xyzw root rotations and joint positions in a pickle file.

[3]

Project notes

Choose a robot and input format together

The support table is a matrix, not a promise that every listed robot accepts every input. For a first source-based trial, the documented LAFAN1 BVH route includes Unitree G1. Create the documented Python 3.10 environment, install the pinned checkout with pip install -e ., and obtain a BVH file whose use is permitted. Run scripts/bvh_to_robot.py with --robot unitree_g1 --format lafan1, a --bvh_file input and a --save_path output. The script displays the retargeted motion in MuJoCo. Ubuntu 20.04 and 22.04 are upstream-reported test environments. [1] [2] [3]

Mapping configuration assigns human and robot body names, position and rotation weights, and offsets. The maintainers acknowledge that a single mapping can produce poor results for some human motions. Inspect a short clip before converting a dataset. A visible pose match does not establish dynamic feasibility or a working robot controller. [1] [4]

Check the saved motion before training

The reviewed BVH script converts root rotations from wxyz to xyzw when writing its pickle output. It also exits its non-looping frame-processing loop before appending the last frame to the saved list. That source-level behavior means the saved trajectory omits the final processed frame; we have not executed it to measure downstream effects. The script also defaults --motion_fps to 30 and writes that value into the saved file; set it to the intended frame rate. Verify saved timing, frame count and rotation convention before feeding the file to another framework. [3]

Dependencies include mink, MuJoCo and qpsolvers, while SMPL-X is fetched from an unpinned Git URL. Preserve resolved dependency revisions along with GMR commit bb1bbe40774794fceb2a7c579a3464a28e68c844. The package labels itself 0.2.0, but no GitHub release was listed at review. [2] [6]

What we checked

Source researched only; no installation, training, benchmark or physical hardware test performed. No affiliate links or reused media.

Not yet established

  • Requirements: host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Apr 2, 2026 [6]
Latest release
Not established
Profile updated
Oct 17, 2026
Sources last checked
Oct 17, 2026
Next review
Nov 17, 2026
Reviewed revision
commit snapshot; no GitHub releases listed / bb1bbe40774794fceb2a7c579a3464a28e68c844 · software repository

Source files and licenses

MIT retargeting code; external motions, body models and robot assets have separate rights. Review scoped to BVH conversion.

LayerAvailability / license
softwareavailable · MIT
Repository materials only; external components retain their own terms. [7]
documentationavailable · MIT
Repository materials only; external components retain their own terms. [7]

The scoped BVH conversion is not a pretrained tracking policy; SMPL-X and video routes have separate model requirements.

The scoped workflow accepts a user-supplied permitted BVH file. External training datasets are not included or licensed by this profile.

Code rights do not settle motion-data rights

The repository's code and documentation use MIT terms. External motion datasets, SMPL-X body models and third-party robot assets need separate checks; the root license does not establish their permissions. The BVH workflow described here uses a supplied motion file and does not require pretrained tracking-policy weights. [1] [7] [3]

We preserved a scoped set of source files after the full archive exceeded our 150 MiB retrieval limit. This is source research, not a complete asset backup or an installation, retargeting or hardware test.

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history