⚠️ BEFORE FIX 注記: 本索引のうち面光源スケール軸バグ修正(TEST_08)以前に生成された出力(
baseline/baseline_v3_leds/led_group_sanity/max_depth_sweep/reflectance_sweep/sweep_reflectance/blend_sweep/led_distribution_sweepと対応する_slide_panels図)は,全 LED が 2m ストリップ化したバグ込みの結果.実験記録として保持するが数値はそのまま信用しないこと.修正後の出力はsanity_fix_1024/baseline_fix_1024/depth_bottom/refl_bottom/distrib_bottom,図は*_roi.png(修正前を明記復元した版は*_buggy.png).
本ドキュメントは output/ 配下に蓄積されたシミュレーション・評価結果ディレクトリを 「何の試行か」が分かる形に索引化 したものである.output/ は .gitignore で追跡対象外(容量・再生成可能性のため)であり,手元の output/ が無くてもこのドキュメントだけ読めば「過去にどんな試行があったか・どう再現するか」が辿れることを目的とする.
関連:
.gitignore の output/ 行).git に乗せない.README.md を置くより,本ドキュメントに一覧化する方が「俯瞰しやすい」.TEST_01 や SPEC_03 から参照されている,意味のある実行結果:
| ディレクトリ | 関連 Step | シーン設定 | 評価設定 | 主要指標 (mean / CoV / 勾配% / C/P) | 用途・参照元 |
|---|---|---|---|---|---|
output/baseline/ | 8-1 確定基準(注: d=8 時代の古い結果) | 当時の configs/scene_baseline.yaml (R=0.85, d=8, spp=1024) | — (レンダのみ) | luminance.npy + render_uint8.png | 生成時刻 2026-05-18 で当時の d=8 で計算.2026-06-03 に scene_baseline.yaml が d=16 へ更新済のため、現状の設定とは不整合.必要時は新基準 (d=16) で再生成すべき |
output/baseline_linear_npy/ | 8-1 比較基準 | (同上 luminance.npy 入力) | configs/eval_baseline_linear.yaml (OETF off) | 152.02 / 0.1826 / 24.65 / 1.327 | TEST_01 Step 8-7 で size 1.5×1.5 と比較する基準.輝度マップ追跡 (TEST_03) のパネル左下 |
output/eval_oetf_r085/ | 8-3 OETF 後 | (同上 luminance.npy 入力) | configs/eval_baseline.yaml (OETF on) | 146.71 / 0.0907 / 11.16 / 1.126 | OETF 適用効果の代表結果.輝度マップ追跡 (TEST_03) パネル右上 |
output/emitter_real/ | 8-7 検証 | configs/scene_baseline_emitter_real.yaml (size 1.5×1.5, radiance 12227, Φe 保存) | configs/eval_baseline_linear.yaml (OETF off) | 429.99 / 0.1863 / 26.21 / 1.355 | 点光源近似検証.形状指標 ≈ baseline_linear_npy で実証.輝度マップ追跡 (TEST_03) パネル右下 |
output/sweep_reflectance/r075/ 〜 r092/ | 8-2 反射率スイープ | configs/scene_baseline.yaml の printer_white.reflectance を 0.75 / 0.80 / 0.85 / 0.90 / 0.92 に振った 5 種 (d=12, spp=256) | linear 評価 | → 下表 sweep_summary.csv | TEST_01 / SPEC_03 の反射率スイープ表の元データ |
output/sweep_reflectance/sweep_summary.csv | 8-2 | — | — | 5 反射率の評価結果まとめ | 反射率スイープのサマリ表 |
output/baseline_v3_leds/ | 8-9 LED 位置正確化 | configs/scene_baseline.yaml(Fusion STL から抽出した新 LED 位置で更新済み, R=0.85, d=8, spp=1024) | configs/eval_baseline_linear.yaml (linear + normalization) | 146.71 / 0.1815 / 24.13 / 1.318 | TEST_01 Step 8-9 検証.輝度マップ追跡 (TEST_03) パネル右下(α=0.873434) |
output/baseline_spot/ | 8-10 LED spot 配光 | configs/scene_baseline_spot.yaml(18 LED を spot に変換, cutoff=90/beam=30, I_0=0.02678 W/sr, flux 保存) | configs/eval_baseline_linear.yaml (linear + normalization) | 146.71 / 0.1887 / 27.69 / 1.383 | TEST_01 Step 8-10 検証.X 方向の対称性が部分改善(目視).α=12.77 で mean が約 14.6× 暗くなる |
output/baseline_datasheet/ | 8-11 データシート従順版 | configs/scene_baseline_datasheet.yaml(spot cutoff=85/beam=26.72, I_0=0.0220 W/sr,反射率 0.89, データシート規格値準拠) | configs/eval_baseline_linear.yaml (linear + normalization) | 146.71 / 0.1829 / 26.79 / 1.366 | TEST_01 Step 8-11 検証.データシート準拠は物理正確性のみ達成,形は LSC が依然必要.α=14.30 |
output/perspective_path_hi/ | 8-12 Helmholtz 検証 | configs/scene_baseline_perspective_path.yaml(perspective fov=90°, path, scalar_rgb, spp=4096) | (評価なし,検証目的) | mean=160, bot/top=2.035 | TEST_01 Step 8-12 検証.方向独立性の基準(バックワード) |
output/perspective_ptracer_hi/ | 8-12 Helmholtz 検証 | configs/scene_baseline_perspective_ptracer.yaml(perspective fov=90°, ptracer, scalar_rgb, spp=4096) | (評価なし,検証目的) | mean=319, bot/top=2.006 | TEST_01 Step 8-12 検証.方向独立性の対象(フォワード).形は path と一致(bot/top 比 誤差 1.4%) |
output/blend_sweep/w{w}_a{a}/ (9 ディレクトリ) | 8-14 候補 β | configs/scene_baseline_blend.yaml を scripts/sweep_blend_bsdf.py で printer_white.weight ∈ {0.05, 0.15, 0.30} × components[1].alpha ∈ {0.1, 0.3, 0.6} に書き換えた 9 種 (R=0.85 + roughconductor material=none, d=8, spp=1024) | configs/eval_baseline_dng_target.yaml (linear + mean アンカー 207.82) | 9 ジョブ分の CoV/勾配 — TEST_01 § Step 8-14 候補 β 結果表 参照 | TEST_01 Step 8-14 候補 β 検証.A1 が実機方向に作用しないことを確定 |
output/blend_sweep/summary.csv | 8-14 候補 β | — | — | 9 ジョブ集約 CSV (weight, alpha, elapsed_s + 12 指標カラム) | scripts/sweep_blend_bsdf.py の集約出力.scripts/build_blend_bsdf_panel.py の入力 |
output/_slide_panels/blend_bsdf_sweep.png | 8-14 候補 β | — | — | 3×3 輝度マップ比較パネル (shared vmin/vmax 1%/99% percentile) | TEST_01 Step 8-14 β「形」追跡用 |
output/_slide_panels/blend_bsdf_metrics.png | 8-14 候補 β | — | — | 9 ジョブの数値表 (CoV/勾配/C/P/動径 min/max) | TEST_01 Step 8-14 β 数値追跡用 |
output/led_group_sanity/{bottom,right,left}/ | LED sanity check | configs/scene_baseline.yaml から lights を各 LED 基板(6 個ずつ)のみに絞った一時 YAML × 3 種 (d=8, spp=1024) | (評価なし,目視確認) | mean: bottom=98.82 / right=47.10 / left=47.08 | TEST_07 LED グループ別動作確認 — 方向性・対称性・線形性の sanity check |
output/_slide_panels/led_group_sanity{,_focus,_right_left}.png | LED sanity check | — | — | 1×3 / 1×2 / 6 列の比較パネル | TEST_07 視覚確認用 |
output/max_depth_sweep/d{8,12,16,20,28}/ (5 ディレクトリ) | 8-14 候補 α 前半 | configs/scene_baseline.yaml を scripts/sweep_max_depth.py で render.max_depth のみ書き換えた 5 種 (R=0.85, spp=1024) | configs/eval_baseline_dng_target.yaml (linear + mean アンカー 207.82) | d=28 で CoV=0.1583, 勾配=20.24%, C/P=1.254, 動径 min/max=0.689 — TEST_01 § Step 8-14 候補 α 前半 結果表 参照 | TEST_01 Step 8-14 候補 α 前半 検証.A9 は数値改善のみで形改善ではないことを確定.d=16 が新キャリブベースライン候補 |
output/max_depth_sweep/summary.csv | 8-14 候補 α 前半 | — | — | 5 ジョブ集約 CSV (max_depth, elapsed_s + 12 指標カラム) | scripts/sweep_max_depth.py の集約出力.scripts/build_max_depth_panel.py の入力 |
output/_slide_panels/max_depth_sweep.png | 8-14 候補 α 前半 | — | — | 1×5 輝度マップ比較パネル (shared vmin/vmax) | TEST_01 数値追跡用 |
output/_slide_panels/max_depth_convergence.png | 8-14 候補 α 前半 | — | — | 収束カーブ 2×2 (CoV/勾配/C/P/動径 min/max vs max_depth) | TEST_01 収束観察用 |
output/_slide_panels/max_depth_sweep_shape.png | 8-14 候補 α 前半 | — | — | 上下 2 段比較 (上=共有スケール / 下=独立スケール 自己 contrast 最大化) | TEST_01 「形」追跡用 — 形不変の視覚証拠 |
output/_slide_panels/max_depth_sweep_relative.png | 8-14 候補 α 前半 | — | — | 1×5 mean=1 正規化 (相対輝度 1.0=画像平均) | TEST_01 ambient 化観察用 |
output/reflectance_sweep/r{075,080,085,089,092}/ (5 ディレクトリ) | 8-14 候補 α 後半 | configs/scene_baseline.yaml (d=16 新基準) を scripts/sweep_reflectance.py で materials.printer_white.reflectance のみ {0.75, 0.80, 0.85, 0.89, 0.92} に書き換えた 5 種 (spp=1024) | configs/eval_baseline_dng_target_shape.yaml (新指標 5 つ含む) | R=0.92 で CoV=0.1424, 勾配=17.72%, angular_ratio=0.4938 — TEST_01 § Step 8-14 候補 α 後半 結果表 参照 | TEST_01 Step 8-14 候補 α 後半 検証.「数値の偽物の一致」を初の定量実証.A8 数値改善のみクリア.新指標 (shape_metrics) を初投入したスイープ |
output/reflectance_sweep/summary.csv | 8-14 候補 α 後半 | — | — | 5 ジョブ集約 CSV (reflectance + 既存 12 指標 + 新 12 指標) | scripts/sweep_reflectance.py の集約出力 |
output/_slide_panels/reflectance_sweep.png | 8-14 候補 α 後半 | — | — | 2 段比較パネル (上=共有スケール / 下=独立スケール) | TEST_01 視覚追跡用 |
output/_slide_panels/reflectance_convergence.png | 8-14 候補 α 後半 | — | — | 既存 4 指標カーブ vs R | TEST_01 数値追跡用 |
output/_slide_panels/reflectance_shape_metrics.png | 8-14 候補 α 後半 | — | — | 新指標カーブ (centroid_y / angular_ratio / eccentricity) vs R | TEST_01 「形」追跡用 — angular_ratio が単調増加 = 形は実機方向と逆を視覚的に確認 |
output/led_distribution_sweep/c{030,060,090,120,150}/ (5 ディレクトリ) | 8-14 候補 ξ | configs/scene_baseline_spot.yaml (Step 8-10 で作成) をテンプレに scripts/sweep_led_distribution.py で全 spot light の cutoff_angle を {30, 60, 90, 120, 150}° に,beam_width = cutoff/3 で連動,max_depth を 16 に更新 (R=0.85, spp=1024) | configs/eval_baseline_dng_target_shape.yaml (新指標 5 つ含む) | c090 で CoV=0.165, angular_ratio=0.352; c030 で angular_ratio=0.338 — TEST_01 § Step 8-14 候補 ξ 結果表 参照 | TEST_01 Step 8-14 候補 ξ 検証.配光モデルが形改善の本物の候補として初実証.area→spot で angular_ratio が 0.45→0.34 で 25% 低下 |
output/led_distribution_sweep/summary.csv | 8-14 候補 ξ | — | — | 5 ジョブ集約 CSV (cutoff_angle, beam_width + 既存 12 + 新 12 指標) | scripts/sweep_led_distribution.py の集約出力 |
output/_slide_panels/led_distribution_{sweep,convergence,shape_metrics}.png | 8-14 候補 ξ | — | — | 輝度マップ 2 段 / 既存 4 指標カーブ / 新指標カーブ | TEST_01 「形」追跡 — angular_ratio が cutoff 30° → 150° でほぼ flat (0.338→0.356) を視覚確認.area→spot の遷移が本質と判明 |
| R | CoV | 勾配 % | C/P | mean | std |
|---|---|---|---|---|---|
| 0.75 | 0.2173 | 25.91 | 1.350 | 104.19 | 22.64 |
| 0.80 | 0.2034 | 24.00 | 1.316 | 137.00 | 27.87 |
| 0.85 | 0.1893 | 22.08 | 1.283 | 180.80 | 34.23 |
| 0.90 | 0.1753 | 20.15 | 1.252 | 239.60 | 42.00 |
| 0.92 | 0.1697 | 19.42 | 1.241 | 268.52 | 45.57 |
| 目的 | コマンド |
|---|---|
| baseline レンダ生成 | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline.yaml --output output/baseline/ |
| baseline (linear, OETF off) 評価 | uv run sm-evaluate --image output/baseline/luminance.npy --config configs/eval_baseline_linear.yaml --output output/baseline_linear_npy/ |
| baseline (OETF on) 評価 | uv run sm-evaluate --image output/baseline/render_uint8.png --config configs/eval_baseline.yaml --output output/eval_oetf_r085/ |
| emitter_real (size 1.5×1.5) レンダ生成 | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline_emitter_real.yaml --output output/emitter_real/ |
| emitter_real 評価 | uv run sm-evaluate --image output/emitter_real/luminance.npy --config configs/eval_baseline_linear.yaml --output output/emitter_real/ |
| 反射率スイープ全 5 点 | output/sweep_reflectance/run_sweep.py を参考に再実装.元スクリプトは削除推奨 (下記) のため要再構築 |
| 輝度マップ追跡パネル再生成 | uv run python scripts/build_luminance_evolution_panel.py |
| LED 位置を Fusion STL から再抽出 | uv run python scripts/extract_led_positions_from_stl.py configs/meshes/SmTIASv3.stl --output configs/leds_extracted.yaml(その後 scene_baseline.yaml の lights セクションを置換) |
| baseline_v3_leds レンダ生成 | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline.yaml --output output/baseline_v3_leds/ |
| baseline_v3_leds 評価 | uv run sm-evaluate --image output/baseline_v3_leds/luminance.npy --config configs/eval_baseline_linear.yaml --output output/baseline_v3_leds/ |
| baseline_spot レンダ生成 (Step 8-10) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline_spot.yaml --output output/baseline_spot/ |
| baseline_spot 評価 | uv run sm-evaluate --image output/baseline_spot/luminance.npy --config configs/eval_baseline_linear.yaml --output output/baseline_spot/ |
| baseline_datasheet レンダ生成 (Step 8-11) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline_datasheet.yaml --output output/baseline_datasheet/ |
| baseline_datasheet 評価 | uv run sm-evaluate --image output/baseline_datasheet/luminance.npy --config configs/eval_baseline_linear.yaml --output output/baseline_datasheet/ |
| perspective_path_hi レンダ (Step 8-12 検証) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline_perspective_path.yaml --output output/perspective_path_hi/ |
| perspective_ptracer_hi レンダ (Step 8-12 検証) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run sm-render --scene configs/scene_baseline_perspective_ptracer.yaml --output output/perspective_ptracer_hi/ |
| blend BSDF 3×3 スイープ (Step 8-14 β) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run python scripts/sweep_blend_bsdf.py (9 ジョブ × 約 8.4 分 = 75.5 分) |
| blend BSDF 比較パネル生成 | uv run python scripts/build_blend_bsdf_panel.py (要 output/blend_sweep/summary.csv + 各 luminance.npy) |
| LED グループ別 sanity check (TEST_07) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run python scripts/sanity_led_groups.py (3 ジョブ × 約 8.5 分 = 約 25 分) |
| LED sanity check 比較パネル生成 | uv run python scripts/build_led_group_sanity_panel.py (要 output/led_group_sanity/{bottom,right,left}/luminance.npy + output/baseline/luminance.npy) |
| max_depth 5 値スイープ (Step 8-14 α 前半) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run python scripts/sweep_max_depth.py (5 ジョブ × 8.5〜30 分 = 約 85 分) |
| max_depth 比較パネル生成 | uv run python scripts/build_max_depth_panel.py (1×5 輝度マップ + 2×2 収束カーブ.要 output/max_depth_sweep/summary.csv + 各 luminance.npy) |
| 反射率 5 値スイープ (Step 8-14 α 後半) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run python scripts/sweep_reflectance.py (5 ジョブ × 約 17 分 = 約 85 分) |
| 反射率比較パネル生成 | uv run python scripts/build_reflectance_panel.py (輝度マップ 2 段 + 既存指標 + 新指標カーブ.要 output/reflectance_sweep/summary.csv + 各 luminance.npy) |
| LED 配光 cutoff 5 値スイープ (Step 8-14 候補 ξ) | $env:DRJIT_LIBLLVM_PATH = "C:\Program Files\LLVM\bin\LLVM-C.dll"; uv run python scripts/sweep_led_distribution.py (5 ジョブ × 約 17 分 = 約 85 分) |
| LED 配光比較パネル生成 | uv run python scripts/build_led_distribution_panel.py (輝度マップ 2 段 + 既存指標 + 新指標カーブ.要 output/led_distribution_sweep/summary.csv + 各 luminance.npy) |
本ドキュメント新設に合わせて以下の残骸を 削除済み(合計 ~12.6 MB).output/ は .gitignore で追跡対象外のため,リポジトリ履歴には影響していない.
| 削除対象 | 内容 | サイズ |
|---|---|---|
output/eval_compat_test/ | 中身空(figures/ 内も空).用途不明の試行残骸 | 0 KB |
output/baseline_linear/ | baseline_linear_npy/ と内容が重複.より新しい後者が現役 | 約 1245 KB |
output/compare_lummap/ | 過去の輝度マップ比較作業の残骸.scripts/build_luminance_evolution_panel.py で代替済み | 約 6077 KB |
output/sweep_reflectance/ 内の以下: | ||
| ・PoC スクリーンショット 28 個 | clim_fix.png, cull_check.png, cull_check_no.png, eval_fix.png, eval_innerface.png, eval_texture.png, hybrid_*.png(8 個), marker_check.png, nomarker_check.png, path_check.png, path_translucent.png, poc_cull.png, render_only.png, render_opt.png, sensor_off_check.png, uni_check.png, unified_*.png(3 個), viz_check.png | 約 3700 KB |
| ・ベイクキャッシュ 6 個 | bake_cache.npz, bake_d16.npz, bake_hi.npz, bake_uni.npz, bake_uni64.npz, bake_unified.npz(再生成可能) | 約 1280 KB |
| ・使い捨てスクリプト 4 個 | apply_oetf.py, diag_seam.py, poc_cull.py, run_sweep.py(本体機能はパッケージに統合済み or 再実装容易) | 約 16 KB |
整理後の output/ トップレベルは 「現役の検証アーティファクト」表の 5 ディレクトリのみ(baseline/, baseline_linear_npy/, emitter_real/, eval_oetf_r085/, sweep_reflectance/).sweep_reflectance/ 内は r075〜r092 の 5 サブディレクトリと sweep_summary.csv の 6 項目のみ.
新たに残骸が溜まったときは,本ドキュメント「現役の検証アーティファクト」表に載っていないディレクトリ・ファイルを削除候補として整理する.output/ は .gitignore 配下なので git 履歴への影響はない.
# 個別ディレクトリ削除
Remove-Item -Recurse -Force output/<対象>
# sweep_reflectance のように「特定の名前以外を消す」場合のテンプレ
$keepNames = @("r075", "r080", "r085", "r090", "r092", "sweep_summary.csv")
Get-ChildItem output/sweep_reflectance |
Where-Object { $keepNames -notcontains $_.Name } |
Remove-Item -Recurse -Force
実行前に必ず Get-ChildItem で対象を確認すること.削除後は本ドキュメントの「過去の整理実績」サブセクションに追記して履歴を残す.
baseline_linear_npy/(baseline 入力 + linear 評価 + npy ソース)test1/, tmp/(後から何の試行か分からない)output/ が散らかっても索引から辿れる.output/{シーン or テーマ}[_{評価バリアント}][_{特記事項}]/
例:
output/baseline/ ← 確定基準 (scene_baseline.yaml)
output/baseline_linear_npy/ ← 確定基準を linear で再評価 (npy ソース)
output/eval_oetf_r085/ ← OETF on 評価結果 (R=0.85)
output/emitter_real/ ← 発光面実サイズ検証
output/sweep_reflectance/r{NNN}/ ← 反射率スイープ
scripts/build_luminance_evolution_panel.py(輝度マップ追跡用)