The modified 272-dimensional motion representation processing script.
Python
239
35 commits
updated Oct 24, 2025
๐ Left: Our Representation; Right: IK failure.
We refine the motion representation to enable directly conversion from joint rotations to SMPL body parameters, removing the need of Inverse Kinematics (IK) operation.
๐ข 2025-04-04 --- Release the processed 272-dim Motion Representation of HumanML3D dataset. Only for academic usage.
๐ข 2025-03-28 --- Release the evaluation code and the Quantitative comparison results of recovery from joint rotations and joint positions respectively.
๐ข 2025-03-13 --- Release the processing scripts to obtain the modified 272-dim motion representation and the Qualitative results of recovery from joint rotations and joint positions respectively.
conda env create -f environment.yaml
conda activate mgpt
datasets/amass_dataSMPL-X Gdatasets/amass_data_smplx./body_model/python amass_process.py --index_path ./test_t2m.csv --save_dir ./output/smpl_85
Follow UniMoCap Step2 to get:
(Note: Remember to set fps=30 in the h3d_to_h3d.py file.)
python face_z_transform.py --filedir ./output
python infer_get_joints.py --filedir ./output
python representation_272.py --filedir ./output
We provide 272-dimentional Mean.npy and Std.npy of HumanML3D dataset under folder "mean_std/".
python cal_mean_std.py --input_dir ./output/Representation_272 --output_dir ./mean_std
Recover from rotation:
python recover_visualize.py --mode rot --input_dir ./output/Representation_272 --output_dir ./visualize_result
Recover from position:
python recover_visualize.py --mode pos --input_dir ./output/Representation_272 --output_dir ./visualize_result
python representation_272_to_bvh.py --gender NEUTRAL --poses ./output/Representation_272 --output ./output/Representation_272 --fps 30 --is_folder
To make our 272-dim motion representation more persuasive, we provide Quantitative comparison results.
Our goal is to obtain SMPL rotations for further usage (e.g. convert to BVH), so we evaluate the following 2 ways (Directly vs. IK) to recover SMPL rotations.
We provide Quantitative comparison between the SMPL rotations recovered from:
(1) joint rotations ([8+6*22 : 8+12*22] in our 272 representaion. Directly recover, No need IK).
(2) joint positions ([8 : 8+3*22] in our 272 representaion, Need IK: position -> rotation).
We refer to MoMask for the IK implementation.
We use angle error (geodesic distance) between the GT SMPL rotations and the recovered rotations (minimum angle between rotations) as the metric.
GT: The data (85-dim) after running Step 1 in the Quick Start Guide is used as GT ([ :22*3] denotes SMPL rotations).
We evaluate:
(1) Average and Max joint errors across all files (marked as Emean and Emax).
(2) Average joint errors across all files (marked as E0, E1,..., E21).
Evaluation is down on the HumanML3D dataset (processed by our scripts).
Evaluation of recovery from rotation (Directly, No need IK):
python cal_angle_error.py --mode rot
Evaluation of recovery from position (Need IK: position -> rotation):
python cal_angle_error.py --mode pos
๐ฅ๐ฅ๐ฅ The errors of Directly recovery from joint rotations (No Need IK) is significantly lower than those of recovery from joint positions (Need IK: position -> rotation)!
Left: Recover from rotation ย ย ย ย Right: Recover from position
To facilitate researchers, we provide the processed 272-dim Motion Representation of:
HumanML3D dataset at this link.
BABEL dataset at this link.
โ๏ธโ๏ธโ๏ธ The processed data is solely for academic purposes. Make sure you read through the AMASS License and BABEL License.
huggingface-cli download --repo-type dataset --resume-download lxxiao/272-dim-HumanML3D --local-dir ./humanml3d_272
cd ./humanml3d_272
unzip texts.zip
unzip motion_data.zip
The dataset is organized as:
./humanml3d_272
โโโ mean_std
โโโ Mean.npy
โโโ Std.npy
โโโ split
โโโ train.txt
โโโ val.txt
โโโ test.txt
โโโ texts
โโโ 000000.txt
...
โโโ motion_data
โโโ 000000.npy
...
huggingface-cli download --repo-type dataset --resume-download lxxiao/272-dim-BABEL --local-dir ./babel_272
cd ./babel_272
unzip texts.zip
unzip motion_data.zip
The dataset is organized as:
./babel_272
โโโ t2m_babel_mean_std
โโโ Mean.npy
โโโ Std.npy
โโโ split
โโโ train.txt
โโโ val.txt
โโโ texts
โโโ 000000.txt
...
โโโ motion_data
โโโ 000000.npy
...
This repository builds upon the following awesome datasets and projects:
This codebase is released under the MIT License.
Please note that it also relies on external libraries and datasets, each of which may be subject to their own licenses and terms of use.
The following exciting works use the 272-dim motion representation in this repo.
If our project is helpful for your research, please consider citing :
ICCV 2025:
@InProceedings{Xiao_2025_ICCV,
author = {Xiao, Lixing and Lu, Shunlin and Pi, Huaijin and Fan, Ke and Pan, Liang and Zhou, Yueer and Feng, Ziyong and Zhou, Xiaowei and Peng, Sida and Wang, Jingbo},
title = {MotionStreamer: Streaming Motion Generation via Diffusion-based Autoregressive Model in Causal Latent Space},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {10086-10096}
}
ICCV 2025 HighLight:
@InProceedings{Fan_2025_ICCV,
author = {Fan, Ke and Lu, Shunlin and Dai, Minyue and Yu, Runyi and Xiao, Lixing and Dou, Zhiyang and Dong, Junting and Ma, Lizhuang and Wang, Jingbo},
title = {Go to Zero: Towards Zero-shot Motion Generation with Million-scale Data},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {13336-13348}
}
Python
100.0%
The modified 272-dimensional motion representation processing script.
Python
239
35 commits
updated Oct 24, 2025
๐ Left: Our Representation; Right: IK failure.
We refine the motion representation to enable directly conversion from joint rotations to SMPL body parameters, removing the need of Inverse Kinematics (IK) operation.
๐ข 2025-04-04 --- Release the processed 272-dim Motion Representation of HumanML3D dataset. Only for academic usage.
๐ข 2025-03-28 --- Release the evaluation code and the Quantitative comparison results of recovery from joint rotations and joint positions respectively.
๐ข 2025-03-13 --- Release the processing scripts to obtain the modified 272-dim motion representation and the Qualitative results of recovery from joint rotations and joint positions respectively.
conda env create -f environment.yaml
conda activate mgpt
datasets/amass_dataSMPL-X Gdatasets/amass_data_smplx./body_model/python amass_process.py --index_path ./test_t2m.csv --save_dir ./output/smpl_85
Follow UniMoCap Step2 to get:
(Note: Remember to set fps=30 in the h3d_to_h3d.py file.)
python face_z_transform.py --filedir ./output
python infer_get_joints.py --filedir ./output
python representation_272.py --filedir ./output
We provide 272-dimentional Mean.npy and Std.npy of HumanML3D dataset under folder "mean_std/".
python cal_mean_std.py --input_dir ./output/Representation_272 --output_dir ./mean_std
Recover from rotation:
python recover_visualize.py --mode rot --input_dir ./output/Representation_272 --output_dir ./visualize_result
Recover from position:
python recover_visualize.py --mode pos --input_dir ./output/Representation_272 --output_dir ./visualize_result
python representation_272_to_bvh.py --gender NEUTRAL --poses ./output/Representation_272 --output ./output/Representation_272 --fps 30 --is_folder
To make our 272-dim motion representation more persuasive, we provide Quantitative comparison results.
Our goal is to obtain SMPL rotations for further usage (e.g. convert to BVH), so we evaluate the following 2 ways (Directly vs. IK) to recover SMPL rotations.
We provide Quantitative comparison between the SMPL rotations recovered from:
(1) joint rotations ([8+6*22 : 8+12*22] in our 272 representaion. Directly recover, No need IK).
(2) joint positions ([8 : 8+3*22] in our 272 representaion, Need IK: position -> rotation).
We refer to MoMask for the IK implementation.
We use angle error (geodesic distance) between the GT SMPL rotations and the recovered rotations (minimum angle between rotations) as the metric.
GT: The data (85-dim) after running Step 1 in the Quick Start Guide is used as GT ([ :22*3] denotes SMPL rotations).
We evaluate:
(1) Average and Max joint errors across all files (marked as Emean and Emax).
(2) Average joint errors across all files (marked as E0, E1,..., E21).
Evaluation is down on the HumanML3D dataset (processed by our scripts).
Evaluation of recovery from rotation (Directly, No need IK):
python cal_angle_error.py --mode rot
Evaluation of recovery from position (Need IK: position -> rotation):
python cal_angle_error.py --mode pos
๐ฅ๐ฅ๐ฅ The errors of Directly recovery from joint rotations (No Need IK) is significantly lower than those of recovery from joint positions (Need IK: position -> rotation)!
Left: Recover from rotation ย ย ย ย Right: Recover from position
To facilitate researchers, we provide the processed 272-dim Motion Representation of:
HumanML3D dataset at this link.
BABEL dataset at this link.
โ๏ธโ๏ธโ๏ธ The processed data is solely for academic purposes. Make sure you read through the AMASS License and BABEL License.
huggingface-cli download --repo-type dataset --resume-download lxxiao/272-dim-HumanML3D --local-dir ./humanml3d_272
cd ./humanml3d_272
unzip texts.zip
unzip motion_data.zip
The dataset is organized as:
./humanml3d_272
โโโ mean_std
โโโ Mean.npy
โโโ Std.npy
โโโ split
โโโ train.txt
โโโ val.txt
โโโ test.txt
โโโ texts
โโโ 000000.txt
...
โโโ motion_data
โโโ 000000.npy
...
huggingface-cli download --repo-type dataset --resume-download lxxiao/272-dim-BABEL --local-dir ./babel_272
cd ./babel_272
unzip texts.zip
unzip motion_data.zip
The dataset is organized as:
./babel_272
โโโ t2m_babel_mean_std
โโโ Mean.npy
โโโ Std.npy
โโโ split
โโโ train.txt
โโโ val.txt
โโโ texts
โโโ 000000.txt
...
โโโ motion_data
โโโ 000000.npy
...
This repository builds upon the following awesome datasets and projects:
This codebase is released under the MIT License.
Please note that it also relies on external libraries and datasets, each of which may be subject to their own licenses and terms of use.
The following exciting works use the 272-dim motion representation in this repo.
If our project is helpful for your research, please consider citing :
ICCV 2025:
@InProceedings{Xiao_2025_ICCV,
author = {Xiao, Lixing and Lu, Shunlin and Pi, Huaijin and Fan, Ke and Pan, Liang and Zhou, Yueer and Feng, Ziyong and Zhou, Xiaowei and Peng, Sida and Wang, Jingbo},
title = {MotionStreamer: Streaming Motion Generation via Diffusion-based Autoregressive Model in Causal Latent Space},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {10086-10096}
}
ICCV 2025 HighLight:
@InProceedings{Fan_2025_ICCV,
author = {Fan, Ke and Lu, Shunlin and Dai, Minyue and Yu, Runyi and Xiao, Lixing and Dou, Zhiyang and Dong, Junting and Ma, Lizhuang and Wang, Jingbo},
title = {Go to Zero: Towards Zero-shot Motion Generation with Million-scale Data},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {13336-13348}
}
Python
100.0%