You need to agree to share your Hugging Face information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

GraspNet dex_models β€” rebuilt for the vendored toolkit

Do not redistribute. This repository is a private machine-to-machine transfer artifact. Its contents are derived from GraspNet-1Billion (object meshes + SDFs), which is licensed for research use. The repository is private and must stay private.

Why this exists

The dex_models/*.pkl shipped in the upstream GraspNet distribution were pickled by the pip graspnetAPI package against an older trimesh. Loading them in an environment with trimesh==4.4.9 β€” the version this project's requirements.txt pins β€” fails:

File graspformer/data/graspnet_api/graspnet_eval.py:88, in get_scene_models_dict
    dexmodel = pickle.load(f)
AttributeError: 'DataStore' object has no attribute 'fast_hash'

trimesh.caching.DataStore no longer has fast_hash (only __hash__), so the unpickle dies mid-reconstruction. Because get_scene_models_dict is called by the validation harness, this kills a training run at its first validation rather than at startup β€” with val_check_interval: 1600 batches and accumulate_grad_batches: 16, that is exactly optimizer step 99.

These caches are re-pickled in a current environment so they load cleanly.

How they were produced

For each object id, the toolkit's own no-cache path was used and the result re-pickled β€” i.e. exactly the object graspnet_eval.py would have built had the cache been absent:

from graspformer.data.graspnet_api.utils.eval_utils import load_dexnet_model
m = load_dexnet_model(f"{GRASPNET_ROOT}/models/{obj_id:03d}/textured")
pickle.dump(m, open(f"dex_models/{obj_id:03d}.pkl", "wb"))

No project code was modified. The consuming code path (if os.path.exists(dex_cache_path): pickle.load(...) else: load_dexnet_model(...)) is untouched; only the cache content changed.

Equivalence was verified on a round-trip: sdf.data and mesh.vertices are np.array_equal to the freshly-built object. File sizes differ from upstream by ~1 KB (pickle metadata), not content β€” e.g. 000.pkl is 190,866,344 bytes here vs 190,867,452 upstream.

Build environment

python 3.11.15
trimesh 4.4.9
numpy 1.26.4
autolab-core 1.1.1
open3d 0.19.0
built on sruk-wsc-2513 (RTX PRO 6000 Blackwell)

Rebuild cost is ~4 s per object (88 objects, 6 workers); a rebuilt cache reloads in ~0.07 s, versus ~4 s for the uncached load_dexnet_model path.

Contents

File Contents
dex_models.tar.zst the dex_models/ directory β€” 88 NNN.pkl (GraspableObject3D), members stored as dex_models/NNN.pkl
manifest.json per-file byte size + sha256, plus the archive's own sha256

Usage

hf download lipeize/graspnet-dex-models-rebuilt dex_models.tar.zst --local-dir /tmp/dex
tar -I zstd -xf /tmp/dex/dex_models.tar.zst -C "$GRASPNET_ROOT"   # -> $GRASPNET_ROOT/dex_models/

The validation harness picks them up automatically β€” graspnet_eval.py looks for $GRASPNET_ROOT/dex_models/%03d.pkl.

Note. If a box has no dex_models/ directory at all, the toolkit silently falls back to load_dexnet_model and works correctly, just ~4 s per object instead of ~0.07 s. The upstream caches are only a problem when present and unreadable.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support