File size: 7,412 Bytes
6f9dd1c
 
27ba843
 
6f9dd1c
27ba843
 
 
 
 
 
6f9dd1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5504235
 
 
 
6f9dd1c
 
 
 
 
6328bf3
 
 
 
 
 
 
 
6f9dd1c
 
 
 
 
 
 
 
 
945598a
 
 
6f9dd1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27ba843
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
---
library_name: pytorch
license: mit
pipeline_tag: other
tags:
- semantic-scene-completion
- lidar
- semantickitti
- diffusion
- autonomous-driving
- 3d
---

# GSSC-S2D2 — released checkpoints

Pretrained weights for **S²D² (Structured Source Discrete Diffusion)** and the
PS³ pyramid generator, as released with the paper *Generative Semantic Scene
Completion*. Code, configs, docs and every reproduction command live in the
GitHub repository:

**➡ https://github.com/BillyChern/GSSC-S2D2**

> **Non-commercial.** Although our own contribution is MIT-licensed, every
> checkpoint here was trained on **SemanticKITTI**, which is distributed under
> **CC BY-NC-SA 4.0**. Downstream use of these weights therefore inherits that
> dataset's non-commercial, share-alike and attribution terms. The MIT grant
> does not by itself authorise commercial use. See `LICENSE` in this repo.

## What is in here

18 checkpoint directories, 52 files, **4.91 GB (4.58 GiB)**. Each directory
ships `config.json` (training config, `best_miou`, `global_step`,
`source_sha256`, paper cross-reference), `model.safetensors` (training
weights) and, where the run used EMA, `model_ema.safetensors` (deployment
weights — the paper convention and the default for the inference scripts).
One directory, `bev/bev_s2d2_scpnet/`, additionally ships the pre-conversion
`model.pt`; prefer the `.safetensors` (see *Verify before you load*).

| Directory | What it is |
|---|---|
| `gssc_mf/gssc_31k_mf_step40000/` | **Headline** S²D² model on the frozen SCPNet base |
| `gssc_mf/gssc_57k_mf_step40000/` | Internal 57K multi-frame negative result (in no paper table) |
| `gssc_sf/gssc_{0,10,20,31,57}K_sf_step*/` | Single-frame data-scaling companion sweep |
| `gssc_js3c/gssc_js3c_s2d2_real/` | Cross-base row: JS3C-Net + S²D² |
| `gssc_lmsc/gssc_lmsc_s2d2_real/` | Cross-base row: LMSCNet + S²D² |
| `gssc_timesteps/gssc_{T10,T50,T100skewed}/` | Timestep-schedule ablation (supplement prose, no table) |
| `pyramid/pyramid_s{1,2,3}/` | PS³ pyramid generator stages (32×32×4 → 64×64×8 → 256×256×32) |
| `bev/bev_s2d2_scpnet/` | The BEV secondary-task model |
| `bev/bev_perception_net/` | A 938K-param refinement net. **NOT** the paper's BEV row, and it does not load in the BEV evaluator |
| `bev/bev_direct_l3_deeper/` | Internal BEV-architecture ablation, not tabulated |
| `scpnet_v2_port.pth` | Third-party SCPNet base weights (see licence below) |
| `MANIFEST.txt` | Generated cross-reference: directory → paper label, size, provenance |
| `checksums.txt` | Generated SHA256 of every other file in this repo |

**`MANIFEST.txt` is the authority** on which checkpoint backs which paper
claim, and under which evaluation protocol. It is generated from disk and
from each `config.json`, so it cannot drift from what is actually here. Read
it before quoting any number from these weights — several of them are
internal diagnostics that the paper deliberately does not print, and one
directory (`bev/bev_perception_net/`) has previously been mis-cited as the
paper's BEV model.

