Browse by type

A comprehensive system for retargeting human motion capture data to humanoid robots, featuring a web-based interface for visualization and configuration management.
Humanoid Retarget is a full-stack application that converts human motion data (SMPL, BVH formats) into robot-executable motion trajectories using inverse kinematics optimization. The system consists of three main components:
humanoid_retargeting): Python library for motion alignment and retargetingweb_backend): FastAPI server providing REST APIs for motion processingweb_frontend): React-based interactive interface for visualization and control
hurodesconda create -n humanoid-retarget python=3.9
conda activate humanoid-retarget
cd /path/to/humanoid-retarget
pip install -e .
pip install -r web_backend/requirements.txt
Main Dependencies:
- mujoco: Physics simulation and rendering
- mink: Inverse kinematics solver
- hurodes: Humanoid robot description system
- fastapi: Web framework
- uvicorn: ASGI server
Install Node Dependencies
cd web_frontend
npm install
Main Dependencies:
- react: UI framework
- antd: Component library
- three.js: 3D graphics
- mujoco: WebAssembly-based physics engine
- axios: HTTP client
conda activate humanoid-retarget
# Start backend
cd /path/to/humanoid-retarget
python -m uvicorn web_backend.main:app --host 0.0.0.0 --port 8000 --reload
# Start frontend
cd web_frontend
npm run dev
Access the application at: http://localhost:5173
humanoid-retarget/
├── data/ # Project data directory
│ ├── models/ # Human body models
│ │ ├── smpl/ # SMPL model files
│ │ ├── smplh/ # SMPL+H model files
│ │ ├── smplx/ # SMPL-X model files
│ │ └── dmpls/ # DMP pose library
│ ├── motions/ # Motion capture data
│ │ ├── smpl/ # SMPL format (.npz)
│ │ └── bvh/ # BVH format (.bvh)
│ └── configs/ # Retargeting configurations
│ ├── {robot_name}/ # Per-robot configs
│ │ ├── smpl/ # SMPL retargeting configs
│ │ └── bvh/ # BVH retargeting configs
│ └── ...
├── retargeted/ # Output directory for retargeted motions
└── humanoid_retargeting/ # Core library source code
SMPL Format (.npz):
{
'trans': np.ndarray, # Root translation (N, 3)
'poses': np.ndarray, # Body poses (N, 72) - axis-angle
'betas': np.ndarray, # Shape parameters (10,)
'mocap_framerate': float, # Frame rate (e.g., 120.0)
'gender': str # 'male', 'female', or 'neutral'
}
BVH Format (.bvh):
- Standard BVH hierarchy with joint rotations
.npz){
'root_trans': np.ndarray, # Root translation (N, 3)
'root_quat': np.ndarray, # Root orientation (N, 4) - [w,x,y,z]
'root_lin_vel': np.ndarray, # Root linear velocity (body frame) (N, 3)
'root_ang_vel': np.ndarray, # Root angular velocity (body frame) (N, 3)
'joint_pos': np.ndarray, # Joint positions (N, ndof)
'joint_vel': np.ndarray, # Joint velocities (N, ndof)
'framerate': float # Target frame rate (e.g., 100.0)
'frame': int # Number of frames (e.g., 1000)
}
For detailed web frontend usage instructions, please refer to: Web Frontend User Guide or check the manual on the web interface.
See CONTRIBUTION.md for guidelines.
This project is licensed under the MIT License.
If you use this project in your research, please cite:
@software{humanoid_retarget,
title = {Humanoid Retarget: A System for Human-to-Robot Motion Transfer},
author = {Honglong Tian, Yumeng Zhang},
year = {2026},
url = {https://github.com/ZyuonRobotics/humanoid-retarget}
}
For issues and questions: - GitHub Issues: https://github.com/ZyuonRobotics/humanoid-retarget/issues
browse all types & interfaces →
$ claude mcp add humanoid-retarget \
-- python -m otcore.mcp_server <graph>