UniGarment native coarse β deformation
Category-specific dense-correspondence checkpoints trained from scratch on the 2026-08-22 DexGarmentLab lift/deformation collection. This is the current best completed deformation recipe by dense correspondence metrics. It is not a cloth state estimator or dynamics model.
Checkpoints
Select the checkpoint matching the garment category:
tops/best.pt
dress/best.pt
trousers/best.pt
Each directory also contains its exact training configuration, validation/test metrics, and a held-out deformation sweep.
Macro averages over the three held-out test categories:
| Metric | Result |
|---|---|
| Dense mean error | 2.28 cm |
| Dense within 2 cm | 56.61% |
| Exact surface-ID top-1 | 12.32% |
| Semantic mean error | 5.01 cm |
| Semantic within 5 cm | 64.78% |
| Left/right swap rate | 1.95% |
These are seed-0 results. Category-level counts and phase/bin breakdowns are in
each test_metrics.json.
Download
From the pinned UniGarmentManip repository:
pip install huggingface_hub
python scripts/download_unigarment_deformation.py --category all
For one category:
python scripts/download_unigarment_deformation.py --category tops --output checkpoints/unigarment-deformation
The helper downloads from
Cloth-splatters/unigarment-native-coarse-deformation and verifies every file
against SHA256SUMS.
Loading
Use the repository loader so architecture and checkpoint conventions remain consistent:
from dexgarment_adaptation.model import build_descriptor_model, load_adapted_checkpoint
model = build_descriptor_model("unigarment", dgl_root, feature_dim=512)
load_adapted_checkpoint(model, "checkpoints/unigarment-deformation/tops/best.pt", "cuda:0")
model = model.to("cuda:0").eval()
dgl_root must contain the released DexGarmentLab GAM PointNet++ support code
expected by UniGarmentManip.
Training provenance
- UniGarmentManip commit:
0701bc475877da68bc07f727a1995fd78a3de511 - Code fingerprint:
665d3f5e2509bc26ea46fb467d53056a0fcea09998e9d0955e027c05e715843a - Recipe:
unigarment_native_coarse - Backbone: UniGarment PointNet++ descriptor, 512 features
- Initialization: random
- Loss: published UniGarment coarse correspondence loss
- Optimizer: Adam, LR
1e-3, weight decay1e-5 - Batch size: 16
- Steps: 40,000 per category
- Cross-phase exact-pair probability: 0.75
- Seed: 0
Training code:
scripts/train_dexgarment_flat.pyβ trainer (supports flat and deformation caches)dexgarment_adaptation/β model, data, losses, and evaluationexperiments/marlowe_matrix.jsonβ reviewed recipe registryscripts/marlowe/run_manifest_entry.pyβ reproducible manifest-to-command launcher