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.

Download

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

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

Or directly:

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

Verify before you load

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.

Related repositories

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) — 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 in the code repository.

Citation

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

Please also cite SemanticKITTI as the source dataset, and the relevant base model (SCPNet, JS3C-Net or LMSCNet) when using a cross-base checkpoint.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support