Dex1B (wip)
Implementation of DexSimple, the generative model and data generation pipeline from Dex1B: Learning with 1B Demonstrations for Dexterous Manipulation
Install
pip install Dex1B
Usage
import torch
from Dex1B import DexSimple
model = DexSimple(
dim_pose = 25,
num_frames = 1,
condition_on_local_point_feature = False
)
hand_pose = torch.randn(2, 1, 25)
points = torch.randn(2, 1024, 3)
# forward loss
loss = model(hand_pose, points)
loss.backward()
# sample hand poses
sampled_pose = model.sample(points) # (2, 1, 25)
Condition on associated local object point feature for debiased data generation:
import torch
from Dex1B import DexSimple, associate_pose_with_object_point, debias_sample
model = DexSimple(
dim_pose = 25,
condition_on_local_point_feature = True
)
points = torch.randn(2, 1024, 3)
hand_pose = torch.randn(2, 1, 25)
# associate hand pose with object point along heading direction
assoc_point_indices = associate_pose_with_object_point(
palm_center = torch.randn(2, 3),
thumb_tip = torch.randn(2, 3),
middle_finger_tip = torch.randn(2, 3),
points = points
)
loss = model(hand_pose, points, assoc_point_indices = assoc_point_indices)
loss.backward()
# debiased sampling - sample associated points inversely proportional to frequency counts
counts = torch.randint(0, 50, (1024,)) # action count per point
sampled_point_indices = debias_sample(counts, num_samples = 32)
Gradient post-optimization on sampled poses:
import torch
from Dex1B import post_optimize, HandGeometry
# differentiable forward kinematics module returning hand geometry spheres
class HandFK(torch.nn.Module):
def __init__(self, dim_pose = 25):
super().__init__()
self.fc = torch.nn.Linear(dim_pose, 16 * 3)
def forward(self, pose):
centers = self.fc(pose).reshape(pose.shape[0], 16, 3)
radii = torch.full((16,), 0.02, device = pose.device)
return HandGeometry(centers, radii)
hand_pose = torch.randn(2, 25)
surface_points = torch.randn(2, 1024, 3)
refined_pose = post_optimize(
hand_pose,
hand_fk = HandFK(dim_pose = 25),
surface_points = surface_points,
steps = 100
)
Citations
@inproceedings{ye2025dex1b,
title = {Dex1B: Learning with 1B Demonstrations for Dexterous Manipulation},
author = {Ye, Jianglong and Wang, Keyi and Yuan, Chengjing and Yang, Ruihan and Li, Yiquan and Zhu, Jiyue and Qin, Yuzhe and Zou, Xueyan and Wang, Xiaolong},
booktitle = {Robotics: Science and Systems (RSS)},
year = {2025}
}
@misc{wu2024pointtransformerv3simpler,
title = {Point Transformer V3: Simpler, Faster, Stronger},
author = {Xiaoyang Wu and Li Jiang and Peng-Shuai Wang and Zhijian Liu and Xihui Liu and Yu Qiao and Wanli Ouyang and Tong He and Hengshuang Zhao},
year = {2024},
eprint = {2312.10035},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2312.10035},
}
Metadata
Release files for Dex1B 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dex1b-0.0.5.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dex1b-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / dex1b-0.0.5.tar.gz
| Download URL | dex1b-0.0.5.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c843e8861c01dc8cc2a75db1c2e434bd802d3260f358a20f784e62399457c7f
|
|
BLAKE2b-256 checksum How to use checksums |
d8b42a837f8aaacac50bc2a3e0cf89ae533da9046b8bce2f987532157e1d54a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.17
|
Release files / dex1b-0.0.5-py3-none-any.whl
| Download URL | dex1b-0.0.5-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b2b81f5829d873921929d0df421d166d3c99a29fba04dde9541563978669dcc
|
|
BLAKE2b-256 checksum How to use checksums |
f80845365bea28e16523d4e5474ef94c7bb4033c267fa63e70871c2339acdbb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.17
|