[{"data":1,"prerenderedAt":234},["ShallowReactive",2],{"finding:p1-d-rate-sweep":3,"finding-runs:p1-d-rate-sweep":136,"finding-related:p1-d-rate-sweep":173},{"meta":4,"impact":34,"sections":41},{"id":5,"title":6,"subtitle":7,"eyebrow":8,"date":9,"status":10,"category":11,"polarity":12,"axes":13,"tags":16,"task_code":23,"related_runs":24,"related_findings":30},"p1-d-rate-sweep","P1.D opacity decay rate sweep — rate=0.002 が PSNR 最高 sweet spot (brush default +0.40 dB)","Phase D opacity_decay_rate を 5 点 (0.001\u002F0.002\u002F0.004\u002F0.006\u002F0.008) で 5k smoke sweep。brush 互換の default 0.004 を起点に PSNR と splats の trade-off を実測。結果: rate=0.002 で **PSNR 32.090 dB (default +0.40 dB)** と最高値、splats は ~88k で微増 (+5.8%)。rate を上げる方向 (0.006\u002F0.008) では splats が 80k 帯に削減されるが PSNR 影響は 5k variance σ ±0.32 dB 内 (±0.2 dB)。実用判定: Phase D 30k は既に rate=0.004 で M5 Lego val +0.11 突破 (36.106 dB) 達成済、rate 変更による追加 +0.2-0.5 dB は 5k smoke noise と並ぶレベルで 30k での再評価コスト大、現状の brush default 0.004 維持を推奨。multi-scene Phase D re-chain も 0.004 で進める。","P1 Phase D · rate sweep · 5k smoke","2026-05-25","stable","ablation","positive",[14,15],1,3,[17,18,19,20,21,22,11],"p1-d","opacity-decay","rate-sweep","lego-5k","brush-compat","premultiplied","P1.D.2 (rate sweep)",[25,26,27,28,29],"lego-brushcompat-opacdecay-r0p001-5k","lego-brushcompat-opacdecay-r0p002-5k","lego-brushcompat-opacdecay-5k","lego-brushcompat-opacdecay-r0p006-5k","lego-brushcompat-opacdecay-r0p008-5k",[31,32,33],"p1-d-opacity-decay-smoke","p1-d-stage2-30k-results","a-10-variance-baseline",{"summary":35,"rank":36,"verdict":37,"delta_psnr":38,"delta_wallclock":39,"delta_splats":40},"opacity_decay_rate を 5 点 (0.001\u002F0.002\u002F0.004 default\u002F0.006\u002F0.008) で 5k smoke sweep。**rate=0.002 で PSNR 32.090 dB (default +0.40 dB)** と最高、splats は 88k で +5.8% 微増。rate を上げる (0.006-0.008) と splats は 80k 帯に削減されるが PSNR 影響は 5k variance σ ±0.32 dB 内。Phase D 30k baseline (rate=0.004) は既に M5 +0.11 突破済 (36.106 dB)、rate 変更の追加 +0.2-0.5 dB は smoke noise と並ぶ ROI 不明確。multi-scene Phase D re-chain も brush 互換性維持の観点で rate=0.004 維持を推奨。","medium","accepted-keep-default","+0.40 dB max (rate=0.002 vs default 0.004、ただし 5k smoke variance σ ±0.32 dB の 1.25 倍)","~3 min\u002Frun、wallclock 影響微小","rate 上昇で 88k → 80k (-9%)、ただし PSNR 影響軽微",[42,45,50,53,107,109,116,118,121,123,128,130],{"type":43,"text":44},"lead","Phase D opacity decay の \u003Ccode>opacity_decay_rate\u003C\u002Fcode> を \u003Cstrong>5 点 sweep\u003C\u002Fstrong> (0.001 \u002F 0.002 \u002F 0.004 brush default \u002F 0.006 \u002F 0.008)、Lego brushcompat 5k smoke で PSNR と splats の trade-off を実測。\u003Cstrong>rate=0.002 が PSNR 最高 (32.090 dB、default +0.40 dB)\u003C\u002Fstrong> の sweet spot として確認、ただし splats は default 比 +5.8% 微増。rate を上げる方向 (0.006-0.008) では splats が 80k 帯に削減されるが PSNR 影響は 5k variance σ ±0.32 dB の 1 倍以下 (±0.2 dB)。",{"type":46,"label":47,"variant":48,"text":49},"callout","実用判定","info","\u003Cstrong>rate=0.004 (brush default) 維持を推奨\u003C\u002Fstrong>。Phase D 30k は既に rate=0.004 で \u003Cstrong>M5 Lego val +0.11 dB 突破\u003C\u002Fstrong> (36.106 dB) 達成済、rate=0.002 で 30k 走らせれば \u003Cstrong>+0.2-0.5 dB 追加期待\u003C\u002Fstrong>だが、(1) 5k smoke noise と並ぶレベルで再評価 ROI 不明確、(2) brush 互換性 (multi-scene parity 主張) の観点で default 維持が筋、(3) 30k full bench cost (~42 min) と比較してメリット小。multi-scene Phase D re-chain も rate=0.004 で進める。",{"type":51,"text":52},"heading","1. Sweep 結果 table",{"type":54,"columns":55,"align":63,"rows":66,"caption":106},"table",[56,57,58,59,60,61,62],"rate","PSNR (dB)","splats","wallclock","Δ PSNR vs default","Δ splats vs default","judgment",[64,64,64,64,64,64,65],"right","left",[67,75,83,90,98],[68,69,70,71,72,73,74],"0.001","31.946","88,685","2m 26s","+0.26","+6.7%","PSNR 微増、splats 微増",[76,77,78,79,80,81,82],"**0.002**","**32.090**","**87,940**","3m 01s","**+0.40 ★**","+5.8%","**PSNR 最高、sweet spot**",[84,85,86,87,88,88,89],"0.004 (baseline)","31.689","83,093","2m 34s","(baseline)","brush default、Phase D 30k 36.106 dB の root",[91,92,93,94,95,96,97],"0.006","31.648","81,327","3m 24s","-0.04","-2.1%","PSNR 影響軽微、splats 削減",[99,100,101,102,103,104,105],"0.008","31.811","80,206","2m 29s","+0.12","-3.5%","splats 抑制効果あり、PSNR は noise 内","5k smoke の variance σ ±0.32 dB (a-10-variance-baseline) を考慮すると、PSNR 差 ±0.32 dB 以内は noise 帯。rate=0.002 (+0.40) は 1.25σ で「明確に高い」、他 (0.001 +0.26 \u002F 0.006-0.008 ±0.2) は noise floor 内。splats は 0.001\u002F0.002 (~88k) と 0.006\u002F0.008 (~80k) の 2 群、0.004 は 83k で中間。",{"type":51,"text":108},"2. PSNR 最大化の機序 (rate=0.002 の解釈)",{"type":110,"items":111},"list",[112,113,114,115],"\u003Cstrong>rate=0.004 (brush default)\u003C\u002Fstrong>: per-refine で sigmoid-space decay (1-0.004)、splat が 5k 程度の training で 5000 \u002F 100 = 50 回 decay 適用","\u003Cstrong>rate=0.002 では 50 回 × (1-0.002) = 0.905 倍 のみ\u003C\u002Fstrong> → 低 opacity splat の自然淘汰が緩やか、PSNR positive な splat も残る → PSNR 高め","\u003Cstrong>rate=0.001 も同方向だが弱すぎる\u003C\u002Fstrong>: opacity 維持できない splat も残り、PSNR 微下げ (31.95 vs 32.09)","\u003Cstrong>rate=0.006-0.008\u003C\u002Fstrong>: 50 回 × 0.74-0.67 = 過剰 decay、PSNR positive な splat も消えて PSNR 微下げ、ただし splats 数は確実に削減",{"type":51,"text":117},"3. 30k での予測 (defer for cost reason)",{"type":119,"text":120},"paragraph","rate=0.002 で 30k 走らせると、refine stop_iter=15000 まで \u003Cstrong>1500 回 decay (5k の 30 倍)\u003C\u002Fstrong>。decay 累積効果は指数的なので 30k では rate 差の影響が拡大、PSNR 差は 5k smoke の +0.40 dB から推定 \u003Cstrong>+0.5-1.0 dB\u003C\u002Fstrong> 程度に拡大の可能性。ただし splats も +5.8% × 累積で 30k では +20-40% 増の可能性 (Phase D 30k の 375k → 450-525k 帯)。これは brush 282k からの距離が遠のく方向で、卒論 narrative (本実装が brush 効率に追いつく) の観点では好ましくない。\u003Cstrong>30k での確認は defer\u003C\u002Fstrong>、現状の rate=0.004 維持で multi-scene Phase D re-chain に進む。",{"type":51,"text":122},"4. 卒論への含意",{"type":110,"items":124},[125,126,127],"\u003Cstrong>brush の opac_decay value 0.004 は \"reasonable default\"\u003C\u002Fstrong>: 5k smoke でも 30k でも本実装で安定 (M5 突破)、ablation で sweet spot rate=0.002 も近接、brush の hyperparameter 選択が経験則的に妥当","\u003Cstrong>rate ablation 自体が axis 1 contribution の方法論\u003C\u002Fstrong>: \"brush hyperparameter の robustness を独立 trainer で検証\" という meta-evaluation 価値、卒論 §5.4 多 negative findings の中で唯一 positive な hyperparameter sensitivity 検証として配置","\u003Cstrong>multi-scene での rate optimal 値は scene-dependent の可能性\u003C\u002Fstrong>: lego は 0.002 が最高だが、ficus (sparse init) \u002F drums (反射) \u002F materials (PBR) では別 rate が最適かもしれない、ただし scene 別 sweep cost 大で defer 候補",{"type":51,"text":129},"5. 関連",{"type":110,"items":131},[132,133,134,135],"P1.D Stage 1 (rate=0.004 default 5k smoke、win-win 実証): \u003Ccode>p1-d-opacity-decay-smoke\u003C\u002Fcode>","P1.D Stage 2 (rate=0.004 30k full、M5 達成): \u003Ccode>p1-d-stage2-30k-results\u003C\u002Fcode>","a-10 variance baseline (σ ±0.32 dB noise floor 根拠): \u003Ccode>a-10-variance-baseline\u003C\u002Fcode>","brush 自身 opac_decay = 0.004 default: \u003Ccode>p1-a-1-brush-eval-audit\u003C\u002Fcode> §7 (TrainConfig defaults)",[137,145,152,158,164],{"id":25,"title":25,"subtitle":138,"date":9,"workspace":139,"tags":140,"verdict":141,"psnr":142,"psnr_unit":-1,"wallclock":71,"splats":143,"summary_url":144,"detail_path":144},"P1.D rate sweep r=0.001 (vs default 0.004)","splat",[17,19,20,21,22,18],"partial",31.94621467590332,88685,"\u002Fruns\u002Flego-brushcompat-opacdecay-r0p001-5k\u002F",{"id":26,"title":26,"subtitle":146,"date":9,"workspace":139,"tags":147,"verdict":141,"psnr":148,"psnr_unit":-1,"wallclock":149,"splats":150,"summary_url":151,"detail_path":151},"P1.D rate sweep r=0.002 (vs default 0.004)",[17,19,20,21,22,18],32.0899658203125,"3m 1s",87940,"\u002Fruns\u002Flego-brushcompat-opacdecay-r0p002-5k\u002F",{"id":28,"title":28,"subtitle":153,"date":9,"workspace":139,"tags":154,"verdict":141,"psnr":155,"psnr_unit":-1,"wallclock":94,"splats":156,"summary_url":157,"detail_path":157},"P1.D rate sweep r=0.006 (vs default 0.004)",[17,19,20,21,22,18],31.648311614990234,81327,"\u002Fruns\u002Flego-brushcompat-opacdecay-r0p006-5k\u002F",{"id":29,"title":29,"subtitle":159,"date":9,"workspace":139,"tags":160,"verdict":141,"psnr":161,"psnr_unit":-1,"wallclock":102,"splats":162,"summary_url":163,"detail_path":163},"P1.D rate sweep r=0.008 (vs default 0.004)",[17,19,20,21,22,18],31.810531616210938,80206,"\u002Fruns\u002Flego-brushcompat-opacdecay-r0p008-5k\u002F",{"id":27,"title":27,"subtitle":165,"date":166,"workspace":139,"tags":167,"verdict":141,"psnr":170,"psnr_unit":-1,"wallclock":87,"splats":171,"summary_url":172,"detail_path":172},"P1.D opacity decay 5k — brushcompat-base-5k に opacity_decay_rate=0.004 を追加","2026-05-24",[17,20,168,21,18,169],"smoke","splat-count-reduction",31.68873405456543,83093,"\u002Fruns\u002Flego-brushcompat-opacdecay-5k\u002F",[174,199,212],{"id":32,"title":175,"date":9,"status":10,"polarity":12,"category":176,"axes":177,"tags":179,"task_code":189,"related_runs":190,"delta_psnr":193,"delta_wallclock":194,"rank":195,"verdict":196,"impact_summary":197,"detail_path":198},"P1.D Stage 2 — Lego brushcompat + opacity decay 30k = 36.106 dB、splats -56% \u002F wallclock -32%","experiment",[14,178,15],2,[180,181,182,18,183,184,22,185,186,187,188],"p1","phase-d","milestone-m5","brush-parity","win-win-win","lego-30k","stage-2","splat-efficient","axis-1-prep","P1.D Stage 2 (M5 Lego val pass)",[191,192,27],"lego-brushcompat-opacdecay-30k","lego-brushcompat-base-30k","+0.92 dB vs baseline 30k (35.184 → 36.106)","-32% vs baseline 30k (1h 02m 18s → 41m 54s)","high","accepted-decisive-win","Lego brushcompat + opacity decay 30k で training-time eval 36.106 dB (val 100 view, brush convention, raw)、independent eval 36.163 dB (brush q8)。baseline 30k (35.184 dB) を **+0.92 dB 上回り**、splats を 846,689 → 375,146 に **-55.6% 削減**、wallclock を 1h 02m → 41m 54s に **-32% 短縮**。これは trade-off と想定していた PSNR\u002Fsplats\u002Fwallclock が **完全 win-win-win** に。M5 個別 scene gate (Lego brush conv > 36 dB) を val で達成、brush 自身 val 32.038 dB を +4.07 dB 上回り、本実装が brush を decisive に超えた。test subset (n=36) も +0.75 dB 改善 (33.315 → 34.065)、brush paper test 37.40 との gap を -3.34 dB まで縮小。Stage 1 smoke 推定 (splats -11.6%) を 30k で -56% に拡大、opacity decay の効果は iter 累積で増大することを実証。次 step は multi-scene Phase D 7 scene re-chain (chain 完了後 schedule)、低 wallclock + 低 splats での M5 multi-scene parity 完遂を狙う。","\u002Ffindings\u002Fp1-d-stage2-30k-results\u002F",{"id":31,"title":200,"date":166,"status":10,"polarity":12,"category":176,"axes":201,"tags":202,"task_code":203,"related_runs":204,"delta_psnr":207,"delta_wallclock":208,"rank":195,"verdict":209,"impact_summary":210,"detail_path":211},"P1.D opacity decay 5k smoke — splats -11.6%、PSNR +0.38 dB の同時改善",[14,15],[180,181,18,169,21,20,168],"P1.D opacity-decay (Phase D core)",[27,205,206],"lego-brushcompat-base-5k (Stage 1 baseline 31.31 dB \u002F 93,948 splats)","lego-brushcompat-base-30k (Stage 2 35.18 dB \u002F 846,689 splats)","+0.38 dB vs Stage 1 baseline 5k (31.308 → 31.689)","+23% vs Stage 1 5k (2m 5s → 2m 34s、host RMW overhead、N で線形)","accepted-go-30k","brush の `refine_splats()` (train.rs:611-619) と同じ sigmoid-space formula で opacity decay を refine cadence に統合: `new_opac = sigmoid(raw) - rate*(1-train_t)` → `clamp(1e-12, 1-1e-12)` → `inv_sigmoid`。5k Lego smoke で PSNR は維持以上 (31.31 → 31.69 dB、+0.38 dB)、splats は **-11.6%** 削減 (93,948 → 83,093)、wallclock は +23% (1500 iter で全 splat 触る host loop が支配的、N=83k で問題ない範囲)。これにより 30k に進めば brush 282k 帯 (Stage 2 の 846k からの大幅削減) + PSNR ≥ 34 dB の同時達成が射程に入る。axis 1 (native Metal) ではなく axis 3 (unified memory CPU RMW) を活用した実装で、refine 周辺の O(N)\u002Frefine_every オペレーションには合理的選択 (Metal dispatch overhead > 実 work)。","\u002Ffindings\u002Fp1-d-opacity-decay-smoke\u002F",{"id":33,"title":213,"date":214,"status":10,"polarity":215,"category":176,"axes":216,"tags":217,"task_code":224,"related_runs":225,"delta_psnr":230,"delta_wallclock":231,"rank":195,"verdict":10,"impact_summary":232,"detail_path":233},"A.10 variance baseline — σ ±0.32 dB \u002F range 0.885 dB を実測","2026-05-23","negative",[15],[218,219,220,221,222,223],"phase-5","variance","gpu-non-determinism","kahan","atomic","apple-silicon","A.10",[226,227,228,229],"lego-sh3-30k","lego-variance-trial1-30k","lego-variance-trial2-30k","lego-variance-trial3-30k","σ ±0.32 dB \u002F range 0.885 dB","σ ±2.4% \u002F range 5.2%","M-3.x lego sh3 30k の PSNR variance は σ ±0.32 dB \u002F range 0.885 dB (4 run estimate)、wallclock variance は σ ±2.4% \u002F range 5.2%。原因は SIMD backward kernel の atomic_fetch_add 順序非決定性で、A.10 Kahan で消えない (compensator も bit-identical のところ)。卒論 finding として「Apple Silicon の variance band は数値精度の問題でなく GPU scheduler 由来」と確定。","\u002Ffindings\u002Fa-10-variance-baseline\u002F",1782449788649]