Python · MuJoCo · PyTorch · PPO · Inverse Kinematics
GenMotion2Physics
GenMotion2Physics retargets kinematic motion from generative models to a simulated humanoid, then tests whether a controller can track it under gravity, contact, and actuator constraints.
Research Context
Generative motion models usually produce kinematic trajectories, but a motion that looks plausible offline may fail when a humanoid must track it under gravity, contact, actuator limits, and controller dynamics.
- The project examines whether motion remains physically executable after articulated retargeting.
- It separates representation errors, target validity, and controller failure instead of treating every failed rollout as a failure of the original motion.
My Contribution
I built and audited a pipeline from generative or reference joint trajectories to articulated humanoid targets and free-root physical tracking in MuJoCo.
- Implemented coordinate and root-orientation correction, quaternion composition, damped inverse kinematics, and retargeting-fidelity checks for HumanML3D [T, 22, 3] trajectories mapped to SMPLSim qpos [T, 160].
- Built PD and PPO tracking, deterministic evaluation, and controlled acquisition, retention, composition, and teacher-student experiments.
Current Results
The evaluator now provides a validated motion-to-simulation bridge and a reproducible controller benchmark without treating the unfinished controller study as a completed end-to-end result.
- Validated articulated retargeting at 1.7 cm mean joint-frame error while preserving root path, heading, frame count, and timing.
- The strongest current shared-controller baseline reproducibly tracks 28 of 44 train-and-development motions under the frozen five-second free-root evaluation contract.
- The unresolved limitation is retention: acquiring failed motions can replace previously tracked motions instead of expanding exact capability.
- The current boundary is a predefined acquisition-retention study; arbitrary generated-motion execution and broad generalization are not yet supported.



