本ドキュメントは TEST_01 Step 8-13 で確定した シミュ vs 実機の残差 2.63× の主因候補を網羅的に整理したものである.Step 8-14 以降の物理モデル精緻化で「何を試すか」の判断材料として作成した.
| 順位 | 候補 | 影響度 | 検証コスト | 推奨理由 |
|---|---|---|---|---|
| ✓ クリア | — | 2026-06-02 検証完了:3×3 グリッドで全 9 パターンが実機方向に作用しない(むしろ悪化)と判明.純 Lambertian が実機挙動に最も近い.§ A1 検証結果 参照 | ||
| ✓ 数値改善のみクリア(形不変) | — | 2026-06-03 検証完了:5 値スイープ {8,12,16,20,28} で CoV/勾配/C/P/動径 min/max が全て単調改善(d=28 で残差 21-28% 縮小).ただし「形」は Y 軸単調勾配のまま完全に不変.均一化フィルタとして働くが空間再配分は起こさない.§ A9 検証結果 参照 | ||
| 🥇 1 位 | A8. 反射率 R=0.85 → 0.89(物理整合点) | 中(数値のみ予想) | 低 | Step 8-6 で導出済の物理整合点.d=16 ベースで再評価.数値改善は予想,形改善は予想薄(A9 と同系統の均一化フィルタ) |
| 🥇 1 位(形改善) | B1. 筐体内部の幾何精度 | 大の可能性 | 高 | 3D プリンタの実物理表面 vs 設計表面.A1/A9 クリアで 形改善の最後の砦として最有力 |
| ✓ クリア | — | 2026-06-02 検証完了:物理サイズ差 < 1%・中心位置差 < 1 mm で整合.残差主因から除外(§ D1 検証結果 参照) | ||
| 4 位 | A2/A3. LED 配光の個体差・樹脂ドーム | 小〜中 | 高 | データシート Lambertian 整合済 (TECH_09) |
→ 2026-06-03 更新: A1 に続き A9 max_depth も「数値改善のみクリア・形改善ではない」と確定(5 値スイープで d=28 まで CoV 21% 縮小、ただし「形」は Y 軸単調勾配のまま不変).形改善の最有力は B1 筐体幾何精度に集約.数値改善目的の最有力は A8 反射率 R=0.89(だが形改善は予想薄).
Step 8-13 で 真の linear ドメイン比較 (DNG+LSC 順方向適用 vs シミュ orthographic) を実施した結果,残差 2.63× が確定した(TEST_01 Step 8-13 参照).これは TECH_06 で予想した「真の残差 2.66×」とほぼ一致する値.
主因の絞り込み状況:
| 候補 | 絞り込み状況 | 出典 |
|---|---|---|
| LSC 補正残差 | 排除 | TECH_07(実機側で順方向適用が確立) |
| シミュ側のドメイン不一致(ガンマ等) | 排除 | TECH_08(網羅チェック済み) |
| LED 配光のモデル誤差 | ほぼ排除 | TECH_09(データシート Lambertian と数値一致) |
| 残るのは「シミュ物理モデル誤差」 | 絞り込み対象(本ドキュメント) | — |
| ID | 候補 | 現状 | 影響度 | 検証状況 |
|---|---|---|---|---|
diffuse BSDF(完全 Lambertian) | ✓ クリア | 2026-06-02 検証完了:blendbsdf (diffuse + roughconductor) で weight×alpha の 3×3 グリッド全 9 パターンを実走→全パターンが純 diffuse より悪化または不変.§ A1 検証結果 参照 | ||
| A2 | LED 個体差の配光ばらつき | 全 LED 完全均一 | 小 | 18 個平均で均される |
| A3 | 樹脂ドーム形状の個体差 | データシート Lambertian 仮定 | 小〜中 | 実物の SMD 2835 ドームは樹脂で微妙な前方凸の傾向.データシート整合は TECH_09 で確認 |
| A4 | LED 駆動電流のばらつき | 全 LED 完全同じ radiance | 小 | 18 個並列接続で電流分配誤差は通常 ±5% 以内 |
| A5 | 発光面の物理サイズ | 2.8mm 角(パッケージサイズ) | 小 | Step 8-7 で 1.5mm 角試行.形状不変,mean のみ変化 |
| A6 | LED 方向(光軸) | 全 LED (0, 0, -1) | 小 | 実機の基板は平面で妥当 |
| A7 | LED 位置精度 | Fusion STL 抽出済 | 小 | Step 8-9 で正確化済(1% 以内の形状変化) |
| A8 | 反射率 R = 0.85 → 0.89 | R=0.85(暫定) | 中(数値のみ予想) | Step 8-2 で 0.75〜0.92 スイープ済.Step 8-6 で物理整合点 R≈0.89 を導出.d=16 ベース新方針下で再評価.A9 と同系統の均一化フィルタなので 数値改善は期待,形改善は予想薄 |
| d=8 → 推奨 d=16 | ✓ 数値改善のみクリア | 2026-06-03 検証完了:5 値スイープ {8,12,16,20,28} で CoV/勾配/C/P/動径 min/max が全て単調改善.d=8→28 で残差 21-28% 縮小.ただし「形」は Y 軸単調勾配のまま完全に不変.均一化フィルタとして働くが空間再配分は起こさない.新キャリブベースラインとして d=16 推奨.§ A9 検証結果 参照 |
| ID | 候補 | 現状 | 影響度 | 検証状況 |
|---|---|---|---|---|
| B1 | 筐体内部の幾何精度 | Fusion 360 設計 STL | 中の可能性 | 3D プリンタの積層・サポート跡・微細な凹凸はモデルに含まれない.実機 3D スキャンで定量化可能だが高コスト |
| B2 | メッシュ離散化精度 | STL → PLY 変換時の三角形数 | 小〜中 | 細かい曲面は離散化される |
| B3 | 評価板の位置・向き | Fusion 360 設計通り | 小 | 既知の精度(CAD 通り) |
TECH_08 §許容している構造的差異 のタイプ II 項目.白板撮影では許容と判断したが完全排除不能.
| ID | 候補 | 現状 | 影響度 | 検証状況 |
|---|---|---|---|---|
| C1 | 絞り・口径食 | orthographic で cos⁴ なし | 小 | 実機側 lscMap で補正済(残差あり) |
| C2 | AF(焦点モデル) | orthographic 無限遠 | 小 | 白板 DoF 内固定で許容 |
| C3 | ピクセル積分 | 点サンプリング + spp | 小 | spp=1024 で緩和 |
| C4 | センサノイズ | なし | 小 | 白板高輝度で相対影響小 |
| ID | 候補 | 現状 | 影響度 | 検証状況 |
|---|---|---|---|---|
| シミュ (24, 37, 464, 450) / 実機 (539, 1015, 1400, 1409) | ✓ クリア | 2026-06-02 検証完了:物理サイズ差 < 1%,中心位置差 < 1 mm.残差主因から除外(§ D1 検証結果 参照) | ||
| D2 | mean アンカー target_mean=207.82 の精度 | 実機 1 ショットの値 | 小 | 形状指標には影響なし |
| ID | 候補 | 現状 | 影響度 | 検証状況 |
|---|---|---|---|---|
| E1 | LED 温度上昇による光出力低下 | シミュは温度概念なし | 小 | 18 個・通常室温で安定 |
| E2 | 筐体内壁の汚れ・経年劣化 | 新品仮定 | 小 | 新品評価なら無視可 |
物理的根拠:
diffuse BSDF は 完全 Lambertian(cos θ で散乱)を仮定変化が「形」に効く機序:
実装方法:
roughconductor か roughdielectric を diffuse と混合(blendbsdf)期待効果:
物理的根拠:
変化が「形」に効く機序:
実装方法:
configs/scene_baseline.yaml の printer_white.reflectance を 0.85 → 0.89 に変更期待効果:
物理的根拠:
実装方法:
configs/scene_baseline.yaml の max_depth を 8 → 16(または 12)期待効果:
3 候補は 物理的に独立 なので組み合わせて試せる:
| 組み合わせ | 期待 |
|---|---|
| A1 + A8 + A9 | 全部入り.最大改善を狙う.レンダ時間 約 17 分 |
| A8 + A9 | 既存方針の延長.低コスト.大幅改善は期待しにくい |
| A1 単独 | 「形」改善の最大候補単独.BSDF 実装が必要 |
| ユーザー認識(2026-06-02 議論) | 私の見立て | 差分 |
|---|---|---|
| 「LED 配光が一番影響」 | A2/A3 = 6 位(影響度 小〜中) | TECH_09 でデータシート Lambertian 整合済みを踏まえて優先度低下 |
| 「筐体の反射率」 | A8 = 2 位 | 賛成.物理整合点 R=0.89 への調整は次の試行候補 |
| 「反射回数」 | A9 = 3 位 | 賛成.新方針下で再評価の価値あり |
| ─ | A1 内壁の非 Lambertian 性が最有力(新規追加) | 私からの追加提案.完全 Lambertian は理想化しすぎ |
以下は明示的に 本ドキュメントの優先度から除外 した:
| 候補 | 除外理由 |
|---|---|
| C1〜C4(タイプ II 構造的差異) | TECH_08 で「白板撮影では許容」と判断済.舌模型評価時に再考 |
| B1 筐体内部の幾何精度 | 検証コスト高(実機 3D スキャン等が必要).他の候補を試した後の最終手段 |
| A2/A3 LED 配光の個体差 | データシート Lambertian 整合済(TECH_09).実物の個体差ばらつきは実測ゴニオフォトメータが必要で高コスト |
| E1/E2 環境・運用系 | 新品撮影・通常室温で影響軽微 |
候補リストで A9「max_depth 8 → 16+」 を 5 値スイープ {8, 12, 16, 20, 28} で検証したところ,数値指標は実機方向に単調改善するが「形」は完全に不変であることが確定した.均一化フィルタとして働くが空間再配分は起こさない.
scripts/sweep_max_depth.py で configs/scene_baseline.yaml の render.max_depth のみを書き換え → sm-render → sm-evaluate (configs/eval_baseline_dng_target.yaml).約 85 分.scripts/build_max_depth_panel.py で 1×5 輝度マップ + 収束カーブ生成.追加で「shared vs independent スケール 2 段比較」(max_depth_sweep_shape.png) と「mean=1 正規化」(max_depth_sweep_relative.png) で形の不変性を視覚化.| max_depth | 理論累積 R^n | CoV | 勾配% | C/P | 動径 min/max |
|---|---|---|---|---|---|
| 8 | 72.7% | 0.1817 | 24.01 | 1.316 | 0.628 |
| 12 | 85.8% | 0.1651 | 21.35 | 1.272 | 0.671 |
| 16 | 92.6% | 0.1604 | 20.59 | 1.259 | 0.683 |
| 20 | 96.1% | 0.1589 | 20.35 | 1.256 | 0.687 |
| 28 | 98.7% | 0.1583 | 20.24 | 1.254 | 0.689 |
| 実機 TARGET | — | 0.0695 | 8.35 | 1.091 | 0.860 |
| 指標 | 縮小率 = (d8 − d28) / (d8 − TARGET) |
|---|---|
| CoV | 20.9% |
| 勾配 | 24.1% |
| C/P | 27.6% |
| 動径 min/max | 26.3% |
実用的な収束は d=16 で達成(d=16 → 28 で CoV 1.3% のみ動く).理論累積より早く収束.これは 「直接光と初期反射が支配的,後段の累積はわずかな ambient しか足さない」 という物理的直感と整合.
3 種類のパネル全てで 形は完全に不変:
多重反射の累積は 空間的にほぼ均一な ambient 成分として働く.これを足すと:
つまり多重反射は 均一化フィルタとして作用するが,「LED が下にしかなく評価板の中央〜上端は内壁経由でしか光が届かない」という 配置と幾何に由来する非対称性は除去できない.これは TEST_03 の主張「Step 8-1〜8-7 で形は全く変わっていない」と整合.max_depth スイープも同じパターン.
ユーザー仮説「max_depth を増やすべき(最終 bounce 寄与が 0.01 を下回るまで)」は 方向性として完全に正しい:
ユーザーの「形は変わっていない」観察も視覚的・物理的に正確.均一化フィルタ系の改善は数値には効くが形には効かない原則が再確認された.
注記 (2026-06-03): 本検証で用いた形状指標(CoV / 勾配 / C/P / 動径 min/max)は 形を構造的に区別できない(TECH_11 形状指標の見直し 参照).本判断は「数値の絶対量」レベルの結論であり,「形が変わったか」は新指標(angular_ratio / SSIM / 重心 / PCA)で再評価する必要がある.A9 については視覚比較(独立スケール・mean=1 正規化パネル)でも「形は全く変わらない」が確認されており,新指標での再評価の優先度は低い.
候補リストで当時 🥇 1 位だった A1「内壁の非 Lambertian 性(光沢成分)」 を Step 8-14 候補 β として 3×3 グリッド感度分析で検証したところ,**どの組み合わせも実機方向に作用しない(むしろ悪化)**ことが確定した.
src/sm_tias_lightsim/scene/schema.py に RoughConductorBSDFConfig (alpha, distribution) と BlendBSDFConfig (weight + components×2,forward reference + model_rebuild()) を追加.MaterialConfig Union を拡張.後方互換は既存 scene_baseline.yaml のスモークテストで確認src/sm_tias_lightsim/scene/materials.py の _build_bsdf_dict を再帰ヘルパとして切り出し.blendbsdf のネスト対応configs/scene_baseline_blend.yaml を作成.printer_white のみ blendbsdf (diffuse R=0.85 + roughconductor material="none") に置換scripts/sweep_blend_bsdf.py で weight ∈ {0.05, 0.15, 0.30} × α ∈ {0.1, 0.3, 0.6} の 9 ジョブを順次 sm-render + sm-evaluate.各 8.4 分 × 9 = 75.5 分.eval は configs/eval_baseline_dng_target.yaml (linear + mean アンカー 207.82)scripts/build_blend_bsdf_panel.py で 3×3 輝度マップ(shared vmin/vmax 1%/99% percentile)+ 数値表 PNG を生成ベースライン純 diffuse (w=0): 0.1826 / 24.65 / 1.327 / 0.615 実機 TARGET: 0.0695 / 8.35 / 1.091 / 0.860
| weight \ α | 0.1(鋭い) | 0.3(中) | 0.6(粗い) |
|---|---|---|---|
| 0.05 | 0.192 / 24.8 / 1.33 / 0.62 | 0.189 / 24.9 / 1.33 / 0.62 | 0.185 / 24.4 / 1.32 / 0.62 ← 最良 |
| 0.15 | 0.213 / 26.0 / 1.35 / 0.61 | 0.204 / 26.6 / 1.36 / 0.60 | 0.193 / 25.5 / 1.34 / 0.61 |
| 0.30 | 0.243 / 26.8 / 1.37 / 0.59 ← 最悪 CoV | 0.227 / 29.0 / 1.41 / 0.57 ← 最悪 形 | 0.205 / 27.0 / 1.37 / 0.59 |
| 軸 | 効果 |
|---|---|
| weight ↑(光沢強化) | CoV / 勾配 / C/P すべて 単調悪化(不均一性増) |
| α ↑(粗さ大) | weight 固定で わずか改善(diffuse に近づくため) |
| 動径 min/max | specular 強化で 0.615 → 0.570 へ低下(不均一さが目立つ) |
output/_slide_panels/blend_bsdf_sweep.png)純 Lambertian は cos 重み散乱で 多重反射の均一化作用が最大.specular 成分が混ざると:
3D プリンタ白フィラメントは 完全 Lambertian として扱うのが実機挙動に近い近似 だと判明(TECH_09 の LED Lambertian 整合性と並ぶ「物理モデル妥当性の裏付け」).
blendbsdf + roughconductor のサポートが入った.今後の物理モデル試行で再利用可能roughconductor の material="none" 設定は eta=k=1 の完全反射体として機能する(Mitsuba 3 仕様).感度分析用途で扱いやすい注記 (2026-06-03): 本検証で用いた形状指標(CoV / 勾配 / C/P / 動径 min/max)は 形を構造的に区別できない(TECH_11 形状指標の見直し 参照).本判断は「数値の絶対量」レベルの結論であり,「形が変わったか」は新指標(angular_ratio / SSIM / 重心 / PCA)で再評価する必要がある.3D パネル視覚比較でも「w=0.30 行で下端中央に 2 つの明るいスポット」が出現しており,A1 は実機の中央ピーク楕円パターンには近づかないことが定性的にも確認されている.
候補リスト 4 位の D1「シミュ ROI と実機 ROI の物理的整合」 を Step 8-14 候補 γ として 事前検証したところ,両者は物理的に同じ領域を見ていることが確認できた.設定変更は一切行わず,既存設定の数値検証のみで結論が出た.
configs/scene_baseline.yaml の orthographic 設定(position (0,0,-50), ortho_scale (50, 52), film 512×512)と configs/eval_baseline_linear.yaml の ROI (24, 37, 464, 450) から,評価板中心基準で X∈[-45.31, +45.31] mm, Y∈[-46.92, +44.48] mm(幅 90.63×91.41 mm) と算出configs/meshes/照明ムラ補正ボード.stl を trimesh で計測:X=99 mm × Y=102 mm(既知値と一致)reference_measurement/MiniTIAS_20260408_144434/MiniTIAS_20260408_144434.png(2448×3264)から評価板の縦方向黒縁を検出(H=1560 px).評価板 Y=102 mm より 物理分解能 0.0654 mm/px を確定(ピクセルアスペクト比 1:1 仮定で X 方向も同じ)roi_config.json の ROI (539, 1015, 1400, 1409) から,評価板中心基準で X∈[-44.79, +46.75] mm, Y∈[-47.53, +44.59] mm(幅 91.54×92.13 mm) と算出(画像 y→物理 Y は符号反転)| 項目 | シミュ ROI | 実機 ROI | 差 |
|---|---|---|---|
| X 幅 | 90.63 mm | 91.54 mm | -0.91 mm (1.0%) |
| Y 高さ | 91.41 mm | 92.13 mm | -0.72 mm (0.8%) |
| X 中心 | 0 mm | +0.98 mm | +0.98 mm |
| Y 中心(符号反転後) | -1.22 mm | -1.47 mm | -0.25 mm |
→ 物理サイズは 1% 以内・中心位置は 1 mm 以内で一致.3 列パネル output/_slide_panels/roi_alignment_check.png(①実機画像 + 評価板境界・実機 ROI / ②シミュ輝度マップ + 評価板境界・シミュ ROI / ③物理座標系で両者を重ね合わせ)でも視覚的に確認.
scripts/select_white_board.py GUI 選択 → シミュ側 ortho_scale 設計値)は 物理整合性を意識して ROI を揃えていたことが裏付けられた評価板は実機画像中央から 下方向に約 4.2 mm(65 px)オフセットして配置されている(カメラ取付位置 vs 評価板取付位置のミリ精度差)が,実機 ROI もそのオフセットに沿って選択されているため,物理領域としては板中心とほぼ整合している.
D1(γ)が「クリア」と確定したため,残る選択肢は以下:
| Step 8-14 候補 | 内容 | 状態 | 推奨度 |
|---|---|---|---|
| ✓ 2026-06-03 完了(数値改善のみクリア — 形不変) | — | ||
| Step 8-14 候補 α 後半 | A8 反射率 R=0.85 → 0.89(d=16 ベース)(低コスト・数値改善目的) | 未実施 | ⭐⭐ |
| ✓ 2026-06-02 完了(クリア — 実機方向に作用しない) | — | ||
| ✓ 2026-06-02 完了(クリア — 物理差 < 1%) | — | ||
| β/α 前半クリアで意義消失 | — | ||
| Step 8-14 候補 ε(新規) | B1 筐体幾何精度の検討(形改善の最後の砦) | 未実施 | ⭐⭐⭐ |
| Step 8-14 候補 ζ(新規) | LED 軸方向のティルト仮説(評価板中央向きに数度傾ける) | 未実施 | ⭐⭐ |
→ A1/A9 がともに「形改善ではない」と確定したため,残る残差 (CoV 0.158 vs TARGET 0.069) の 形改善は構造的に光分布を再配分する要素 (B1 / ζ) が本筋.均一化フィルタ系 (A8) は数値改善のみ期待.