Metadata-Version: 2.4
Name: dexsuite
Version: 0.1.1rc1
Summary: DexSuite: one framework for dexterous manipulation across arms, hands and tasks, on Genesis.
License-Expression: MIT
Project-URL: Homepage, https://dexsuiteorg.github.io/
Project-URL: Documentation, https://dexsuite.readthedocs.io/
Project-URL: Repository, https://github.com/anashoussaini/Dexsuite
Project-URL: Datasets, https://huggingface.co/dexsuite
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: THIRD_PARTY_LICENSES.md
Requires-Dist: torch
Requires-Dist: genesis-world==0.4.3
Requires-Dist: mink
Requires-Dist: quadprog
Requires-Dist: pynput
Requires-Dist: pyyaml
Requires-Dist: cattrs
Requires-Dist: gymnasium
Requires-Dist: numpy
Provides-Extra: spacemouse
Requires-Dist: evdev; platform_system == "Linux" and extra == "spacemouse"
Requires-Dist: hidapi; platform_system != "Linux" and extra == "spacemouse"
Provides-Extra: datasets
Requires-Dist: h5py; extra == "datasets"
Requires-Dist: lerobot==0.4.4; extra == "datasets"
Provides-Extra: vive
Requires-Dist: openvr; extra == "vive"
Requires-Dist: pyzmq; extra == "vive"
Provides-Extra: manus
Requires-Dist: websockets; extra == "manus"
Provides-Extra: devices
Requires-Dist: evdev; platform_system == "Linux" and extra == "devices"
Requires-Dist: hidapi; platform_system != "Linux" and extra == "devices"
Requires-Dist: openvr; extra == "devices"
Requires-Dist: pyzmq; extra == "devices"
Requires-Dist: websockets; extra == "devices"
Provides-Extra: all
Requires-Dist: dexsuite[datasets,devices]; extra == "all"
Dynamic: license-file

<p align="center">
  <img src="https://dexsuite.readthedocs.io/en/latest/_static/brand/wordmark.svg" alt="DexSuite" width="360">
</p>

<h3 align="center">Dexterous manipulation. Simulated, teleoperated, benchmarked.<br>All in one framework.</h3>

<p align="center">
  <a href="https://dexsuiteorg.github.io/"><b>Website</b></a> ·
  <a href="https://dexsuite.readthedocs.io/"><b>Documentation</b></a> ·
  <a href="https://huggingface.co/dexsuite"><b>Datasets</b></a>
</p>

<p align="center">
  <img src="https://dexsuite.readthedocs.io/en/latest/_static/home/hero.webp" alt="A Sharpa hand picks up a spray can and paints the stencil" width="480">
</p>

DexSuite brings the robot, the tasks, teleoperation, tactile sensing, the data and the evaluation into one stack, on the
[Genesis](https://github.com/Genesis-Embodied-AI/Genesis) simulator. A task is written once and runs with any arm and
any hand, from a parallel-jaw gripper to a 24-joint hand.

## Install

```bash
pip install dexsuite                # every arm, hand and task
pip install "dexsuite[all]"         # plus SpaceMouse, Vive and Manus teleoperation and the LeRobot dataset tools
```

Python 3.10 or newer and a CUDA GPU (the CPU works for a quick look). The first environment on a machine compiles the
Genesis kernels, which takes about a minute. On a machine without a display, `export PYOPENGL_PLATFORM=egl`.

| | |
|---|---|
| Tasks | Reach, Lift, Push, Pick & Place, Stack, Rack Mug, Move Pan, Drill to Point, Place Fruits, Make Coffee, Tool Hang, Spray Graffiti, Toast Bread and the bimanual set |
| Arms | Franka Panda, Franka FR3, Kinova Gen3, KUKA iiwa 14, Rethink Sawyer, UR5e, UR10e, UFactory Lite 6, Link6, Unitree Z1, six integrated robots and a floating wrist for hand-only tasks |
| End-effectors | Robotiq 2F-85, UMI gripper, Allegro Hand, BarrettHand, D'Claw, Inspire, Ability, Schunk SVH, LEAP and Shadow hands, and the Sharpa Wave hand on the floating wrist |
| `[all]` | SpaceMouse, Vive and Manus teleoperation, LeRobot recording (0.4.4), HDF5 export |

## Quickstart

```python
import dexsuite as ds

env = ds.make("lift", manipulator="franka", gripper="allegro")
obs, info = env.reset(seed=0)

for _ in range(300):
    action = env.action_space.sample()       # 6 values move the hand, 16 set the Allegro joints
    obs, reward, terminated, truncated, info = env.step(action)
```

Every environment is a Gymnasium environment with batched PyTorch tensors: `n_envs=64` builds 64 copies in one
simulator. The [documentation](https://dexsuite.readthedocs.io/) covers the tasks, the robots, the actions and
observations, teleoperation and the benchmark datasets on [Hugging Face](https://huggingface.co/dexsuite).

## Citation

```bibtex
@article{houssaini2026dexsuite,
  title   = {DexSuite: An All-in-One Framework for Dexterous Manipulation Across Arms, Hands, and Tasks},
  author  = {Houssaini, Anas and He, Hugo and Shi, Junming and Abyaneh, Amin and Chahine, Ricardo and Wen, Shuo and
             Danesh, Mohamad H. and Fr{\'e}chette, Charles-{\'E}tienne and Sosa Guzman, Mariana and Desrochers, Mathias and
             Houssaini, Rayan and Landa, Adam and Soulie, Theophile and Morissette, Charlotte and Tims, Annie and
             Russi, Martino and Lussier, Jonathan and Dudek, Gregory and Precup, Doina and Urain, Julen and Lin, Hsiu-Chin and
             Meger, David},
  journal = {arXiv preprint arXiv:2610.37799},
  year    = {2026}
}
```

## License

The DexSuite code is released under the MIT License. The robot, hand and object models keep their own
licences, listed in THIRD_PARTY_LICENSES.md. Some objects (the PartNet-Mobility models) are for non-commercial
research and education only.
