Reference/Data

Dex1B Scene Descriptions

Dex1B scene descriptions under scene_description/dex1b/<version>/, hosted on HuggingFace (openrobokit/graspkit) and generated by the scripts in scripts/stages/scene_desc/.

v0.5

  • tabletop (normal): table (0.5, 0.5, 0.2), object region (xy ±0.2), and ±5cm table-height jitter (enable_table_pose_randomization with table xy fixed); height-balanced across 4 bins.
  • wbc_tabletop (whole-body control): thick table (0.35, 0.35, 0.2) with a per-scene pose pulled close to the robot (table_x_range=(0.35, 0.5): near edge ~0.175 clears the G1 torso front ~0.143) and uniform table-top height [0.3, 1.1]. Same height rebalancing as normal (mini/small balanced across 4 bins; dev off, since the tiny YCB set can't fill every bin).
  • dexmate_tabletop (mini only, Vega + Sharpa): tabletop with table (0.6, 0.6, 0.2), object region xy ±0.25, and ±15cm table-height jitter.

All families read the same canonicals. Train is dexgraspnet (in-distribution); test mixes in dexdiffuser (egad, kit, contactdb, ycb) as a held-out object family, with per-source counts pinned via merge_scene_description.py's subsample.

TiertraintestSources
dev10030YCB only (train & test)
mini5k500train dexgraspnet 684×5; test 300 dexgraspnet test-split + 200 dexdiffuser
small50k2ktrain dexgraspnet 4302×5; test dexgraspnet test-split + dexdiffuser

Families have identical counts/sources (same canonicals, different table). Scales: dexgraspnet [0.06, 0.08, 0.1, 0.12, 0.15], dexdiffuser 1.0. Pipeline: meshes → canonical drop → tabletop randomization, merged with merge_scene_description.py.

  • Canonical drop: each (object, scale) is dropped by physics onto a (0.3, 0.3, 0.1) table in 3 orientations (none, x90, y90). Kept if xy within ±0.15m, height ≥ 0.02m, volume ≤ 0.003m³, xy area ≤ 0.025m².
  • Tabletop randomization: xy translation and z rotation per canonical scene, plus the family's table pose. Height bins: 0.02–0.05, 0.05–0.09, 0.09–0.15, 0.15–0.25m. At most 10 scenes per object (mini), 6 (small), 5 (dev).
  • Meshes: collision.glb keeps the CoACD convex parts; visual.glb is a separate simplified mesh. Importing graspkit.assets.objects.dex_diffuser_v2 fetches the dexdiffuser meshes.