# Release audit — 2026-09-29 The previous ALMA scaffold described legacy MLP segmentation and had no packaged checkpoints/configs. The release now follows the final segmentation decoder runs. Source experiments and original weights were not modified. | Artifact | Source best epoch | Stored best validation mIoU | | --- | ---: | ---: | | QL1 encoder/full MAE (exp6) | 235 | not applicable | | QL2 encoder/full MAE (exp10 stage 2) | 80 | not applicable | | QL1 segmentation | 93 | 0.9016097784 | | QL2 proxy segmentation | 65 | 0.9329832792 | The manifest identifies exact sources, source/release SHA-256 hashes, sizes, and YAML pairings. Release weights omit optimizer state and private runtime paths. All six exports were compared tensor by tensor with source checkpoints: every key and tensor matched (encoder exports select only `h_encoder.*`). ## Corrections - Replaced stale MLP release wiring with final segmentation decoder architecture/configs; retained strict loading and added physical decoder metadata checks. - Included QL1/QL2 pretraining, full MAE weights, regime-specific downstream trainers, evaluation configs, and documented staged-training provenance. - Preserved five-class/ignore-label definitions and distinct pretraining vs downstream normalization. Documented the QL2 supervised proxy scope. - Changed tile prediction to FP32; preserved complete source LAS records, CRS and attributes; used uint32 output coverage and rejected nonfinite values. - Added correct repeated-index accumulation as an explicit fusion option; examples retain paper legacy behavior to avoid silently changing products. - Corrected optional CUDA KNN layout, retained PyTorch KNN default, and included missing Chamfer extension sources and package/dependency metadata. - Fixed resumed pretraining best-score preservation and bounded invalid-crop search; empty crops now fail/skip rather than train on synthetic zeros. - Added citation, attribution, model cards, publishing instructions and tests. ## Validation and limits - Six artifact hashes and CPU loads passed, including strict full-MAE/segmentation decoder loading and rejection of mismatched regime/physical radius. - Initial local suite: 12 tests, 11 passed, one CUDA forward test skipped. - User-reported GPU run on 2026-09-30: all 12 tests passed in 11.460 seconds, with no skips. Both QL1/QL2 encoder and segmentation decoder full-size forward checks passed, including hierarchy dimensions and finite five-class segmentation logits. - Pretraining checks cover normalization, invalid crops, loading release initialization weights, and recovering prior best metrics on resume. - Source QL2 segmentation decoder and release segmentation decoder produced bitwise-identical outputs on a small CPU comparison after loading identical head parameters. - All Python sources parsed and both pretraining runners imported. - A wheel built with `pip wheel --no-deps --no-build-isolation`. Checked environment: Python 3.13, PyTorch 2.8.0+cu126, NumPy 2.3.2, timm 1.0.19, laspy 2.6.1. CUDA was unavailable in the initial audit session; the subsequent GPU result above is from terminal output supplied by the user. The GPU node's hardware/full environment were not recorded in that output. Operators were not rebuilt during this audit. CUDA backward/MAE loss, DDP training, real-tile inference, fresh-environment installation, and reproduction of paper metrics remain unverified. The GPU forward gate has passed; it does not replace an actual training/evaluation run. The initial weight bundle was uploaded at Hugging Face commit `5307569f57e16b59eca53484c42304d8ddd8c38e`. A subsequent terminology cleanup uses a public experiment identifier for the QL2 segmentation artifact. This changes its metadata and release hash, but preserves every tensor and source checkpoint hash. The user uploaded the refreshed bundle at commit `aa51bb453ec2aac74e74e1d84e2d0903625575e7`; all six download URLs now point to that revision. Fresh public-download verification remains pending. Training data and original split manifests are not distributed.