[{"data":1,"prerenderedAt":207},["ShallowReactive",2],{"run:lego-brushcompat-base-30k":3,"run-findings:lego-brushcompat-base-30k":144},{"run":4,"config":19,"metrics":53,"curve":59,"assets":143},{"id":5,"title":5,"subtitle":6,"eyebrow":7,"date":8,"workspace":9,"commit":10,"tags":11,"verdict":18},"lego-brushcompat-base-30k","P1.B.F Stage 2 brush 互換 30k — gt_convention=premultiplied、refine 期間 brush 流","Run summary · P1.B.F Stage 2 (M3 brush conv 30 dB gate)","2026-05-24","splat","acaad0d",[12,13,14,15,16,17],"p1-b-f","lego-30k","brush-compat","convention-bridge","premultiplied","m3-gate","partial",[20,23,26,29,32,35,38,41,44,47,50],{"key":21,"value":22},"dataset","\u002FUsers\u002Fotkrickey\u002Fdev\u002F3dgs-workspace\u002Fdatasets\u002Fnerf_synthetic\u002Flego",{"key":24,"value":25},"gt_convention","Premultiplied",{"key":27,"value":28},"iterations","30,000",{"key":30,"value":31},"seed","42",{"key":33,"value":34},"capacity","1,000,000 splats",{"key":36,"value":37},"sh_degree","3",{"key":39,"value":40},"loss","L1Ssim",{"key":42,"value":43},"lambda","0.200",{"key":45,"value":46},"ssim","window=7 sigma=1",{"key":48,"value":49},"backend.backward","Simd",{"key":51,"value":52},"backend.loss_path","Gpu",{"psnr":54,"wallclock":55,"wallclock_regress":56,"splats":57,"final_loss":58},35.18375015258789,"1h 2m 18s",false,846689,"5.371257e-3",{"loss":60,"splats":125},{"iters":61,"values":93},[62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],1,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000,13000,14000,15000,16000,17000,18000,19000,20000,21000,22000,23000,24000,25000,26000,27000,28000,29000,30000,[94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124],0.5938446521759033,0.0507957898080349,0.016061581671237946,0.010122895240783691,0.008603155612945557,0.007830852642655373,0.007204488851130009,0.006880978122353554,0.006694371812045574,0.006519838236272335,0.006381257437169552,0.006360721308737993,0.006107565946877003,0.005996976513415575,0.0059301769360899925,0.005889941938221455,0.005842686630785465,0.005747766699641943,0.005735115148127079,0.005659123882651329,0.005578074604272842,0.005494468845427036,0.00556684797629714,0.005461171269416809,0.005483184475451708,0.0054543474689126015,0.005447076633572578,0.005404071882367134,0.0053396159783005714,0.005328528583049774,0.005371256731450558,{"iters":126,"values":127},[62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57],5207,12460,239348,383081,473486,541930,597532,643832,683378,717415,747410,773494,795917,815348,832223,{"has_renders":56,"has_splat":56},[145,175,192],{"id":146,"title":147,"date":148,"status":149,"polarity":150,"category":151,"axes":152,"tags":155,"task_code":165,"related_runs":166,"delta_psnr":169,"delta_wallclock":170,"rank":171,"verdict":172,"impact_summary":173,"detail_path":174},"p1-d-stage2-30k-results","P1.D Stage 2 — Lego brushcompat + opacity decay 30k = 36.106 dB、splats -56% \u002F wallclock -32%","2026-05-25","stable","positive","experiment",[62,153,154],2,3,[156,157,158,159,160,161,16,13,162,163,164],"p1","phase-d","milestone-m5","opacity-decay","brush-parity","win-win-win","stage-2","splat-efficient","axis-1-prep","P1.D Stage 2 (M5 Lego val pass)",[167,5,168],"lego-brushcompat-opacdecay-30k","lego-brushcompat-opacdecay-5k","+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":176,"title":177,"date":8,"status":149,"polarity":150,"category":151,"axes":178,"tags":179,"task_code":183,"related_runs":184,"delta_psnr":187,"delta_wallclock":188,"rank":171,"verdict":189,"impact_summary":190,"detail_path":191},"p1-b-f-stage2-30k-results","P1.B+F Stage 2 — Lego 30k brushcompat で 35.184 dB、brush 自身を +3.20 dB 上回り",[62,153,154],[156,180,181,160,182,16,15,13,162],"phase-b-f","milestone-m3","brush-超え","P1.B+F Stage 2 (M3 gate)",[5,185,186],"lego-brushcompat-base-5k","lego-sh3-30k (legacy 30k 24.879 dB)","+10.30 dB vs legacy 30k (24.879 → 35.184、convention 変更後の真の現状)","+2.7x vs legacy 30k (1h 2m 18s vs 22m18s、splats 10x で per-iter time 増、ただし brush 自身 282k より 3 倍多い)","accepted-stretch-goal-met","Lego sh3 30k で gt_convention=premultiplied (brush 互換) を立てると、4-way eval で legacy=1.60 \u002F brush=35.24 dB。**brush 自身 val 32.0 dB を +3.20 dB 上回る** 結果。M3 lifeline (30 dB) を +5.24 dB 突破、M5 (36 dB) まで -0.76 dB に到達。Phase A 主仮説 (apparent gap -3〜-6 dB) は falsify されたが、coupling 解消の真の効果は **+33.6 dB shift (1.67 → 35.24)**、想定 (+10 dB) の 3 倍。実装は configs 1 行 (gt_convention) + dataset.rs (load_rgba_premultiplied path 追加、既に Stage 1 で merge 済) のみ、既存 30k legacy bench との apples-to-apples comparison が可能。brush の wallclock 38% 高速化は 30k でも継続 (splats 1M-cap で 846k 到達、refine が攻撃的 split)、ただし brush 自身 282k に比べて 3 倍、本実装が capacity を未活用 (refine を絞る余地あり、Phase D で検証可能)。次 Step は multi-scene 8 シーン展開で universal claim 確定、brush mean 33.32 dB 超えで multi-scene parity 完全達成を狙う。","\u002Ffindings\u002Fp1-b-f-stage2-30k-results\u002F",{"id":193,"title":194,"date":8,"status":149,"polarity":195,"category":151,"axes":196,"tags":197,"task_code":202,"related_runs":203,"delta_psnr":-1,"delta_wallclock":-1,"rank":171,"verdict":204,"impact_summary":205,"detail_path":206},"p1-test-split-subset-eval","P1 test split subset eval — Lego brushcompat 30k で test 33.315 dB (n=36)、brush 37.40 dB と -4.09 dB","mixed",[62,154],[156,180,160,198,199,200,13,201],"test-split","subset-eval","apples-to-apples","generalization-gap","P1.B+F Stage 2 後続 (test split subset eval)",[5],"mixed — val parity 維持 + test split で brush 未達","Lego brushcompat 30k final.ply を test split subset (n=36\u002F200、ローカルに残っている RGB のみ) で eval すると 33.315 dB (q8) \u002F 33.241 dB (raw)。val 100 view 35.237 dB (q8) との Δ = -1.92 dB は novel view (test) vs near-train view (val) の generalization gap (brush 自身も val 32.038 → test 37.40 と +5.36 dB 上振れする方向なので、本実装は test で逆に -1.9 dB 劣化、合計の apples-to-apples diff は -4 〜 -5 dB)。brush paper 37.40 dB との差は -4.09 dB で、val ベースで主張していた `brush 超え` claim は test split に拡張すると **不成立**。n=36 (18% subset) の random subsampling bias は mean PSNR で ±1〜2 dB 程度と見積もれるが、4 dB の gap を埋めるには足りない。本 finding により P1 計画の最終判定は `val split で brush parity + α 達成、test split (novel view generalization) では brush に未達` という mixed 結果で確定。実装側のアウトプットとして `splat eval --split-file \u003CPATH>` flag が追加され、任意 transforms JSON での eval が可能になった (subset \u002F 外部 split 互換)。","\u002Ffindings\u002Fp1-test-split-subset-eval\u002F",1782449787767]