Newer
Older
SmTIAS-LightSim / docs / 06_TEST / TEST_02_シミュレーション実行記録.md

シミュレーション実行記録 (Simulation Run Catalog)

本ドキュメントは output/ 配下に蓄積されたシミュレーション・評価結果ディレクトリを 「何の試行か」が分かる形に索引化 したものである.output/ は .gitignore で追跡対象外(容量・再生成可能性のため)であり,手元の output/ が無くてもこのドキュメントだけ読めば「過去にどんな試行があったか・どう再現するか」が辿れることを目的とする.

関連:

output/ の扱い方針

  • 追跡対象外 (.gitignore の output/ 行).git に乗せない.
  • 再生成は可能 だが時間がかかる(1 レンダ約 9.6 分 @ spp=1024, 512²).キャリブで検証済みの結果は残しておくと再現コストを節約できる.
  • どこにメタデータを残すか: 各サブディレクトリに README.md を置くより,本ドキュメントに一覧化する方が「俯瞰しやすい」.
  • 削除推奨のディレクトリは本ドキュメント末尾に列挙.古い試行錯誤や PoC スクリーンショットは適宜削除して構わない.

現役の検証アーティファクト (Active Verification Artifacts)

TEST_01 や SPEC_03 から参照されている,意味のある実行結果:

ディレクトリ関連 Stepシーン設定評価設定主要指標 (mean / CoV / 勾配% / C/P)用途・参照元
output/baseline/8-1 確定基準configs/scene_baseline.yaml (R=0.85, d=8, spp=1024)— (レンダのみ)luminance.npy + render_uint8.png確定基準の生レンダ.他の評価の入力ソース
output/baseline_linear_npy/8-1 比較基準(同上 luminance.npy 入力)configs/eval_baseline_linear.yaml (OETF off)152.02 / 0.1826 / 24.65 / 1.327TEST_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.126OETF 適用効果の代表結果.輝度マップ追跡 (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.csvTEST_01 / SPEC_03 の反射率スイープ表の元データ
output/sweep_reflectance/sweep_summary.csv8-2——5 反射率の評価結果まとめ反射率スイープのサマリ表

sweep_summary.csv の値(参考、TEST_01 line と一致確認用)

RCoV勾配 %C/Pmeanstd
0.750.217325.911.350104.1922.64
0.800.203424.001.316137.0027.87
0.850.189322.081.283180.8034.23
0.900.175320.151.252239.6042.00
0.920.169719.421.241268.5245.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

過去の整理実績 (Cleanup History)

2026-05-27: 初回整理(TEST_02 新設に伴う)

本ドキュメント新設に合わせて以下の残骸を 削除済み(合計 ~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 で対象を確認すること.削除後は本ドキュメントの「過去の整理実績」サブセクションに追記して履歴を残す.

今後の運用規約 (Operational Conventions)

新規シミュレーション実行時のルール

  1. ディレクトリ名は内容を端的に:
    • 良い例: baseline_linear_npy/(baseline 入力 + linear 評価 + npy ソース)
    • 悪い例: test1/, tmp/(後から何の試行か分からない)
  2. 本ドキュメント (TEST_02) に新行を追加する: ディレクトリ名・関連 Step・config パス・主要指標・用途を記録.これで output/ が散らかっても索引から辿れる.
  3. PoC や使い捨て出力は削除を前提: 残すなら本ドキュメントに「履歴的価値」として記載.何も書かないものは削除推奨と見なす.
  4. 再現コマンドを残す: 本ドキュメントの「再現コマンド」表に同様の行を追加.

ディレクトリ命名規則の提案

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}/      ← 反射率スイープ

参照 (References)