Tracking Dexterous Hand–Object Manipulation from Human Demonstration
October 10, 2025 · View on GitHub
Official repository for the Dexterous HO Tracker 2025 challenge, including baseline implementations, data preparation scripts, and evaluation utilities.
🛠️ Installation
Steps:
- Clone the repository and initialize submodules:
git clone https://github.com/ManipTrans/ManipTrans.git git submodule init && git submodule update - Create a virtual environment named
maniptranswith Python 3.8. Note that IsaacGym only supports Python versions up to 3.8.conda create -y -n maniptrans python=3.8 conda activate maniptrans pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 - Download IsaacGym Preview 4 from the official website and follow the installation instructions in the documentation. Test the installation by running an example script, such as
joint_monkey.py, located in thepython/examplesdirectory. - Install additional dependencies.
pip install git+https://github.com/ZhengyiLuo/smplx.git pip install git+https://github.com/KailinLi/bps_torch.git pip install fvcore~=0.1.5 pip install --no-index --no-cache-dir pytorch3d==0.7.3 -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu117_pyt1131/download.html pip install -r requirements.txt pip install -e . # include the current directory in the Python path. Or use: `export PYTHONPATH=.:$PYTHONPATH` pip install numpy==1.23.5 # downgrade numpy to 1.23.5 to avoid compatibility issues
📋 Prerequisites
Download data for HO-Tracker dataset
Download the HO-Tracker dataset from Hugging Face and extract it to data/HO-Tracker.
MISC
Refer to the ManipTrans README for additional prerequisites and environment notes.
▶️ Training
Design your own training tasks based on the provided examples. The commands below will help you get started:
# To train the ManipTrans baseline:
python main/dataset/mano2dexhand.py --data_idx 0f900@0 --side left --dexhand inspire --headless --iter 7000
python main/rl/train.py task=ResDexHand dexhand=inspire side=LH headless=true num_envs=4096 learning_rate=2e-4 test=false randomStateInit=true rh_base_model_checkpoint=assets/imitator_rh_inspire.pth lh_base_model_checkpoint=assets/imitator_lh_inspire.pth dataIndices=[0f900@0] actionsMovingAverage=0.4 experiment=baseline
Train your model(s) on the data/HO-Tracker/data/test_sample set.
Note: Evaluation compliance. Save checkpoints under
runs/following the naming pattern:runs/{your exp tag}_{seq id (do not modify)}_{dexhand (i.e. inspire)}_{hand side (e.g. rh, lh, or bih)}__{timestamp}/nn/last_{your exp tag}_ep_{#epoch}_xxxx.pth.
▶️ Evaluation
After training, evaluate your model with:
# To eval the ManipTrans baseline:
python main/rl/eval_rollout.py --tag baseline --dexhand inspire --extra "rh_base_model_checkpoint=assets/imitator_rh_inspire.pth lh_base_model_checkpoint=assets/imitator_lh_inspire.pth"
# You can modify the arguments / rollout code according to your needs.
For scoring saved rollouts:
# To eval the scores of the saved rollouts:
python main/rl/eval_score.py
You will obtain summary metrics similar to:
================ Overall Results ================
Number of successful sequences: X
Average success rate: Single hand: X, Bi-hand: X
Average et (cm): X
Average er (degree): X
Average ej (cm): X
Average eft (cm): X