SkillAgentSearch skills...

GraspGen

Official repo for GraspGen: A Diffusion-based Framework for 6-DOF Grasping

Install / Use

/learn @NVlabs/GraspGen
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<!-- <img src="fig/cover.png" width="1000" height="250" title="readme1"> --> <div align="center"> <img src="fig/cover.png" alt="GraspGen logo" width="800" style="margin-left:'auto' margin-right:'auto' display:'block'"/> <br> <br> <h1>GraspGen: A Diffusion-based Framework for 6-DOF Grasping </h1> </div> <p align="center"> <a href="https://graspgen.github.io"> <img alt="Project Page" src="https://img.shields.io/badge/Project-Page-F0529C"> </a> <a href="https://arxiv.org/abs/2507.13097"> <img alt="Arxiv paper link" src="https://img.shields.io/badge/arxiv-2507.13097-blue"> </a> <a href="https://huggingface.co/adithyamurali/GraspGenModels"> <img alt="Model Checkpoints link" src="https://img.shields.io/badge/%F0%9F%A4%97%20HF-Models-yellow"> </a> <a href="https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-GraspGen"> <img alt="Datasets link" src="https://img.shields.io/badge/%F0%9F%A4%97%20HF-Datasets-yellow"> </a> <a href="https://www.youtube.com/watch?v=gM5fgK2aZ1Y&feature=youtu.be"> <img alt="Video link" src="https://img.shields.io/badge/video-red"> </a> <a href="https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-GraspGen/blob/main/LICENSE_DATASET"> <img alt="GitHub License" src="https://img.shields.io/badge/DATASET%20License-CC%20By%204.0-red.svg"> </a> </p>

GraspGen is a modular framework for diffusion-based 6-DOF robotic grasp generation that scales across diverse settings: 1) embodiments - with 3 distinct gripper types (industrial pinch gripper, suction) 2) observability - robustness to partial vs. complete 3D point clouds and 3) complexity - grasping single-object vs. clutter. We also introduce a novel and performant on-generator training recipe for the grasp discriminator, which scores and ranks the generated grasps. GraspGen outperforms prior methods in real and sim (SOTA performance on the FetchBench grasping benchmark, 17% improvement) while being performant (21X less memory) and realtime (20 Hz before TensorRT). We release the data generation, data formats as well as the training and inference infrastructure in this repo.

<img src="fig/radar.png" width="200" height="250" title="readme1"> <img src="fig/3.gif" width="350" height="250" title="readme2"> <img src="fig/2.gif" width="350" height="250" title="readme3"> <img src="fig/1_fast.gif" width="300" height="250" title="readme4">

💡 Contents

  1. Release News
  2. Future Features
  3. Installation
  4. Download Model Checkpoints
  5. Inference Demos
  6. Dataset
  7. Training with Existing Datasets
  8. Bring Your Own Datasets (BYOD) - Training + Data Generation for new grippers and objects
  9. GraspGen Format and Conventions
  10. LLM Tool-calling with GraspGen
  11. Omniverse and USD Support
  12. FAQ
  13. License
  14. Citation
  15. Contact

Release News

  • [03/03/2026] Added MCP for calling GraspGen as a tool by an LLM. See mcp/.

  • [03/03/2026] ZMQ-based server added to run GraspGen without any installation in your application. See client-server/

  • [02/18/2026] Paper accepted to ICRA'26, see you in Vienna 🚀🇦🇹

  • [10/28/2025] Add feature of filtering out colliding grasps based on scene point cloud.

  • [09/30/2025] Isaac-Lab based grasp data generation released as GraspDataGen package (Note: Data gen for suction grippers is in this repo)

  • [07/16/2025] Initial code release! Version 1.0.0

  • [03/18/2025] Dataset release on Hugging Face!

  • [03/18/2025] Blog post on Model deployment at Intrinsic.ai

Future Features on the roadmap

  • ~~Data generation repo for antipodal grippers based on Isaac Lab (Note: Data gen for suction grippers already released)~~
  • ~~Collision-filtering example~~
  • ~~Finetuning with real data**[Not planned anymore, lack of time]**~~
  • PTV3 backbone does not (yet) run on Cuda 12.8/Blackwell GPUs due to a dependency issue. If using Cuda 12.8, please use PointNet++ backbone for now until its resolved.

Installation

Choose your preferred installation method. For training, we recommend docker. For inference, uv is the fastest and easiest option. If you would like to run GraspGen as a standalone server (e.g. for tool-calling from an LLM agent or a remote robot client), see client-server/README.md. We also added a MCP to call GraspGen with an LLM.

