松田研究室
FindingID: implementation-metrics
Status: stable
← Findings Index
Metrics · 卒論 §4.1

実装規模メトリクス (卒論 §4.1 用)

splat workspace の Rust LOC (8,467) + Metal shader (2,230) で約 10.7k LOC、67 unit test、findings ノート 10 ファイル、Cloudflare Pages + R2 で公開済みという卒研リポジトリの規模スナップショット。

neutralrank: midaccepted第 1 軸第 2 軸第 3 軸metricslocteststhesis-section-4.1shaderstooling
Impact
splat workspace は Rust 8,467 + Metal 2,230 LOC (合計 ~10.7k)、67 unit test 完備、findings ノート 10 件と Cloudflare Pages + R2 配信が稼働。卒論 §4.1 (実装規模) と §4.1.3 (shader 内訳) への直接転記に使える。
01

本文

卒研リポジトリの全 workspace を 2026-05-23 時点で測定したスナップショット。splat workspace は Rust 8,467 LOC + Metal shader 2,230 LOC (合計 ~10.7k)、unit test 67 件、findings ノート 10 件、Cloudflare Pages + R2 配信が稼働。卒論 §4.1 (実装規模) と §4.1.3 (shader 内訳) への直接転記用。

測定日
2026-05-23
測定対象
卒研のリポジトリ全 workspace

LOC (Lines of Code)

splat workspace (本研究の本筋、Apple Silicon native 3DGS)

crateRust LOCMetal shader LOC用途
splat-core(含む)共通 types (Camera, Splat 構造体)
splat-metal(含む)Metal kernel dispatcher (forward / backward / Adam)
splat-io(含む)NeRF synthetic dataset loader, PLY I/O
splat-train-v12,947Trainer, training loop, refine, MCMC
splat-cli(含む)splat train/check/render/hello/convert CLI
splat-summary(含む)RunSummary HTML 生成 + minijinja templates
shaders/2,230MSL: project, tile_bin, rasterize, ssim, loss, adam
合計 (splat ws)8,4672,23010,697 LOC

shader 内訳 (splat/shaders/)

fileLOC
forward/project.metal409
forward/tile_bin.metal328
forward/rasterize.metal218
backward/project_backwards.metal464
backward/rasterize_backwards.metal517
loss/ssim.metal164
loss/loss.metal88
opt/adam.metal42
合計2,230

3dgs-rs (Phase 1C/3/4 のプロトタイプ workspace)

項目LOC
3dgs-rs/src/ Rust 総合計9,174
うち bin/train_splat.rs506
うち bin/render_splat.rs202

3dgs-rs は splat workspace 移行後 (Phase C migration-gate gate 通過、2026-04-30 commit 22e7053) も baseline 比較用に残置している。

テスト規模

  • splat workspace の #[test] / fn .*test 件数: 67 (splat-train-v1: 31、他 crate 36)
  • カバレッジ: kernel pair / config validate / refine / MCMC (relocation + L1) / ssim / loss host fallback / autograd round-trip
  • 既知の calibration 問題 ([[mcmc_noise_calibration_lesson]]) は test では検出不可、production hyperparameter は別途検証必要

ドキュメント / 配信規模

  • docs/findings/ 配下の finding ノート: 10 ファイル (D.5 で index 化、docs/findings/README.md)
  • docs/surveys/ 配下のサーベイ: 4 ファイル (3DGS.zip, Ali 2025, synthesis, phase-1d-q1-2026)
  • docs/thesis/outline.md: 卒論章立て 67 ページ想定
  • public/ (Cloudflare Pages): index / plan / roadmap / slides / talk-script + 個別 run summary 自動生成
  • public/runs/: build-all 自動生成、現状 4 run の HTML (migration-gate / lego-sh0-30k / lego-sh1-30k / smoke-1000iter) + index.html (B.6 フィルタ機能付き)
  • 公開 URL: otkrickey-splat.omanchos.com + R2 pub-0a3396a87e6c436480ed70b696031b65.r2.dev

CI / dev tooling

  • cargo doc --workspace --no-deps で API docs 自動生成 (splat/target/doc/、~5 sec for dev profile)
  • scripts/run-watcher.shsplat train を監視つき実行 (Monitor 向け EVENT イベント stream)
  • scripts/deploy.sh で build-all + Pages deploy + R2 sync を 1 発化
  • scripts/serve.shpublic/ ローカルプレビュー (python3 -m http.server)

卒論 §4.1 への転記指針

§4.1.2 (Crate 構成)

「splat-cli / splat-train-v1 / splat-metal / splat-io / splat-summary + Metal shader 群で 約 10.7k LOC67 unit test によりカバレッジを担保した」レベルの記述を組み込み可。

shader 内訳 (2,230 LOC) は Apple Silicon native の核なので Chapter 4.1.3 (主要 kernel 群) に詳述する。

関連

  • docs/thesis/outline.md
  • docs/findings/README.md
  • docs/findings/final-ablation-table.md
03

関連 finding

© 2026 大竹律輝 — 松田研究室