Headline result for orientation only: `gssc_mf/gssc_31k_mf_step40000`
reaches **38.54 % val mIoU** on SemanticKITTI sequence 08 (N=1, no TTA,
official `semantic-kitti-api`). The cross-base rows lift their frozen bases
by **+1.6 pp** (JS3C-Net) and **+1.8 pp** (LMSCNet) under the same evaluator.
Full per-row numbers, protocols and commands are in
[`docs/MODEL_ZOO.md`](https://github.com/BillyChern/GSSC-S2D2/blob/main/docs/MODEL_ZOO.md).

## Download

The supported route is the downloader in the code repository, which places
everything where the configs expect it (`data/checkpoints/`):

```bash
git clone https://github.com/BillyChern/GSSC-S2D2
cd GSSC-S2D2
python scripts/download_assets.py --checkpoints      # ~4.9 GB
```

Or directly:

```python
from huggingface_hub import snapshot_download
snapshot_download("Stone-Chern/GSSC-S2D2-checkpoints",
                  repo_type="model", local_dir="data/checkpoints")
```

## Verify before you load

```bash
cd data/checkpoints && sha256sum -c checksums.txt
```

Paths inside `checksums.txt` are relative to that directory, so run it from
**inside** `data/checkpoints/`, not from its parent. Every line must print
`OK` and the command must exit 0.

This matters more than usual here. Of the 52 files, 30 are `.safetensors` -- a
format that cannot carry an executable payload -- but **two are pickles**:
the third-party `scpnet_v2_port.pth`, and `bev/bev_s2d2_scpnet/model.pt` (the
pre-conversion copy of that checkpoint's weights; the `.safetensors` beside it
is the one the evaluator command uses). GSSC-S2D2 loads `.pt` / `.pth`
checkpoints with `torch.load(..., weights_only=False)`, because the saved
state carries optimizer and EMA buffers that `weights_only=True` cannot
represent, so loading a tampered one is equivalent to running
attacker-supplied code. For `scpnet_v2_port.pth` that loader is
`src/gssc/inference/run_scpnet.py`, which `scripts/eval_semanticposs.py`
drives with `--checkpoint data/checkpoints/scpnet_v2_port.pth`. A `FAILED` or
`FAILED open or read` line means **do not load that file**. See
[`SECURITY.md`](https://github.com/BillyChern/GSSC-S2D2/blob/main/SECURITY.md).

## Paper

Generative Semantic Scene Completion — https://arxiv.org/abs/2608.26737

## Related repositories

* **Code** — https://github.com/BillyChern/GSSC-S2D2
* **Datasets** (base-model predictions + rare-class object bank) —
  [`Stone-Chern/GSSC-S2D2-datasets`](https://huggingface.co/datasets/Stone-Chern/GSSC-S2D2-datasets)
* **Synthetic pool** — cite
  [doi:10.21227/nqgf-9k39](https://dx.doi.org/10.21227/nqgf-9k39) (IEEE
  DataPort; downloading from there needs an IEEE DataPort subscription),
  download from either that record or the free mirror
  [`Stone-Chern/PS3-SemanticKITTI`](https://huggingface.co/datasets/Stone-Chern/PS3-SemanticKITTI),
  which holds the identical archives. `docs/DATASET.md` also documents a local
  rebuild. The pyramid generator checkpoints in this repo are what that rebuild
  runs.

## Licence

* **Our contribution** (the trained weights, manifests and this card): **MIT**
  — see the `LICENSE` file in this repository.
* **Upstream data**: all weights were trained on **SemanticKITTI**
  ([CC BY-NC-SA 4.0](https://semantic-kitti.org/dataset.html)) — non-commercial,
  share-alike, attribution required. Credit SemanticKITTI and KITTI when you
  use these weights.
* **`scpnet_v2_port.pth`**: third-party **SCPNet** (Xia et al., CVPR 2023)
  pretrained weights, carried unmodified -- the "port" in the name is
  spconv-2.3 kernel-shape patching applied at load time, not a modified file. SCPNet publishes no upstream licence; this
  file is redistributed with the SCPNet authors' explicit permission and with
  attribution to them. No licence is asserted on their behalf.

The full notice list is in `LICENSE` here, and in
[`THIRD_PARTY_NOTICES.md`](https://github.com/BillyChern/GSSC-S2D2/blob/main/THIRD_PARTY_NOTICES.md)
in the code repository.

## Citation

```bibtex
@unpublished{chen2026gssc,
  title   = {Generative Semantic Scene Completion},
  author  = {Chen, Shi and Ge, Weifeng},
  note    = {Under review},
  year    = {2026}
}
```

Please also cite [SemanticKITTI](https://semantic-kitti.org/) as the source
dataset, and the relevant base model (SCPNet, JS3C-Net or LMSCNet) when using
a cross-base checkpoint.