✅ All methods fully tested and working!

| Method | Use Case | Complexity | Speed | |--------|----------|------------|-------| | Docker | Training + Inference | ⭐⭐⭐ Recommended for training | Slow | | Pip and uv | Inference | ⭐⭐ Recommended for inference | Fast | | ZMQ Server | Remote inference (no install needed on client) | ⭐ See client-server/ | Fast | | MCP | LLM tool-calling | ⭐ See mcp/ | Fast |

Installation with Docker

git clone https://github.com/NVlabs/GraspGen.git && cd GraspGen
bash docker/build.sh # This will take a while

Installation with pip inside Conda/Python virtualenv

[Optional] If you do not already have a conda env, first create one:

conda create -n GraspGen python=3.10 -y && conda activate GraspGen

[Optional] If you do not already have pytorch installed:

pip install torch==2.1.0 torchvision==0.16.0 torch-cluster torch-scatter -f https://data.pyg.org/whl/torch-2.1.0+cu121.html

Install with pip:

# Clone repo and install
git clone https://github.com/NVlabs/GraspGen.git && cd GraspGen && pip install -e .

# Install PointNet dependency (automated script handles CUDA environment)
./install_pointnet.sh

NOTE: The install_pointnet.sh script automatically handles CUDA environment variables. Ensure you have CUDA runtime headers and a C++ compiler installed. You can also manually run it as follows:

export CC=/usr/bin/g++ && export CXX=/usr/bin/g++ && export CUDAHOSTCXX=/usr/bin/g++ && export TORCH_CUDA_ARCH_LIST="8.6" && cd pointnet2_ops && pip install --no-build-isolation .

Installation with uv 🚀

uv installation is recommended if you would just like to run inference.

[Optional] Install uv if not already installed:

curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc  # or restart terminal

Cloning repo and installing:

# Clone repo and setup everything
git clone https://github.com/NVlabs/GraspGen.git && cd GraspGen

# Create Python environment and install all dependencies
uv python install 3.10 && uv venv --python 3.10 .venv && source .venv/bin/activate
uv pip install -e .

# Install PointNet dependency (automated script handles CUDA environment)
./install_uv_pointnet.sh

To check if installation has succeeded, run the following test:

python tests/test_inference_installation.py

ZMQ Server

To run GraspGen as a standalone inference server that any client can query without installing the full stack, see client-server/README.md.

MCP (LLM Tool-Calling)

To enable LLMs to call GraspGen as a tool, see mcp/README.md.

Download Checkpoints

The checkpoints can be downloaded from HuggingFace:

git clone https://huggingface.co/adithyamurali/GraspGenModels

Inference Demos

We have added scripts for visualizing grasp predictions on real world point clouds using the models. The sample dataset is in the models repository in the sample_data folder. Please see the script args for use. For plotting just the topk grasps (used on the real robot, k=100 by default) pass in the --return_topk flag. To visualize for different grippers, modify the --gripper_config argument.

Prerequisites

  1. Dataset: Please download checkpoints first - this will be the <path_to_models_repo> below.
  2. Docker: The first argument is the path to where you have locally cloned the GraspGen repository (always required). Use --models flag for the models directory. These will be mounted at /code and /models paths inside the container respectively.
# For inference only
bash docker/run.sh <path_to_graspgen_code> --models <path_to_models_repo>

Predicting grasps for segmented object point clouds

cd /code/ && python scripts/demo_object_pc.py --sample_data_dir /models/sample_data/real_object_pc --gripper_config /models/checkpoints/graspgen_robotiq_2f_140.yml

<img src="fig/pc/1.png" width="240" height="200" title="objpc1"> <img src="fig/pc/2.png" width="240" height="200" title="objpc2"> <img src="fig/pc/3.png" width="240" height="200" title="objpc3"> <img src="fig/pc/4.png" width="200" height="200" title="objpc4"> <img src="fig/pc/5.png" width="240" height="200" title="objpc5"> <img src="fig/pc/6.png" width="200" height="200" title="objpc6">

Predicting grasps for object meshes

Supports .obj, .stl, .ply, and USD formats (.usd, .usda, .usdc, .usdz). USD files are loaded via [scene_synthesizer](https://github.com/

View on GitHub
GitHub Stars399
CategoryDevelopment
Updated8h ago
Forks48

Languages

Python

Security Score

80/100

Audited on Apr 1, 2026

No findings