# 後側ロフト変形 w=1.4 実験 (Rear Housing Loft Deformation Experiment)

## 背景と目的 (Background & Purpose)

[TEST_09](TEST_09_照明分布の形不一致の原因切り分け.md) で光源側・材料側のレバーが出尽くし，実機との形の不一致（peak/mean の平らさ・灯間 NCC の非対称な相補性）の残差は **B1 筐体幾何に確定** した．本実験では，実機再印刷の前段として **後側筐体のロフト形状を変形させた STL** をシミュレーションで評価し，筐体幾何の変更が照明分布の形に与える影響を定量化する．

## 変形メッシュの事実記録 (Deformed Mesh Facts)

### 作成情報 (Creation Info)

| 項目 | 内容 |
| --- | --- |
| ファイル | `configs/meshes/後側_w1p4.stl` |
| 作成日 | 2026-07-26 |
| 作成方法 | Fusion 360 でユーザーが手動編集し STL エクスポート |
| 変更内容 | ロフトのパラメータを **0.5 → 1.4** に変更（`w1p4` = weight 1.4 の意） |
| 元メッシュ | `configs/meshes/後側.stl`（ロフトパラメータ 0.5） |

### メッシュ解析による差分の定量化 (Mesh Diff Analysis)

trimesh によるサンプリング比較（元メッシュ表面 40 万点への最近傍距離）で変形箇所を特定した．

| 項目 | 後側.stl (w=0.5) | 後側_w1p4.stl (w=1.4) | 差 |
| --- | --- | --- | --- |
| bounds (mm) | [-75, -80, -150]〜[75, 50, -55] | 同一 | なし |
| faces | 31,034 | 116,132 | — |
| watertight | true | true | — |
| 体積 (mm³) | 129,702 | 137,834 | **+6.3%** |
| 表面積 (mm²) | 89,141 | 94,341 | +5.8% |

変形の空間分布:

- 変形は **Z = -150〜-86 の下側フレア部（スマホ側の絞り込み区間）に集中**．Z ≥ -70（LED 基板・評価板側）は不変
- 壁は **外側に膨らむ方向**（キャビティが広がる方向）に移動．最大偏差 約 10 mm
- 断面比較の例（Z = -130）: x 範囲 ±68.6 → ±70.5 mm，y 下端 -43.1 → -58.4 mm（-Y 側の膨らみが最大）
- 断面比較の例（Z = -110）: x 範囲 ±72.4 → ±73.9 mm，y 下端 -65.2 → -75.3 mm

※ ロフト重み増加によりフレア部の壁面が直線的なテーパーから外側に張り出した曲面になった，と解釈できる（Fusion のロフト断面遷移の重み変更と整合）．

## シミュレーション計画 (Simulation Plan)

### 材料・光源条件の選定（確定: blend w=0.05, α=0.1）

TEST_09 の結果パネルを見比べて，材料条件は **blendbsdf(diffuse 0.85 + roughconductor ggx α=0.1), weight=0.05** に確定した（ユーザー選定）．選定意図:

- 純 diffuse（Lambertian）壁は多重反射が光源・幾何の情報を洗い流すため（TEST_09 §追加観察），筐体変形の効果が相補性に出にくい．弱い光沢を入れることで LED 位置・幾何の効きを残す
- w=0.05 は単灯の形が diffuse 基準と同等（peak/mean 1.604 vs 1.585，NCC 0.717 vs 0.721）＝形を壊さない範囲で最弱の光沢
- 光源は area（Lambertian 面光源）のまま，spp=1024・max_depth=16 の TEST_09 統一条件を踏襲

### 実行構成（5 ジョブ）

筐体幾何の効果を測る到達目標アンカーは **実機の灯間 NCC = 0.85 / 0.61 / 0.41（非対称な相補性）**（TEST_09 実験5 で初定量化．シミュ diffuse は 0.96，w0.05_a0.1 は 0.954〜0.959 で 3 灯ほぼ同形）．

| ジョブ | シーン config | 出力 | 比較基準（元メッシュ側） |
| --- | --- | --- | --- |
| 単灯 bottom | `configs/_tmp_loft_w1p4/bottom.yaml` | `output/loft_w1p4/bottom/` | `output/blend_bottom/w0.05_a0.1/`（既存） |
| 単灯 left | `configs/_tmp_loft_w1p4/left.yaml` | `output/loft_w1p4/left/` | `output/blend_bottom/left_w0.05_a0.1/`（既存） |
| 単灯 right | `configs/_tmp_loft_w1p4/right.yaml` | `output/loft_w1p4/right/` | `output/blend_bottom/right_w0.05_a0.1/`（既存） |
| 全灯 (w1p4) | `configs/_tmp_loft_w1p4/full.yaml` | `output/loft_w1p4/full/` | 下記 full_base |
| 全灯 (元メッシュ基準) | `configs/_tmp_loft_w1p4/full_base.yaml` | `output/loft_w1p4/full_base/` | 新規（全灯 blend は修正後 LED では未実施のため基準も新規レンダ） |

