This is the offical code repo for NeurIPS 2025 Oral paper OpenHOI: Open-World Hand-Object Interaction Synthesis with Multimodal Large Language Model
<img src="https://github.com/Zhenhao-Zhang/OpenHOI/raw/main/pipeline.png" height=500>
Any Question, feel free to contact zhangzhh2024@shanghaitech.edu.cn
Create Python Enviroment
1.1. Create Conda Enviroment
conda create -n HOIAffordanceMLLM python=3.10
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl
pip install "git+https://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"
If fail: ``` cd ~
git clone https://github.com/erikwijmans/Pointnet2_PyTorch.git
cd Pointnet2_PyTorch
pip install -r requirements.txt
pip install -e .
- 1.5 Install torch-scatter
pip install torch-scatter==2.0.9 --no-build-isolation
```
- 1.6 Install llava
cd /yourpath/HOIAffordanceMLLM
pip install -e .
pip install -r requirements.txt
scripts/finetune_lora.sh, including both --vision_tower_path and --pretrain_mm_mlp_adapter, and LLM_VERSIONTip: Replace /root/tmp with your path
```
pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --resume-download qizekun/ReConV2 --local-dir /root/tmp --include "zeroshot/large/best_lvis.pth"
mkdir ShapeLLM_7B_gapartnet_v1.0
huggingface-cli download --resume-download qizekun/ShapeLLM_7B_gapartnet_v1.0 --local-dir /root/tmp/ShapeLLM_7B_gapartnet_v1.0
mkdir shapellm
huggingface-cli download --repo-type dataset --resume-download qizekun/ShapeLLM --local-dir /root/tmp/shapellm --include "gapartnet_sft_27k_openai.json"
huggingface-cli download --repo-type dataset --resume-download qizekun/ShapeLLM --local-dir /root/tmp/shapellm --include "gapartnet_pcs.zip"
python HOIAffordanceMLLM/scripts/extract_mm_projector.py You can also download mm_projection.bin there: https://pan.baidu.com/s/1TFjp8n9JhonxUdaUms2vcw?pwd=ia8m
``
- 3. Down [Uni3D](https://github.com/baaivision/Uni3D) model weight into your directory, and Modify the model path in the./llava/model/language_model/affordancellm.py`
mkdir uni3d
huggingface-cli download --repo-type dataset --resume-download BAAI/Uni3D --local-dir /root/tmp/uni3d --include "modelzoo/uni3d-b/model.pt"
conda create -n openhoi python=3.8 -y
conda activate openhoipip install pyyaml==6.0.1conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia -y
conda install -c fvcore -c iopath -c conda-forge fvcore iopath -y
conda install -c bottler nvidiacub -y
pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu116_pyt1130/download.htmlpip install -r requirements.txtpython -m spacy download en_core_web_smpip install git+https://github.com/openai/CLIP.gitpip install numpy==1.23.5Afforodance Dataset: Download
HOI Dataset: GRAB GRAB Text ARCTIC ARCTIC Text
python DataProcess/point_cloud_process.py
python Affordance-DrivenHOIDiffusion/preprocessing.py
python DataProcess/high_level_instructions.py
You can also download the High-level instructions here: Download
Weights for HOIAffordanceMLLM: Download
Weights for Affordance-Driven HOI Diffusion: Download
bash HOIAffordanceMLLM/scripts/finetune_lora.sh
bash Affordance-DrivenHOIDiffusion/scripts/train/train_contact_estimator.shbash Affordance-DrivenHOIDiffusion/scripts/train/train_texthom.shHOIAffordanceMLLM Inference:
cd HOIAffordanceMLLM
bash scripts/inference.sh
Affordance-Driven HOI Diffusion
python Affordance-DrivenHOIDiffusion/start/inference.py
Thanks for the excellent work ShapeLLM,Text2HOI,DSG,SeqAfford,GazeHOI
If you find our work useful in your research, please consider citing
@article{zhang2026openhoi,
title={Openhoi: Open-world hand-object interaction synthesis with multimodal large language model},
author={Zhang, Zhenhao and Shi, Ye and Yang, Lingxiao and Ni, Suting and Ye, Qi and Wang, Jingya},
journal={Advances in Neural Information Processing Systems},
volume={38},
pages={166582--166612},
year={2026}
}
$ claude mcp add OpenHOI \
-- python -m otcore.mcp_server <graph>