# v0.9.4 — Multi-Channel Paper Harvest & Accuracy Overhaul (Sep 21, 2026) ## Summary Expanded the knowledge base from **700 to 862 verified methods** (+162, +23.1%) via a multi-channel arXiv harvest covering the last 150 days, with strict accuracy verification. In parallel, removed all remaining AIGC watermarks from 29 text files, repaired 21 historically corrupted images, fixed 57 mismatched arXiv reference links, deleted 13 mis-attributed entries, lifted all front-end carriers to full parity, and repaired `README_CN.md` which had been destroyed by double-encoding corruption. ## Scale Change | Metric | Before | After | Δ | |---|---|---|---| | Methods | 700 | **862** | +162 | | Categories | 23 | 23 | — | | With arXiv ID | 586 (84%) | **748 (86%)** | +162 | | With code link | 131 | 131 | — | | `docs/methods.html` entries | 678 | **862** | +184 | | `docs/abstracts.js` entries | 678 | **862** | +184 | | `references/3dgs-methods-overview.md` | 643 (+13 bogus) | **862** | corrected | ## 1. AIGC Trace Removal Scanned every repository file for AIGC provenance markers and stripped them: - **29 text files**: removed YAML frontmatter `AIGC:` blocks (`ContentProducer`, `ContentPropagator`, `ProduceID`, `PropagateID`, `ReservedCode1/2`) and trailing `> AI生成` lines. Backed up to `.temp/aigc-backup/`; re-scan confirms **0 hits**. - **21 JPEGs** in `新建文件夹/`: discovered that an earlier PowerShell-based pass had truncated them to 476–700 bytes. Root cause was loss of image data in the old APPn-stripping logic. Restored from backup and re-stripped metadata only (~405 bytes/file), with SOI/EOI/size triple verification. 0 failures. - New reusable tooling: `scripts/strip-aigc.py` (Python; cross-platform, verified against real images). ## 2. Multi-Channel Paper Harvest New pipeline `scripts/harvest_new_papers.py` → `scripts/verify_candidates.py` → `scripts/enroll_new_papers.py`. **Channels** 1. **arXiv API** — six query forms: `cat:cs.CV`, `cat:cs.GR`, `cat:cs.RO`, full-corpus `all:"gaussian splatting"`, `abs:"3D Gaussian Splatting"`, `ti:"Gaussian Splatting"`, all restricted to a 150-day submittedDate window. 2. **Semantic Scholar Graph API** — cross-source backfill (opt-in via `--s2`). 3. Existing `scripts/daily_arxiv_scan.py` remains as the daily cron path. **Result**: 395 candidates → after verification **162 new methods** admitted (141 rule-accepted + 25 manually adjudicated − 4 duplicates). ### Verification protocol applied (R1–R6) | Rule | Meaning | Rejected | |---|---|---| | R1 | Exclude survey / review / benchmark / dataset | 18 | | R2 | Method name must be the paper's **self-stated** name, reproduced in the abstract | 67 | | R2d | Multi-word names need a proper-noun token — blocks `Capacity-Controlled`, `Scene-Level` | (in R2) | | R3 | Abstract must contain both `gaussian` and `splat` | 16 | | R4 | Deduplicate against existing names / arXiv IDs | 20 | | R5 | Reject derived suffixes `-v2` / `-2` / `-full` / `-ICRA` unless self-stated | — | | R6 | Title must reference GS, else the method likely just uses GS as a tool | 114 → reviewed | 114 borderline items were read individually against their abstracts; 25 were adjudicated as genuine GS methods (e.g. `RawSLAM`, `Elastic Triangle Splatting`, `TSOG`, `Ground4D`, `Instant NuRec`, `NoDrift3R`) and enrolled via an explicit, commented whitelist; the rest were dropped as out of scope (e.g. `HybridSim`, `RealVDeblur`, `OmniStyle-INR`, `MR-Compare`). ### Bug fixed during harvest `daily_arxiv_scan.py` and the first harvester both formatted the date range as `2026-04-24` (ISO with hyphens). arXiv requires `YYYYMMDDHHMM`, so every query returned HTTP 400 and silently yielded zero results. Fixed in both scripts. ## 3. Accuracy Repairs - **57 reference links fixed** — in `references/3dgs-methods-overview.md`, 643 entries had a displayed arXiv ID that differed from the hyperlinked one. Cross-adjudicated against `methods.json`: **all 57 had the correct display ID and the wrong link**, e.g. `GaussianBeV` 2407.14108 (link said 2403.11056), `SplatAD` 2411.16816, `GaussianSSC` 2603.21487. - **13 mis-attributed entries deleted.** Orphan entries present in the reference doc but absent from `methods.json` were each checked against the arXiv API; the name did not match the paper for any of them: | Entry | arXiv ID | Actual paper | |---|---|---| | GS-CAD | 2410.17249 | SpectroMotion | | GaussianWorld-v2 | 2503.15835 | BARD-GS | | Dynamic 3D Gaussians | 2309.13114 | magnetic instability / spin-glass (**unrelated physics**) | | SVG | 2312.05664 | CoGS | | GPSGaussian-Stereo | 2403.11831 | BAD-Gaussians | | GS-LRM-v2 | 2405.17351 | DOF-GS | | GaussianCross | 2405.17811 | Mani-GS | | GS-LRM-full | 2408.07967 | FlashGS | | MVSplat-v2 | 2412.16028 | CoCoGaussian | | GauSec | 2501.03714 | MoDec-GS | | GS-PT-v2 | 2503.16979 | Instant Gaussian Stream | | Gaussian-Enhanced Surfel Rendering with Depth Peeling | 2605.25345 | duplicate of Gaussian-Enhanced Surfel | | GGD-SLAM-ICRA | 2604.12837 | pseudo-suffix; GGD-SLAM already present with same ID | - **4 genuinely missing methods recovered** into the source of truth after verification: `GS-DIFF` (2605.07203), `VG2GT` (2606.01573), `DENSER` (2606.01419), `Large Material Gaussian Model` (2509.22112). - **`CLAUDE.md` frontmatter repaired** — it had lost its opening `---` and its closing delimiter was glued to the last key (`]---`). Version bumped 0.8.4 → 0.9.4, stale "678+" claims corrected to 862+. - **`README_CN.md` recovered from double-encoding corruption** — every Chinese string had been mangled (e.g. `方法` → `鏂规硶`) by a UTF-8→GB18030 round trip. Local restore attempts left 1382 unrecoverable characters, so the clean upstream copy was used as the base and re-counted. ## 4. Full Carrier Sync All downstream carriers are now generated from `data/methods.json` and verified at **862**: | Carrier | Before | After | |---|---|---| | `data/methods.json` (source of truth) | 700 | **862** | | `3dgs-methods-overview.csv` | 700 | **862** | | `docs/methods.html` (`METHODS` array) | 678 | **862** | | `docs/abstracts.js` | 678 | **862** | | `references/3dgs-methods-overview.md` | 643 | **862** | `scripts/validate_knowledge_base.py` reports **PASS**: 862 methods, 748 with arXiv (86%), 131 with code. ## New Tooling | Script | Purpose | |---|---| | `scripts/harvest_new_papers.py` | Multi-channel arXiv + Semantic Scholar harvest → candidate pool | | `scripts/verify_candidates.py` | R1–R6 accuracy verification → accept / review / reject | | `scripts/enroll_new_papers.py` | Whitelist adjudication + desc/category generation → methods.json | | `scripts/sync_csv.py` | Rebuild CSV from source of truth | | `scripts/sync_methods_html.py` | Rebuild `METHODS` array (preserves existing citations) | | `scripts/sync_abstracts.py` | Backfill abstracts (offline cache first, then arXiv API) | | `scripts/sync_references.py` | Prune bogus entries + align reference doc to source of truth | | `scripts/fix_ref_links.py` | Repair display-ID / link-ID mismatches | | `scripts/verify_reference_orphans.py` | arXiv-verify entries absent from the source of truth | | `scripts/strip-aigc.py` | Cross-platform AIGC marker removal (text + JPEG + PNG) | | `scripts/update_counts_and_version.py` | Context-safe count/version propagation across 21 files | ## Notes - Category distribution of the 162 additions: Cross-Domain 19, Surface & Rendering 16, Feed-Forward 14, Compression & Streaming 14, SLAM 12, Embodied AI 12, Dynamic & 4D 11, Acceleration 10, Generation 9, Human & Avatar 9, and 12 others. - `desc` fields for new entries are extracted from each paper's own self-definition sentence in the abstract (lead-in such as "We present X, ..." stripped), keeping the existing noun-phrase house style. - Historical changelog narrative counts (e.g. "678→692") are intentionally left untouched.