Official Repository of CEDex: Cross-Embodiment Dexterous Grasp Generation at Scale from Human-like Contact Representations (ICRA 2026)
Zhiyuan Wu1, Rolandos Alexandros Potamias2, Xuyang Zhang1, Zhongqun Zhang3, Jiankang Deng2, Shan Luo11 King's College London, 2 Imperial College London, 3 Nankai University
In this paper, we propose CEDex, a novel cross-embodiment dexterous grasp synthesis method that bridges human grasping kinematics and robot kinematics by aligning robot kinematic models with generated human-like contact representations. Using CEDex, we construct the largest cross-embodiment grasp dataset to date, comprising 500K objects across four gripper types with 20M total grasps.
-
[May. 2026] We have released more synthesis object set grasp data.
-
[Apr. 2026] We have added training code and configuration for CVAE model (based on ContactGen).
-
[Feb. 2026] We have released our grasp generation code.
-
[Oct. 2025] We have released a part of our synthesis object set grasp data, including objects from Objaverse. We will soon release more data. Please stay tuned for updates!
- [Oct. 2025] We have released the real-world object set grasp data, including objects from ContactDB and YCB.
Create a new conda environment. My CUDA version (nvcc --version) is 12.4
conda create -n cedex python=3.8
conda activate cedex
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124
git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d
# export MAX_JOBS=4 # set MAX_JOBS if your workstation doesn't have enough memory
python setup.py install
unset MAX_JOBS
cd ../Install required packages.
pip install -r requirements.txtInstall Isaac Gym Environment (for validation).
Download Isaac Gym from the official website, then:
tar -xvf IsaacGym_Preview_4_Package.tar.gz
cd isaacgym/python
pip install -e .Install pointnet_lib for ContactGen.
cd contactgen
cd pointnet_lib
python setup.py install
cd ../../For real-world object set grasp data, download the robot and object data from OneDrive link and extract the contents to the data/ directory. Our grasp data is in cedex/{robot_name}.pt.
For synthesis object set grasp data, download the grasp data from OneDrive link and object data from OneDrive link, and put the contents to the cedex_objaverse/ directory. {robot_name}_isaac.pt refer to grasp data after grasp execution in Isaac with no penetration.
In our data, each grasp data contains the following keys: ['q'] and ['object_name']. You can use the dataset by calling the robot hand through the utils_model/HandModel.py. This implementation is consistent with GenDexGrasp, but please note that there are differences in object URDF files. Make sure to use our provided objects.
To visualize the grasping data, you can use the following command:
python vis_cedex.py --input_file cedex/allegro.pt
python vis_cedex.py --input_file cedex_objaverse/shadowhand.pt For grasp validation, our implementation is based on DRO-Grasp. We have modified some parameters of the controller. You can evaluate the grasping performance using the following command:
python eval_grasp.py --input_file cedex/allegro.pt --object_name ycb+055_baseball # --use_gui --eval_diversityYou can use CEDex to generate your own grasp data.
Stage 0 (Optional): Train CVAE Model for Human-Like Contact Map Generation (based on ContactGen). We recommend to finetune on the pretrained checkpoint.
Download human grasp data from OneDrive link and put it to data/
cd contactgen
python train.py
cd ../Stage 1: Generate Human-Like Contact Maps
cd contactgen
python inf_contactdb.py
python inf_ycb.py
cd ../Stage 2: Generate Grasps
python generate_data.py --robot_name barrett --dataset contactdbNote: Some hyperparameters can be adjusted to get more stable grasp results or more diverse grasp results.
- Initial positions of robot hands in
utils_model/CMapAdam.py - Hyperparameters of physical constraints in
utils_model/CMapAdam.py - Sort the top-k saved grasps in
generate_grasp.pyby different properties in contact energy
Stage 3: Visualize Generated Grasps
python vis_generated_grasp.py --robot_name barrett --input_dir logs/dataset_generation_20260202_162359/barrett_contactdb/ # replace the input_dir to your log dir. Stage 4: Validate and Filter Generated Grasps
python eval_grasp_filtered.py --robot_name barrett --logs_path logs/dataset_generation_20260202_162359/barrett_contactdb/ # --use_gui # replace the logs_path to your log dirOur CEDex currently supports 1. ShadowHand, 2. Allegro, 3. Barret, 4. Robotiq-3F, 5. Leap Hand. To adapt to new hands, you need to :
- Build the human-robot remapping in
def remap_part_labelsinutils_model/HandModel.py. We have providedvisualize_hand_partscommand inutils_model/HandModel.pyfor reference. - Define
self.dis_key_pointandself.keypointsinutils_model/HandModel.py. We have providedvisualize_hand_surface_and_keypointscommand inutils_model.HandModel.pyfor reference. To define the keypoints, please refer to this issue.
If you find this work helpful, please consider citing us using the following BibTeX entry:
@article{wu2025cedex,
title={CEDex: Cross-Embodiment Dexterous Grasp Generation at Scale from Human-like Contact Representations},
author={Wu, Zhiyuan and Potamias, Rolandos Alexandros and Zhang, Xuyang and Zhang, Zhongqun and Deng, Jiankang and Luo, Shan},
journal={arXiv preprint arXiv:2509.24661},
year={2025}
} If you have any questions, feel free to contact me through email at zhiyuan.1.wu@kcl.ac.uk.