Installation
GraspKit needs Python 3.10–3.14; the maniskill extra needs 3.10–3.12 and spconv 3.10–3.13. Grasp optimization, rendering, and training need a CUDA GPU.
uv add graspkit
pip install graspkit
From source
uv add git+https://github.com/openrobokit/graspkit.git
pip install git+https://github.com/openrobokit/graspkit.git
To work on GraspKit itself, follow the Development Guide.
PyTorch builds
uv sync installs the dev and pt-cu126 groups by default. The PyTorch groups conflict with each other, so select another one explicitly:
uv sync --no-default-groups --group pt-cu128
| Group | What it adds |
|---|---|
pt-cu126 | PyTorch + torchvision for CUDA 12.6 (default). |
pt-cu118, pt-cu128 | The same for CUDA 11.8 / 12.8. |
pt-cpu | CPU-only PyTorch. |
dev | ipython, pytest, robot_descriptions (default). |
Extras
| Extra | What it adds |
|---|---|
maniskill | ManiSkill, for simulation, rendering and grasp evaluation (Python 3.10–3.12). |
spconv | spconv, for the default spconv vision encoder (Python 3.10–3.13). |
torchvision | torchvision, for the rgb_resnet vision encoders. |
sam2 | SAM 2, for the segmentation step of deployment. |
xarm | retargetingkit[realsense,xarm,ability] + open3d, for the xArm rigs (Python 3.10). |
vega | retargetingkit[xarm,ability,dexmate] + pyzmq + open3d, for the Vega humanoid. |
data-process | coacd, fast-simplification, for asset processing. |
The sam2 extra uses a wheel from a separate index:
uv add "graspkit[sam2]" --index https://jianglongye.github.io/torch_packages_builder
pip install "graspkit[sam2]" --extra-index-url https://jianglongye.github.io/torch_packages_builder
uv run --extra sam2 --extra vega scripts/deploy/deploy.py --help
Assets and credentials
import graspkit downloads nothing. Assets are fetched when the module that needs them is imported: graspkit's scenes, objects and calibration files come from the HuggingFace dataset openrobokit/graspkit into ~/.graspkit/assets/<revision>, and robot URDFs, meshes and collision spheres come from openrobokit/robokit into ~/.robokit/assets/<rev>.
Data and logs live in ~/.graspkit/data and ~/.graspkit/logs, created on import. graspkit.link() symlinks both into the repo for browsing.
- A
.envfile withGRASPKIT_S3_ROOT,FSSPEC_S3_ENDPOINT_URL,FSSPEC_S3_KEYandFSSPEC_S3_SECRETis needed only for the_s3experiments; it is loaded on import. GRASPKIT_EXCLUDED_GPUSlists GPU ids thatscripts/launch.pymust never use, such as4,5.graspkit.assets.REVISIONpins the asset revision; delete~/.graspkit/assets/<revision>/.done/to re-download.
Verify
CUDA_VISIBLE_DEVICES=0 uv run pytest tests/ uv run src/graspkit/examples/grasp_optim/01_basic.py
The example opens a Viser page with optimized xHand grasps. Next: the Quickstart.