Jongbin Lim1,* · Taeyun Ha1,* · Seongho Cha1 · Kanghyeon Cho1 · Mingi Choi1 · Subin Jeon1 · Jisoo Kim1 · Byungjun Kim1 · Hanbyul Joo1,2,†
1 Seoul National University · 2 RLWRLD
* Equal contribution · † Corresponding author
Official dataset repository and lightweight visualization toolkit for HRDexDB.
TL;DR: HRDexDB is a paired cross-embodiment dataset of high-fidelity dexterous grasping sequences featuring both human and robotic hands.
HRDexDB provides paired dexterous grasping trajectories across human hands and robotic hand embodiments, captured on the same target objects under comparable grasping motions. The dataset includes synchronized visual, kinematic, and 3D annotation modalities, with contact-force signals available for tactile-enabled robot hands.
Key statistics:
- 2.1K grasping sequences
- 100+ diverse objects
- 5 hand embodiments
- 23 synchronized cameras
- High-precision 3D trajectories for both hand/robot and manipulated objects
git clone https://github.com/snuvclab/HRDexDB
cd HRDexDB
conda env create -f environment.yml
conda activate hrdexdb-visFor an existing Python environment:
pip install -r requirements.txtAll commands below assume they are run from the repository root.
The full dataset is about 1.6 TB and is available from two sources:
- Hugging Face stores individual files. Use it to download specific objects, scenes, or file types.
- Google Drive stores each hand's data as one
.tar.gzarchive per object. Use it to download whole subsets.
| Subset | Size | Files on Hugging Face | Archives on Google Drive |
|---|---|---|---|
human |
108 GB | 239,003 | 94 |
allegro_v5 |
254 GB | 16,761 | 91 |
inspire_f1 |
352 GB | 23,646 | 92 |
inspire_dftp |
548 GB | 27,192 | 84 |
robotiq_2f85 |
305 GB | 26,517 | 91 |
Downloading a folder through the Google Drive website requires preparing a ZIP first, which is slow for folders this large. Use rclone instead. Create a Google Drive remote named hrdexdb_drive with rclone config, using your own client ID, then choose the folders to download:
ROOT=1MgaQ8oxE97T30W0x4lte1EM0U7fl3bzl
FILTERS=(
--include "/allegro_v5/**"
--include "/inspire_f1/**"
--include "/inspire_dftp/**"
--include "/assets/**"
--include "/metadata/**"
--include "/object_6d_pose_v2/**"
)
rclone copy hrdexdb_drive: ./hrdexdb_drive --drive-root-folder-id "$ROOT" "${FILTERS[@]}" --transfers 4 -Prclone verifies each file after transfer and skips completed files when re-run, so you can repeat the same command after an interruption. A partially downloaded file restarts from the beginning. To check everything against the MD5 checksums stored by Google Drive:
rclone check hrdexdb_drive: ./hrdexdb_drive --drive-root-folder-id "$ROOT" "${FILTERS[@]}" --one-wayThen extract the archives into v0. The inspire_dftp archives contain no subset folder, so they are extracted one level deeper:
mkdir -p v0/inspire_dftp
for f in hrdexdb_drive/inspire_dftp/*.tar.gz; do tar -xzf "$f" -C v0/inspire_dftp; done
for s in human allegro_v5 inspire_f1 robotiq_2f85; do
[ -d "hrdexdb_drive/$s" ] || continue
for f in "hrdexdb_drive/$s"/*.tar.gz; do tar -xzf "$f" -C v0; done
done
cp -r hrdexdb_drive/assets hrdexdb_drive/metadata hrdexdb_drive/object_6d_pose_v2 v0/Use --include to limit a download. Re-running the command skips files that are already complete:
hf download HRDexDB/HRDexDB --repo-type dataset --local-dir v0 \
--include "inspire_f1/banana/*" \
--include "assets/*" \
--include "metadata/*"If you don't need the videos, add --exclude "*.mp4". Without videos, the five subsets total about 20 GB:
hf download HRDexDB/HRDexDB --repo-type dataset --local-dir v0 \
--include "inspire_f1/*" \
--exclude "*.mp4"Downloading many files at once can trigger Hugging Face rate limits (HTTP 429). If this happens, log in with hf auth login and lower --max-workers.
Place the released dataset folder v0 directly under the repository root:
HRDexDB/
├── README.md
├── visualize_trajectory.py
├── hrdexdb/
├── assets/
│ └── robots/
└── v0/
├── assets/
│ └── mesh/
│ └── <object_name>/
│ └── <object_name>.obj
├── human/
│ └── <object_name>/
│ └── <scene_id>/
└── inspire_f1/
└── <object_name>/
└── <scene_id>/
By default, the viewer resolves:
- dataset root:
./v0 - object mesh root:
./v0/assets/mesh
If v0 is stored elsewhere, pass --dataset-root /path/to/v0. The mesh root then defaults to /path/to/v0/assets/mesh.
Visualize an Inspire F1 robot scene:
python visualize_trajectory.py \
--hand inspire_f1 \
--object banana \
--scene 2Visualize a human hand scene:
python visualize_trajectory.py \
--hand human \
--object banana \
--scene 2Use a dataset stored outside the repository:
python visualize_trajectory.py \
--dataset-root /path/to/v0 \
--hand inspire_f1 \
--object french_mustard \
--scene 2Each scene is expected to follow this structure:
<dataset-root>/<hand>/<object>/<scene_id>/
├── cam_param/
│ ├── intrinsics.json
│ ├── extrinsics.json
│ └── ego_calib.json # optional, for human ego cameras
├── C2R.npy
├── object_6d/
│ └── pose_*.txt
└── vid/
└── <camera_id>.mp4
<dataset-root>/assets/mesh/<object>/<object>.obj
Robot scenes additionally include:
raw/
├── arm/*.npy
├── hand/*.npy
└── timestamps/
├── timestamp.npy
└── frame_id.npy
Human scenes include MANO mesh sequences under one of:
hand/mano/*.obj
For questions, please contact Jongbin Lim at whdqls0534@snu.ac.kr or Taeyun Ha at taeyun012@snu.ac.kr.
If you find HRDexDB useful, please cite:
@misc{lim2026hrdexdb,
title={HRDexDB: A Paired Human-Robot Dataset for Cross-Embodiment Dexterous Grasping},
author={Jongbin Lim and Taeyun Ha and Mingi Choi and Jisoo Kim and Byungjun Kim and Subin Jeon and Hanbyul Joo},
year={2026},
eprint={2604.14944},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2604.14944},
}