単灯/全灯とも `scene_baseline.yaml` 系の LED 配置（bottom 6 灯／全 18 灯）で，差分は後側メッシュのみ（`後側.stl` → `後側_w1p4.stl`）．

### 判定基準

- **相補性**: 灯間 NCC が w0.05_a0.1 基準（0.954〜0.959）から実機の非対称（0.85/0.61/0.41）方向へ動くか
- **平らさ**: 単灯 peak/mean が 1.60 前後 → 実機 1.22 方向へ動くか（ROI 揃え，`scripts/build_blend_bottom_panel.py` 系の形指標）
- **全体均一性**: 全灯どうし（full vs full_base）で CoV・形状指標を比較

## 結果 (Results)

実行日: 2026-07-26．全 7 レンダ（単灯 3 + 全灯 2，途中 full 系 2 本は相対メッシュパス起因の失敗後に絶対パス修正で再実行）．
数値は `output/loft_w1p4/summary.csv`，比較図は `output/_slide_panels/loft_w1p4_shape_roi.png`．

### 単灯の形（ROI 揃え）

| 灯 | peak/mean (基準 → w1p4) | top/bot (基準 → w1p4) | NCC 対実機 (基準 → w1p4) | 実機 |
| --- | --- | --- | --- | --- |
| bottom | 1.672 → **1.508** | 0.872 → 0.887 | 0.713 → 0.701 | p/m 1.218, t/b 0.931 |
| left | 1.613 → 1.584 | 0.875 → 0.878 | 0.664 → 0.640 | p/m 1.267, t/b 0.922 |
| right | 1.546 → 1.564 | 0.890 → 0.891 | 0.789 → 0.777 | p/m 1.201, t/b 0.946 |

### 灯間 NCC（相補性，mean 正規化・フル frame）

| ペア | 基準 (元メッシュ) | w1p4 | 実機 |
| --- | --- | --- | --- |
| bottom vs left | 0.959 | 0.962 | **0.853** |
| bottom vs right | 0.961 | 0.963 | **0.606** |
| left vs right | 0.954 | 0.956 | **0.414** |

### 全灯（18 灯，`eval_baseline_dng_target_shape.yaml` ＋ 形指標）

実機全灯マップは `reference_measurement/quantitative/MiniTIAS_QM_20260601_124500.dng`（Step 8-13 正規ターゲット・暗闇撮影）から単灯と同一手順（linear raw + LSC 順適用 + Rec.709 + REAL_ROI）で生成し `lightsim/luminance_maps/full_MiniTIAS_QM_20260601_124500.npy` に保存（ROI mean=207.82・CoV=0.0695 で Step 8-13 記録値と一致確認済み）．

| 指標 | 基準 (full_base) | w1p4 (full) | 実機 |
| --- | --- | --- | --- |
| CoV | 0.1717 | 0.1701 | 0.0695 |
| C/P ratio | 1.328 | 1.326 | 1.091 |
| gradient [%] | 24.72 | 24.61 | 8.35 |
| angular_ratio | 0.352 | 0.345 | — |
| peak/mean (ROI) | 1.491 | 1.486 | **1.155** |
| top/bot (ROI) | 0.878 | 0.885 | **0.919** |
| NCC 対実機 (ROI) | 0.744 | 0.737 | 1.0 |
| 相互 NCC (ROI, mean 正規化) | 0.920 | — | — |

### 読み取れること

1. **bottom 単灯は明確に平ら化**（peak/mean 1.672 → 1.508，縦勾配も実機方向）＝**筐体幾何レバーが形を動かせることの初実証**．ロフト重み増でフレア部キャビティが広がり，bottom 灯の光の混合が増えた効果と整合する．
2. しかし **left / right はほぼ不動**で，NCC 対実機は 3 灯とも微減（-0.01〜-0.02）．
3. **相補性（灯間 NCC）は全く動かず**（0.95x → 0.96x でむしろ微増＝さらに同形化）．対称なキャビティ拡大は「混ぜる力」を強めるだけで，実機の非対称相補性（0.85/0.61/0.41）には近づかない．
4. 全灯の均一性指標はほぼ不変（CoV -0.9%，NCC 対実機 0.744→0.737）＝このロフト変形は**全灯運用での均一性・形をほぼ変えない**．実機全灯（peak/mean 1.155・CoV 0.0695）との差は依然大きい．

