Genesis-Intelligence/functional-grasp-demos
Selected Grasp Demos Contents Each case folder contains: grasp_data.npz — Top-1 ranked grasp (pre_grasp_dofs, grasp_target_dofs, reward, z_lift) image_grasp.png — AI-generated grasp image (input to perception pipeline) debug_retarget.png — WujiHand retarget visualization (if available) Cases Case Object Scale Reward z_lift paper_coffee_cup_rot090__grasp_06 Paper Coffee Cup 1.0 0.742 0.196 paper_cup_8_oz_rot000__grasp_06 Paper Cup 8 Oz… See the full description on the dataset page: https://huggingface.co/datasets/Genesis-Intelligence/functional-grasp-demos.
097
Selected Grasp Demos
Contents
Each case folder contains:
grasp_data.npz— Top-1 ranked grasp (pregraspdofs, grasptargetdofs, reward, z_lift)image_grasp.png— AI-generated grasp image (input to perception pipeline)debug_retarget.png— WujiHand retarget visualization (if available)
Cases
Replay
Setup
pip install genesis-world numpy scipy imageio Pillow trimeshRun replay (generates video)
cd selected_demos
python replay_dynamics.py --case bowl_rot000__grasp_03 --save_video
python replay_dynamics.py --case paper_coffee_cup_rot090__grasp_06 --save_videoGrasp data format
import numpy as np
data = np.load("bowl_rot000__grasp_03/grasp_data.npz")
pre_grasp = data["pre_grasp_dofs"] # (26,) = [xyz(3), euler(3), fingers(20)]
grasp_target = data["grasp_target_dofs"] # (26,) = pre_grasp + closing delta
reward = float(data["reward"]) # composite reward score
z_lift = float(data["z_lift"]) # how much the object lifted (meters)Replay logic
- Place hand at
pre_grasp_dofs(setpos, setquat, setdofsposition) - PD-control fingers to
grasp_target_dofsfor 100 steps (closing action) - PD-control wrist z += 0.2m for 100 steps (lifting)
Physics settings
- dt=0.01, substeps=5, gravity=(0,0,-9.8)
- friction=5.0, noslip_iterations=10
- PD gains: kp=[800]6+[500]20, kv=[100]6+[50]20
- Object mass: 0.05 per link
