Instructions to use Cloth-splatters/dexgarmentlab-folding-lifting-dynamics-gns with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Cloth-splatters/dexgarmentlab-folding-lifting-dynamics-gns with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Cloth-splatters/dexgarmentlab-folding-lifting-dynamics-gns", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
dexgarmentlab-folding-lifting-dynamics-gns
GNSDynamicsModel β Graph Network Simulator for variable-vertex cloth meshes.
Given a 5-frame velocity history and a 3D gripper action, predicts per-node
acceleration, which is integrated with explicit Euler (v += a*dt,
pos += v*dt, dt=0.1) to advance the mesh one frame. Each cloth uses its own
rest state and topology (no global template).
- Task data: DexGarmentLab mixed-garment fold + lift-place demos (
dexgarmentlab_folding_lifting_meshes.h5, Cloth-splatters/dexgarmentlab-folding-lifting-meshes) - Formulation: direct acceleration regression (not diffusion), 15 message-passing steps, hidden size 128
- Velocity history (
input_sequence_length): 5 - Training noise (
velocity_noise_std): 0.1 - Best validation loss: 0.17032881488402685 (checkpoint in
model/ischeckpoint-best) - Training run:
dexgarment_dyn_gns_k5_vn0p1_2026-08-04_20-30-52_466943(full config inconfig.yml)
Why this configuration
This checkpoint is the winner of an 11-cell grid over velocity-history length K β {1, 3, 5} and training noise Ο β {0, 0.01, 0.03, 0.1}, scored by autoregressive rollout on 239 held-out trajectories. Rollout MSE, averaged over the trajectories long enough to reach each depth:
| depth | this model (k5, Ο=0.1) | best cell at that depth | worst cell (k1, Ο=0.01) |
|---|---|---|---|
| frame 6 (n=239) | 1.39e-3 | 1.23e-3 (k5, Ο=0.03) | 2.54e-3 |
| frame 10 (n=224) | 3.38e-3 | 3.24e-3 (k5, Ο=0.03) | 8.98e-3 |
| frame 15 (n=204) | 6.36e-3 | β | 2.07e-2 |
| frame 20 (n=185) | 1.03e-2 | β | 3.95e-2 |
| frame 30 (n=125) | 1.60e-2 | β | 5.53e-2 |
Two findings drove the choice:
- Longer history and training noise both help, and they compound. K=5 beats K=3 beats K=1 at every depth; within each K, more noise wins as the horizon grows. The optimal Ο increases with horizon β Ο=0.03 leads through frame 10, Ο=0.1 from frame 15 on. For short-horizon use (MPC), prefer the Ο=0.03 variant; for long rollouts, this one.
- One-shot error does not predict rollout quality. Single-step MSE spans only 1.4Γ across the whole grid (this model: 3.42e-5, mid-pack) while rollout MSE spans 3.5Γ. Selecting checkpoints on validation loss alone is unreliable here.
Caveats
- Training was stopped at 206k steps out of a planned 900k, so this is a deliberately truncated run rather than a converged one.
- The Ο=0 cells in the grid stopped at 200k steps versus 206β208k for the noise cells (~3% fewer). The margins above are far larger than that gap, but the asymmetry exists.
- Validation loss is MSE in normalized acceleration units, and the
normalizer's scale depends on
velocity_noise_stdβ so the 0.170 figure above is not comparable to a checkpoint trained with a different Ο.
Usage
from src.hub import resolve_checkpoint
from src.models.gns.dynamics import GNSDynamicsModel
path = resolve_checkpoint("dexgarmentlab-folding-lifting-dynamics-gns")
model = GNSDynamicsModel.from_pretrained(path, subfolder="model")
- Downloads last month
- -
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support