### 拡張 — 全灯ロフト重みスイープ（w=2.0, 4.0 追加）

w=1.4 に加えユーザーがロフトパラメータ 2.0 / 4.0 版を作成（`後側_{w2p0,w4p0}.stl`）し，全灯のみ同条件でスイープを拡張した（2026-07-28）．メッシュ事実:

- `後側_w2p0.stl`: 体積 +13.5%・最大偏差 20 mm・外形 bounds は元と同一．watertight
- `後側_w4p0.stl`: 体積 +65.9%・最大偏差 61 mm．**Z 下方向に 43 mm はみ出し（Z=-150 → -192.8）てスマホ面（Z=-154.4）を越える**＝シミュ上はスマホ・ホルダのメッシュと交差した状態（レンダは正常動作）．watertight

| ロフト重み | CoV | peak/mean (ROI) | top/bot (ROI) | NCC 対実機 (ROI) |
| --- | --- | --- | --- | --- |
| 0.5（元） | 0.1717 | 1.491 | 0.878 | 0.744 |
| 1.4 | 0.1701 | 1.486 | 0.885 | 0.737 |
| 2.0 | 0.1709 | 1.502 | 0.884 | 0.737 |
| 4.0 | 0.1772 | 1.558 | 0.867 | 0.747 |
| **実機（w0.5）** | **0.0695** | **1.155** | **0.919** | 1.0 |

比較図: `output/_slide_panels/loft_full_sweep_shape_roi.png`（config: `configs/_tmp_loft_w1p4/{w2p0,w4p0}_full.yaml`，出力: `output/loft_w1p4/full_{w2p0,w4p0}/`）．

均一性の絶対比較用に，**各マップの最大値を 1.0 とした相対輝度・全セル共通スケール**版も生成した（`output/_slide_panels/loft_full_sweep_relative.png`．シミュ 4 条件のみの 1×4 ＋右カラーバー構成．完全均一なら全面 1.0．max はシミュ MC ノイズの外れ画素対策として共通解像度への resize 後に取る）:

| ロフト重み | mean/max | min/max |
| --- | --- | --- |
| 0.5（元） | 0.671 | 0.241 |
| 1.4 | 0.673 | 0.229 |
| 2.0 | 0.666 | 0.238 |
| 4.0 | 0.642 | 0.216 |
| **実機（w0.5）** | **0.899** | **0.660** |

相対輝度で見てもシミュ 4 条件は mean/max 0.64〜0.67 で横ばい（w4.0 のみ微悪化）であり，実機の 0.899 との差が均一性の残差として一目で分かる．

読み取り: **ロフト重みは 0.5→4.0（体積 +66%・壁の張り出し 61 mm）まで振っても全灯の分布をほぼ動かさない**．全指標が誤差レベルで横ばいし，最大の w=4.0 でわずかに悪化（CoV +3%・peak/mean +4%）するのみ．単灯 bottom で見えた平ら化（1.672→1.508）も全灯合成では 3 灯の寄与が混ざって消える．**ロフト（フレア部の対称な膨らみ）は全灯運用の均一性・形に対して実質的に不感なパラメータ**であり，実機側でこの部位を変えても撮影結果はほぼ変わらないという予測になる（w=1.4 実機測定 `MiniTIAS_QM_20260726_183416` の検証ポイント）．

### 解釈と次への示唆

- ロフト重み（対称なフレア拡大）は「bottom の平ら化」には効くが，**形の残差の本丸（非対称相補性）を動かすレバーではない**．TEST_09 実験5 の結論「等方な変更では 3 ペアを一様にしか動かせない」は，**等方な材料変更だけでなく対称な幾何変更にも当てはまる**ことが示された．
- 実機の非対称相補性を再現するには，**灯ごとに光路が変わる非対称な幾何**（開口・仕切り・カバー形状の左右非対称，箱の閉じ方の違い）を検討する必要がある．TEST_09 実験4（幾何の漏れ点検）の優先度が改めて裏付けられた．
- 印刷判断の観点では，本変形は全灯均一性を悪化させない（CoV 微改善）ため**印刷して実機検証するリスクは低い**が，シミュ上の期待効果も小さい．

## 参照 (References)

- [TEST_09_照明分布の形不一致の原因切り分け](TEST_09_照明分布の形不一致の原因切り分け.md): 幾何確定までの切り分けと灯間 NCC アンカー
- [TEST_02_シミュレーション実行記録](TEST_02_シミュレーション実行記録.md): 出力索引・再現コマンド
- [SPEC_03_基準設計の物理構成](../04_SPEC/SPEC_03_基準設計の物理構成.md): 基準筐体の物理仕様
