Zhi Jing1,2,
Siyuan Yang3,2,
Jicong Ao2,
Ting Xiao4,
Yugang Jiang1,
Chenjia Bai✉ 2
1Fudan University †
2Institute of Artificial Intelligence (TeleAI), China Telecom †
3University of Science and Technology of China
4East China University of Science and Technology
†Equally leading organizations
✉ Corresponding Author
🔥 Homepage 📄 Paper ⛁ Dataset 🤗 Model
[2025-09-18] 🔥🔥🔥 HumanoidGen gets accepted to NeurIPS 2025: Paper
- Supported platform: Linux (Ubuntu 20.04)
- Python 3.9
git clone [email protected]:TeleHuman/HumanoidGen.git
cd HumanoidGenconda create --name humanoidgen python=3.9 -y
conda activate humanoidgen
pip install -r requirements.txt
pip install -e .After installing the mplib library, change the parameter n_init_qposfrom the default value of 20 to 50 in mplib/planner.py. To locate the file path, you can use the following command within the humanoidgen conda environment:
python -c "import mplib; print(mplib.planner.__file__)"Install pytorch3d:
cd third_party/pytorch3d_simplified && pip install -e . && cd ../..Install dp3:
cd humanoidgen/policy/3D-Diffusion-Policy/3D-Diffusion-Policy && pip install -e . && cd ../../../..Install dp:
cd humanoidgen/policy/Diffusion-Policy && pip install -e . && cd ../../..The assets are provided in our datasets lab datasets. Download the files assets.zip and table_assets.zip, extract them to the humanoidgen and scene_builder/table directories respectively, and name both extracted folders as assets.
cd humanoidgenIn this project, we provide standard scenes and execution code for 20 tasks, which can be quickly run using the script files below:
bash scripts/run_scene.sh
bash scripts/run_solve.shAdditionally, you can specify main parameters by directly modifying the shell script files or by using the following commands:
python process/run_scene.py -env blocks_stack_easy -render False
python process/run_solve.py -env blocks_stack_easy -solve blocks_stack_easy -render FalseTo configure additional parameters, edit the config files config_run_scene.yml and config_run_solve.yml.
To collect data, open the configuration file config_run_solve.yml and set record_data to true. Then run the following command (example for ‘block_handover‘ task):
python process/run_solve.py -env block_handover -solve block_handover -render FalseThe datasets are generated in datasets folder and can be visualized using the following command:
python process/show_datasets.pyThe visualization parameters are set in the configuration file config_show_datasets.yml.
Firstly, pre-process the generated datasets for training policy.
python process/pkl2zarr.pyThe dataset path, policy model, and additional parameters are set in the configuration file config_pkl2zarr.yml.
For DP and DP3 policy training and evaluation, we also provide the corresponding the datasets and models.
Dp3 policy train (Configuration File Location):
bash scripts/train.sh dp3Dp policy train (Configuration File Location):
bash scripts/train.sh dpDp3 policy eval (Configuration File Location):
bash scripts/eval_dp3.shDp policy eval (Configuration File Location):
bash scripts/eval_dp.shThis project supports two generation methods: direct generation and using MCTS. The execution commands are as follows:
bash scripts/run_generate_solve.sh block_handover 5
bash scripts/run_generate_solve_with_mcts.sh blocks_stack_hard_mcts 5The first argument specifies the name of the generated task, and the second argument specifies the number of parallel threads to run. To interrupt the generation process, run:
bash scripts/kill_all_generate_processes.sh- Scene scaling with Robocasa
- Scene generation
- Generation of additional tasks (both MCTS and non-MCTS)
If you find our work helpful, please cite:
@article{jing2025humanoidgen,
title={HumanoidGen: Data Generation for Bimanual Dexterous Manipulation via LLM Reasoning},
author={Jing, Zhi and Yang, Siyuan and Ao, Jicong and Xiao, Ting and Jiang, Yugang and Bai, Chenjia},
journal={arXiv preprint arXiv:2507.00833},
year={2025}
}This codebase is under CC BY-NC 4.0 license. You may not use the material for commercial purposes, e.g., to make demos to advertise your commercial products.
- DeepSeek-Prover-V1.5: We referred to its MCTS module.
- ManiSkill: Used as the simulation platform.
- Unitree: We use the Unitree H1_2 as our robot.
- Gensim2: We referred to its constraints module.
- RoboTwin: We referred to its DP and DP3 modules.
Feel free to contact us!
- Zhi Jing: [email protected] or WeChat
JZhi2024 - Chenjia Bai (Corresponding Author): [email protected]