--- license: mit library_name: pytorch 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.