diff --git a/CLAUDE.md b/CLAUDE.md index 376a2e0..d4e24b8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -23,7 +23,7 @@ ## 開発進捗 -最新: フェーズ 7(実装)— Step 8 基準設計キャリブレーションの **Step 8-14(物理モデル精緻化)** 進行中.[TEST_12](docs/06_TEST/TEST_12_シェーディング法線アーティファクトの発見と修正.md) で **Step 8 残差の支配成分がレンダリングバグ(PLY 自動スムーズ法線 × 評価板の巨大三角形)だったことを発見・修正**(TEST_11 球体筐体実験の完全軸対称化で顕在化,builder に `face_normals: true` を強制).修正後は現行筐体全灯 **CoV 0.1717→0.0610**(実機 0.0695 を下回る)・勾配 6.8%(実機 8.35%)・C/P 1.073(実機 1.091)=**振幅系指標は実機とほぼ整合し,「残差 2.4×」と Y 軸単調勾配の見かけは大半がアーティファクトだったと判明**.球ロフト(CoV 0.0628・完全同心円)は現行筐体と同等=現行筐体はすでに理想積分球級で球形化の優位性なし(TEST_11 の結論は撤回・BEFORE FIX 注記参照).単灯再検証(TEST_12 追補)で **TEST_09 中核結論「3 灯同形=非対称相補性を再現できない」も撤回**: 修正後は灯間 NCC(平滑)0.85/0.93/0.73 の非対称で「left-right 最違い」は実機(0.92/0.66/0.44)と一致(振幅・最類似ペアは不一致=残課題).実験4(漏れ点検)の主動機は大幅に弱まり,残る差分は「形」(相補性の振幅・実機の斜め構造)の切り分けへ再設定.実機側はロフト w=1.4 版 `MiniTIAS_QM_20260726_183416.dng` が SmTIAS-Evaluation 分析待ち.詳細な経緯・設計判断・失敗パターンは [docs/PROGRESS.md](docs/PROGRESS.md). +最新: フェーズ 7(実装)— Step 8 基準設計キャリブレーションの **Step 8-14(物理モデル精緻化)** 進行中.[TEST_12](docs/06_TEST/TEST_12_シェーディング法線アーティファクトの発見と修正.md) で **Step 8 残差の支配成分がレンダリングバグ(PLY 自動スムーズ法線 × 評価板の巨大三角形)だったことを発見・修正**(TEST_11 球体筐体実験の完全軸対称化で顕在化,builder に `face_normals: true` を強制).修正後は現行筐体全灯 **CoV 0.1717→0.0610**(実機 0.0695 を下回る)・勾配 6.8%(実機 8.35%)・C/P 1.073(実機 1.091)=**振幅系指標は実機とほぼ整合し,「残差 2.4×」と Y 軸単調勾配の見かけは大半がアーティファクトだったと判明**.球ロフト(CoV 0.0628・完全同心円)は現行筐体と同等=現行筐体はすでに理想積分球級で球形化の優位性なし(TEST_11 の結論は撤回・BEFORE FIX 注記参照).単灯再検証(TEST_12 追補)で **TEST_09 中核結論「3 灯同形=非対称相補性を再現できない」も撤回**: 修正後は灯間 NCC(平滑)0.85/0.93/0.73 の非対称で「left-right 最違い」は実機(0.92/0.66/0.44)と一致(振幅・最類似ペアは不一致=残課題).ロフト w1.4 の修正後再検証では**「全灯・単灯とも実質不感」が維持**(実機 w1.4 測定への予測も不変)される一方「bottom 平ら化=幾何レバー実証」は撤回相当に弱まった.実験4(漏れ点検)の主動機は大幅に弱まり,残る差分は「形」(相補性の振幅・実機の斜め構造)の切り分けへ再設定.実機側はロフト w=1.4 版 `MiniTIAS_QM_20260726_183416.dng` が SmTIAS-Evaluation 分析待ち.詳細な経緯・設計判断・失敗パターンは [docs/PROGRESS.md](docs/PROGRESS.md). 実装済みモジュール: - `src/sm_tias_lightsim/uniformity.py` — Rec.709 輝度変換 + CoV/std/max-min(SmTIAS-Evaluation コピー) diff --git "a/docs/06_TEST/TEST_02_\343\202\267\343\203\237\343\203\245\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\345\256\237\350\241\214\350\250\230\351\214\262.md" "b/docs/06_TEST/TEST_02_\343\202\267\343\203\237\343\203\245\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\345\256\237\350\241\214\350\250\230\351\214\262.md" index 4383c7a..2d51b6f 100644 --- "a/docs/06_TEST/TEST_02_\343\202\267\343\203\237\343\203\245\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\345\256\237\350\241\214\350\250\230\351\214\262.md" +++ "b/docs/06_TEST/TEST_02_\343\202\267\343\203\237\343\203\245\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\345\256\237\350\241\214\350\250\230\351\214\262.md" @@ -78,7 +78,8 @@ | `output/sphere_r100_loft_disk_fix/` | TEST_12 | `configs/scene_sphere_r100_loft_disk.yaml`(面法線修正後の再レンダ) | 同上 | CoV 0.0628 / angular_ratio 0.005(完全同心円) | 面法線修正後の球体筐体の正準結果.現行筐体とほぼ同等=球形化の優位性消滅 | | `output/_slide_panels/sphere_fix_{shape_roi,relative}.png` | TEST_12 | — | — | 現行筐体 fix/球ロフト円形 fix/実機の 1×3 パネル(修正後のみで比較) | TEST_12 視覚比較・発表スライド素材(`scripts/build_sphere_panel.py` 現行版が生成) | | `output/singles_fix/{bottom,left,right}/` | TEST_12 追補 | `configs/_tmp_fix_{bottom,left,right}.yaml`(検証済み `_tmp_fn_full_base.yaml` から灯グループ抽出.blend w0.05_a0.1・d=16・spp=1024) | 形指標のみ(`scripts/build_singles_fix_summary.py`) | 灯間 NCC(平滑)が修正前 0.99 均等 → **修正後 0.85/0.93/0.73 の非対称** — [TEST_12 §追補](TEST_12_シェーディング法線アーティファクトの発見と修正.md) 参照 | TEST_09 中核結論「3 灯同形」の撤回根拠.単灯 spp=1024 はノイズ 5.3% > 構造 4% のため raw 指標はノイズ支配(以後の単灯は spp≥4096 推奨) | -| `output/singles_fix/{summary,pairwise_ncc}.csv`・`output/_slide_panels/singles_fix_shape_roi.png` | TEST_12 追補 | — | — | 単灯形指標(修正前後対比)・灯間 NCC(raw/smooth)・3×3 パネル | `scripts/build_singles_fix_summary.py` の出力 | +| `output/singles_fix/{summary,pairwise_ncc}.csv`・`output/_slide_panels/singles_fix_shape_roi.png` | TEST_12 追補 | — | — | 単灯形指標(修正前後・w1p4 対比,平滑後 p/m 併記)・灯間 NCC(raw/smooth)・3×4 パネル | `scripts/build_singles_fix_summary.py` の出力 | +| `output/full_w1p4_fix/`・`output/singles_fix/{bottom,left,right}_w1p4/` | TEST_12 追補 | `configs/_tmp_fix_{full,bottom,left,right}_w1p4.yaml`(後側を `後側_w1p4.stl` に差し替え,blend w0.05_a0.1・d=16・spp=1024) | 全灯のみ `eval_baseline_dng_target_shape.yaml` | 全灯 CoV 0.0605(基準 fix 0.0610 と差 1%)=**ロフト不感は修正後も維持**.単灯は平滑 p/m 差 ≤0.9%・灯間 NCC は +0.05〜0.12 同形化 — [TEST_12 §ロフト再検証](TEST_12_シェーディング法線アーティファクトの発見と修正.md) 参照 | TEST_10 相対結論の再検証.「bottom 平ら化=幾何レバー実証」は撤回相当に弱まり,不感性の結論が生存 | | `output/_slide_panels/full_vs_singles_fix.png` | TEST_12 追補 | — | — | シミュ(面法線修正後)×実機の 2 行 × 全灯/bottom/left/right 4 列パネル(全セル同一平滑化・NCC 対実機併記) | 全灯と単灯の形の対応比較(`scripts/build_full_vs_singles_panel.py` が生成).平滑後 p/m はシミュ 1.07 前後 vs 実機 1.10〜1.16 | ### sweep_summary.csv の値(参考、TEST_01 line と一致確認用) diff --git "a/docs/06_TEST/TEST_10_\345\276\214\345\201\264\343\203\255\343\203\225\343\203\210\345\244\211\345\275\242w1p4\345\256\237\351\250\223.md" "b/docs/06_TEST/TEST_10_\345\276\214\345\201\264\343\203\255\343\203\225\343\203\210\345\244\211\345\275\242w1p4\345\256\237\351\250\223.md" index dc83318..1cafd71 100644 --- "a/docs/06_TEST/TEST_10_\345\276\214\345\201\264\343\203\255\343\203\225\343\203\210\345\244\211\345\275\242w1p4\345\256\237\351\250\223.md" +++ "b/docs/06_TEST/TEST_10_\345\276\214\345\201\264\343\203\255\343\203\225\343\203\210\345\244\211\345\275\242w1p4\345\256\237\351\250\223.md" @@ -1,5 +1,12 @@ # 後側ロフト変形 w=1.4 実験 (Rear Housing Loft Deformation Experiment) +> ⚠️ **BEFORE FIX 注記**: 本ドキュメントの数値はすべて**シェーディング法線アーティファクト +> ([TEST_12](TEST_12_シェーディング法線アーティファクトの発見と修正.md),2026-08-18 修正)込み**である. +> 修正後の再検証(TEST_12 §ロフト w1.4 の再検証)による結論の生死: **「全灯に実質不感」と +> 「left/right 不動」「対称拡大は同形化方向」は維持**(実機 w1.4 測定への予測も不変). +> 一方 **「bottom 単灯 peak/mean 1.672→1.508 の明確な平ら化=幾何レバー初実証」は撤回相当に弱まる** +> (修正後の平滑指標では -0.9% の微小効果.-10% はアーティファクト期の見かけが大半). + ## 背景と目的 (Background & Purpose) [TEST_09](TEST_09_照明分布の形不一致の原因切り分け.md) で光源側・材料側のレバーが出尽くし,実機との形の不一致(peak/mean の平らさ・灯間 NCC の非対称な相補性)の残差は **B1 筐体幾何に確定** した.本実験では,実機再印刷の前段として **後側筐体のロフト形状を変形させた STL** をシミュレーションで評価し,筐体幾何の変更が照明分布の形に与える影響を定量化する. diff --git "a/docs/06_TEST/TEST_12_\343\202\267\343\202\247\343\203\274\343\203\207\343\202\243\343\203\263\343\202\260\346\263\225\347\267\232\343\202\242\343\203\274\343\203\206\343\202\243\343\203\225\343\202\241\343\202\257\343\203\210\343\201\256\347\231\272\350\246\213\343\201\250\344\277\256\346\255\243.md" "b/docs/06_TEST/TEST_12_\343\202\267\343\202\247\343\203\274\343\203\207\343\202\243\343\203\263\343\202\260\346\263\225\347\267\232\343\202\242\343\203\274\343\203\206\343\202\243\343\203\225\343\202\241\343\202\257\343\203\210\343\201\256\347\231\272\350\246\213\343\201\250\344\277\256\346\255\243.md" index d0a47fb..644ba90 100644 --- "a/docs/06_TEST/TEST_12_\343\202\267\343\202\247\343\203\274\343\203\207\343\202\243\343\203\263\343\202\260\346\263\225\347\267\232\343\202\242\343\203\274\343\203\206\343\202\243\343\203\225\343\202\241\343\202\257\343\203\210\343\201\256\347\231\272\350\246\213\343\201\250\344\277\256\346\255\243.md" +++ "b/docs/06_TEST/TEST_12_\343\202\267\343\202\247\343\203\274\343\203\207\343\202\243\343\203\263\343\202\260\346\263\225\347\267\232\343\202\242\343\203\274\343\203\206\343\202\243\343\203\225\343\202\241\343\202\257\343\203\210\343\201\256\347\231\272\350\246\213\343\201\250\344\277\256\346\255\243.md" @@ -136,6 +136,46 @@ (raw / smooth 両方を記録,解釈は smooth を正とする)・ 図 `output/_slide_panels/singles_fix_shape_roi.png`・集計 `scripts/build_singles_fix_summary.py`. +### ロフト w1.4 の再検証(TEST_10 相対結論) + +続けてロフト w=1.4(`後側_w1p4.stl`)を修正版で再レンダ(全灯 1 + 単灯 3, +`configs/_tmp_fix_{full,bottom,left,right}_w1p4.yaml` → `output/full_w1p4_fix/`・ +`output/singles_fix/{bottom,left,right}_w1p4/`,2026-08-18). + +全灯(`eval_baseline_dng_target_shape.yaml`): + +| 指標 | 基準 fix | w1p4 fix | 差 | +| --- | --- | --- | --- | +| CoV | 0.06103 | 0.06051 | -0.9% | +| gradient [%] | 6.83 | 6.75 | -1.2% | +| C/P | 1.0733 | 1.0723 | -0.1% | +| angular_ratio | 0.3413 | 0.3332 | -2.4% | + +単灯(平滑後 peak/mean)と灯間 NCC(平滑): + +| | bottom | left | right | | b-l | b-r | l-r | +| --- | --- | --- | --- | --- | --- | --- | --- | +| 基準 fix | 1.0692 | 1.0745 | 1.0732 | 基準 fix | 0.854 | 0.934 | 0.727 | +| w1p4 fix | 1.0600 | 1.0750 | 1.0676 | w1p4 fix | 0.909 | 0.958 | 0.844 | +| 実機 | 1.1224 | 1.1567 | 1.1122 | 実機 | 0.917 | 0.662 | 0.440 | + +TEST_10 の 4 結論の判定: + +1. **④「ロフトは全灯に実質不感」— 維持**(全指標差 ≈1% でノイズ同等).実機 w1.4 測定 + `MiniTIAS_QM_20260726_183416` への予測「従来筐体とほぼ同じ」も維持される. +2. **③「対称なキャビティ拡大は 3 灯を同形化する方向」— 維持・明確化**: 灯間 NCC は + w1p4 で +0.05〜+0.12 上昇(0.85/0.93/0.73 → 0.91/0.96/0.84)=実機の非対称 + (0.92/0.66/0.44)から遠ざかる.NCC 対実機も 3 灯とも微減で実機方向に近づかない(②と整合). +3. **①「bottom 単灯の明確な平ら化=幾何レバー初実証」— 大幅に弱まる**: 平滑後 peak/mean の + 変化は bottom -0.9%・right -0.5%・left ±0 で微小.TEST_10 の raw -10%(1.672→1.508)は + アーティファクト期の見かけが大半だった(修正後 raw の -12% はヘビーテイルノイズの + 最大値ゆらぎで信頼できない.smooth を正とする). +4. **②「left/right 不動」— 維持**. + +総括: ロフト重み変形は修正後データでは「全灯・単灯とも実質不感で,むしろ 3 灯を同形化する +(実機の非対称からは遠ざかる)小さな混合強化」と再解釈される.TEST_10 の相対結論のうち +不感性(③④)は生き残り,幾何レバーの実証(①)は撤回相当に弱まった. + ## 再現コマンド (Reproduction) ```powershell diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index c725aab..6e9881e 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -77,3 +77,4 @@ - **TEST_11 追補 — 円形光源(disk)対応と完全軸対称化・発光面形状の不感を確認 (2026-08-18)**: ユーザー指示「光源を矩形でなく円形にして軸上に置きたい」に対応.スキーマの area 光源に `shape: disk`(radius 必須検証付き,rectangle は後方互換)を追加し `lights.py` を rectangle/disk 共通の半幅スケールに一般化(SPEC_02 更新・スケール実寸検証テスト追加・fast 898 件全パス).3D 確認ツール 2 種(sm-visualize マーカー・show_led_geometry)も disk 描画対応.同面積円板(r=1.7662mm=9.8mm² 保存)でレンダした結果,**全指標が矩形版と MC ノイズ内で完全一致**(CoV 0.12047 vs 0.12044)=完全間接キャビティでは発光面形状は不感(TEST_09「Lambertian 壁が光源形状を洗い流す」の再確認)で,矩形 LED の非軸対称性は残差要因でないことを確定.以後は円形光源版を球実験の正準構成とする.成果物: `configs/scene_sphere_r100_loft_disk.yaml`,`output/sphere_r100_loft_disk/`,1×5 比較パネル更新,記録 [TEST_11 §追補](06_TEST/TEST_11_球体筐体実験.md). - **TEST_12 シェーディング法線アーティファクトの発見と修正 — Step 8 残差の支配成分がレンダリングバグと判明 (2026-08-18)**: 完全軸対称化した球実験の輝度マップが同心円にならない違和感(ユーザー指摘)を起点に消去法診断(円形/矩形プレート×浮き球/ロフト筐体の 4 診断=すべて対称,実物評価板のみ非対称,`face_normals=true` で完全対称化)でバグを特定.**原因**: builder の PLY 出力に法線が無く Mitsuba がスムーズ頂点法線を自動生成 → 評価板裏面は巨大三角形 26 枚・全頂点エッジ上で法線が約 47° 傾き,評価面全体が汚染補間される.**修正**: builder で `face_normals: true` を強制(1 行+再発防止テスト).**影響**: 現行筐体全灯 CoV 0.1717→**0.0610**(実機 0.0695 を下回る),勾配 24.7→6.8%(実機 8.35%),C/P 1.328→1.073(実機 1.091)=**Step 8-13 以降の「残差 2.4×」の大半と「Y 軸単調勾配」の見かけはこのアーティファクトだった**.球ロフトは CoV 0.0628・angular_ratio 0.005(完全同心円)で現行筐体とほぼ同等=**現行筐体はすでに理想積分球級の混合性能**(TEST_11 の「球で -30% 改善」も撤回).振幅系指標が実機と揃った今,残る差分は「形」(実機の斜め構造 vs シミュの上端暗,NCC 0.616)に移った.過去の絶対値・形の結論は要再検証,相対比較の結論(ロフト不感・レバー序列)は共有アーティファクトのため方向性は保持見込み(各文書の BEFORE FIX 注記参照).検証手順: 再構成 full_base を修正前コードで保存済み結果と一致確認(CoV 差 1e-4)→ 修正後再レンダで前後差を分離.成果物: `output/{full_base_fix,sphere_r100_loft_disk_fix}/`,図 `output/_slide_panels/sphere_fix_{shape_roi,relative}.png`,記録 [TEST_12](06_TEST/TEST_12_シェーディング法線アーティファクトの発見と修正.md). - **TEST_12 追補 — 単灯再検証で TEST_09 中核結論「3 灯同形」を撤回・非対称相補性の部分再現を確認 (2026-08-18)**: 基準単灯 3 灯(blend w0.05_a0.1)を修正版で再レンダ(ロフト w1p4 系はユーザー判断でスキップ).灯間 NCC(平滑)は修正前 0.99 均等 → **修正後 0.85/0.93/0.73 の非対称**=「シミュは 3 灯ほぼ同形で非対称相補性を再現できない → B1 非対称幾何が唯一の候補」(TEST_09)はアーティファクトが作った見かけと判明し撤回(TEST_09 冒頭に BEFORE FIX 注記).修正後シミュは「left-right が最も異なる」点で実機(0.92/0.66/0.44)と一致するが,差の振幅は弱く最類似ペアは不一致=実験4(漏れ点検)の主動機は大幅に弱まり,残る課題は相補性の振幅・並びと実機の斜め構造の切り分けに再設定.計測上の学び: 単灯 spp=1024 はノイズ 5.3% > 構造振幅 4% で raw 指標(特に peak/mean・NCC)はノイズ支配 → 灯間 NCC は raw/smooth 併記とし解釈は smooth を正(`pairwise_ncc.csv`),以後の単灯実験は spp≥4096 推奨.成果物: `output/singles_fix/`,`scripts/build_singles_fix_summary.py`,図 `output/_slide_panels/singles_fix_shape_roi.png`,記録 [TEST_12 §追補](06_TEST/TEST_12_シェーディング法線アーティファクトの発見と修正.md). +- **TEST_12 追補 2 — ロフト w1.4 の修正後再検証で TEST_10 の判定を確定 (2026-08-18)**: ロフト w1.4(全灯 1+単灯 3)を修正版で再レンダ.**④「全灯に実質不感」は維持**(CoV 0.0610→0.0605,全指標差 ≈1%=実機 w1.4 測定への予測「従来筐体とほぼ同じ」も不変).**③「対称拡大は 3 灯を同形化」も維持・明確化**(灯間 NCC 平滑 0.85/0.93/0.73→0.91/0.96/0.84 で実機の非対称から遠ざかる).一方 **①「bottom 単灯の平ら化=幾何レバー初実証」は撤回相当に弱まる**(平滑 p/m 変化 -0.9% のみ.TEST_10 の raw -10% はアーティファクト期の見かけが大半.修正後 raw p/m はヘビーテイルノイズの最大値ゆらぎで不採用).②「left/right 不動」維持.TEST_10 冒頭に BEFORE FIX 注記(結論の生死を明記).成果物: `output/full_w1p4_fix/`・`output/singles_fix/*_w1p4/`,summary/pairwise CSV と 3×4 パネル更新,記録 [TEST_12 §ロフト再検証](06_TEST/TEST_12_シェーディング法線アーティファクトの発見と修正.md).