File size: 5,412 Bytes
c1f89f2 a2d93ff c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 496922d 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 a2d93ff 60d1b42 c1f89f2 d9b3c96 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 496922d a2d93ff 60d1b42 496922d 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 c1f89f2 60d1b42 496922d c1f89f2 a2d93ff c1f89f2 60d1b42 c1f89f2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | ---
library_name: pytorch
license: cc-by-4.0
tags:
- robotics
- diffusion-policy
- 3d-point-cloud
- coverage-path-planning
- safetensors
---
# 3D-CovDiffusion checkpoints
Category-specific tensor-only policies for **3D-CovDiffusion: 3D-Aware
Diffusion Policy for Coverage Path Planning**.
- Project page: https://crystalccy1.github.io/3D-CovDiffusion/
- Code: https://github.com/crystalccy1/3D-CovDiffusion
- Dataset: https://huggingface.co/datasets/ChenyuanC/3D-CovDiffusion-Train-Ready
## Released variants
Each root category contains the EMA policy selected by its original seed-42
run. `raw/<category>/` contains the non-EMA `state_dicts.model` export used by
the archived selected-visualization script. Here **raw means policy weights
before EMA**, not raw dataset input or a Python/pickle checkpoint.
Every directory contains `model.safetensors`, `config.yaml`, and provenance
metadata.
| Directory | Dataset | Training run | Historical 6-D selection score ↓ |
|:--|:--|:--|--:|
| `windows/` | `windows-v2` | `TML4Q-S42` | 10.410878 |
| `cuboids/` | `cuboids-v2` | `X1PD1-S42` | 6.612324 |
| `shelves/` | `shelves-v2` | `52VCU-S42` | 10.069027 |
| `containers/` | `containers-v2` | `ODAV4-S42` | 347.932620 |
The score above is the run's prediction-conditioned weighted 6-D pose Chamfer
used for top-k selection. It includes XYZ and orientation normal and is **not**
the final XYZ-only PCD or the paper's three-seed test result.
| Selected case | Non-EMA tensor path | Test split item |
|:--|:--|:--|
| Windows | `raw/windows/model.safetensors` | index 5, `810_wr1fr_1` |
| Cuboids | `raw/cuboids/model.safetensors` | index 3, `669_cube_1001_1285_1263` |
| Shelves | `raw/shelves/model.safetensors` | index 4, `box_h620_w500_d220.0_sh1.0_sv2.0` |
| Containers | `raw/containers/model.safetensors` | index 1, `spoegcr3gv` |
Containers is a separate low-data experiment. `ODAV4-S42` is released because
it is referenced by the archived in-domain, OOD, and video evaluation scripts.
## Evaluate
From the code repository:
```bash
bash scripts/create_locked_environment.sh 3dcov-cu117
source "$(conda info --base)/etc/profile.d/conda.sh"
conda activate 3dcov-cu117
export PYTHONNOUSERSITE=1
python reproduce.py prepare windows
python reproduce.py evaluate windows
```
`prepare` obtains the model and the pinned, train-ready Hugging Face data below
one `--artifact-root`. The self-contained evaluation records include the exact
model input, ground-truth trajectory, stroke grouping, and mesh geometry needed
for rollout metrics; no raw-data archive or source-repository checkout is
required at runtime.
Use `evaluate all` for every released EMA policy. To replay the selected
non-EMA case and automatically verify its numeric result:
```bash
python reproduce.py infer windows
```
Rendering is optional:
```bash
python -m pip install --no-build-isolation --require-hashes \
-r requirements/requirements-visualization-linux-py310-cu117.lock.txt
python reproduce.py infer windows --render
```
The PLY hash is a locked-environment render regression, not a requirement for
numeric reproduction. The full checkpoint/config/test-index matrix and hashes
are in `docs/INFERENCE.md` and
`configs/inference/seed42_selected_episodes.json` in the code repository.
## Format and integrity
- `<category>/model.safetensors` contains the complete EMA policy state.
- `raw/<category>/model.safetensors` contains the complete non-EMA policy state
used for the selected-case replay.
- Both include action and point-cloud normalizer tensors.
- Optimizer state, Python/Dill training checkpoints, experiment logs, and
machine-local paths are excluded.
- `metrics.json` records source run, epoch/step, historical selection score,
source digest, release digest, and tensor-roundtrip validation.
- `manifest.json` and `SHA256SUMS` provide repository-wide integrity metadata.
Users never need to load the trusted historical pickle checkpoints; all public
weights are safetensors.
## Intended use and limitations
The policies generate ordered 6-DoF coverage-trajectory chunks from a
5,120-point observation and the previous 24-D action token (four ordered 6-DoF
poses). They are research artifacts, not a certified motion-planning or robot-
safety system. Validate collisions, kinematics, workcell constraints, and
emergency behavior before physical deployment.
Only one selected seed-42 checkpoint is public per category. The paper's
three-seed mean and standard deviation require the independent seed-123/456
checkpoints or their result JSON files.
## License
To the extent the 3D-CovDiffusion authors hold the necessary rights, the
released EMA and non-EMA model weights are licensed under
[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/legalcode). The grant
covers model-weight files only; source code, datasets, the paper, website media,
and third-party materials retain their separate terms. See
[`MODEL_LICENSE.md`](https://github.com/crystalccy1/3D-CovDiffusion/blob/main/MODEL_LICENSE.md)
and the repository's third-party notices.
## Citation
```bibtex
@misc{chen2026_3dcovdiffusion,
title = {{3D-CovDiffusion}: 3D-Aware Diffusion Policy for Coverage Path Planning},
author = {Chen, Chenyuan and Ding, Haoran and Ding, Ran and Liu, Tianyu
and He, Zewen and Duan, Anqing and Nakamura, Yoshihiko},
year = {2026},
note = {Accepted at IROS 2026}
}
```
|