# Flying Scotsman 4472 — 實測驗證報告

模型為照片導向近似重建；不是原帖 OURAY 草圖，也不是原作者的 .blend。

## 結論

- 模型驗收：**PASS**。看板：**依使用者決策延後／未同步**，不屬全案 Done。
- 檔案：`output/flying-scotsman.blend`；Blender 5.2.2 LTS。
- 可計數獨立實體 mesh：**3,324**，對應 **3,324** 個獨立 mesh datablocks。
- 緊固件 **2,332**；其他結構／機械／外觀零件 **992**。緊固件占 70.16%，公開列出，不把「3000+」說成全是大型機械組件。

## 計數口徑

| 項目 | 實測 |
|---|---:|
| 全場 objects（含場景） | 3,419 |
| 車頭＋煤水車 objects | 3,364 |
| 本體 mesh objects（含不計數煤塊） | 3,358 |
| 本體 unique mesh data | 3,358 |
| 符合 3000+ 門檻的 mesh | 3,324 |
| 共享 mesh objects | 0 |
| 計入門檻的 instances | 0 |
| depsgraph 額外 evaluated instances | 6 |
| eligible vertices / faces / triangles | 108,584 / 96,156 / 204,164 |

Blender 把 6 個原生 FONT 物件的評估網格放入 instance iterator；這 6 個全部排除，不冒充持久 mesh objects。34 個煤塊也排除。轨道、地面、攝影機、燈光不補數。

## 幾何與編輯隔離

- 空 mesh／非有限座標／零面積面／完全重複 world geometry／隱藏或禁選：均 0。
- 2,332 個緊固件均有真實 host mesh；附著誤差超門檻：0。最大表面間距 10.87 mm；允許間距按半徑設定（min 6 mm、半徑×0.75），不是宣稱每件零公差。
- 新 process 重開交付檔；固定 seed 抽 **14 件 / 13 類**。含同形鉚釘對照。
- 真正 Edit Mode 改一個 vertex；逐次比對全部非目標 meshes。只有目標改變；還原後全場 hash 一致。另做單件平移／還原，未影響其他物件。
- 測試副本留於 evidence，不修改交付檔。另以新 process 重開 roundtrip 副本。
- 乾淨重建：**PASS**；模型幾何、transform、拓撲／命名及分類統計可再現。
- Geometry SHA-256：`ea65f7fbcfb2e8a58ed6648d57c504d493aa0db85e2ecd1581904e4cd6461869`。

## 輪廓與比例

- 16 個事前固定標記，排除 0；只擬合 7 個相機參數，不修改幾何。
- 中位誤差 **1.62%**；最大 **4.24%**。門檻 3% / 6%，**PASS**。
- 分母＝固定參考車體框對角線 3211.0 px，非整張照片對角線或世界座標公尺。
- 自製投影與 Blender camera API 最大差 0.00591 px。
- 對照圖：[proportion-comparison.svg](proportion-comparison.svg)。

### 名義尺寸 sanity check（非該年代工程圖驗收）

| 項目 | 模型外包圍盒 | 博物館記錄 | 差異 |
|---|---:|---:|---:|
| 長 | 21.446 m | 21.3960 m | +0.23% |
| 寬 | 2.945 m | 2.7430 m | +7.36% |
| 高（輪底至最高點） | 3.884 m | 3.9878 m | -2.60% |

來源尺寸範圍/歷史版本未完全明確，不能將此表稱為精密尺寸通過。局部寬度差異保留、明示；不靠整體縮放偽造所有比例一致。

## 裝配組件數

| Collection | Eligible meshes |
|---|---:|
| 01_Chassis | 346 |
| 02_Boiler | 303 |
| 03_Wheels_Suspension | 806 |
| 04_Motion_Brakes | 104 |
| 05_Cab | 262 |
| 06_Tender | 1,332 |
| 07_Pipes_Fittings | 68 |
| 08_Buffers_Couplings | 103 |

## 渲染

| 鏡頭 | 解析度 | 樣本 | 秒 |
|---|---:|---:|---:|
| beauty | 1800×1125 | 32 | 15.82 |
| side | 1800×594 | 32 | 5.85 |
| front | 1800×1800 | 32 | 18.01 |
| motion | 1800×1125 | 32 | 24.70 |
| fasteners | 1800×1125 | 32 | 21.51 |
| reference | 1800×1311 | 32 | 16.12 |

Cycles CPU，8 threads；渲染前已檢查資源。沒有停止 oMLX/ComfyUI/LM Studio，沒有使用 GPU。

## 限制與失敗紀錄

- 保存時期 A3 / 4472 單煙囪外觀；不是現代 BR 60103，也非原始 A1。
- 參考照片具有透視、掃描色偏與遮擋；尺寸、隱藏底架／管路、內部三缸機構及緊固件配置為近似。
- 連桿為静態展示，不是經校驗的可運轉機械動畫。沒有完整碰撞／自相交或工程強度證明。
- 初次幾何驗收抓出 66 個緊固件間距／host 定義問題，已修正後重驗。保留 initial-validation.log，不刪失敗證據。
- 首版 validator 將原生文字的 evaluated geometry 也視為不允許 instance；已改為明列所有 instance、禁止其補入本體門檻，沒有隱藏 6 個文字項目。
- Pillow 安裝遭權限拒絕；未重試安裝。整個工作流改用 Blender 內建 numpy 與 Python 標準庫，無額外套件需求。
- 看板工具限制未解除；使用者核准先建模，遠端卡片仍未建立，不假稱 Done。

## 原始證據

- `final-object-statistics.json`、`final-edit-isolation.json`、`final-reopen-edit-isolation.json`
- `final-proportions.json`、`inputs/landmarks.json`（專案 inputs 下）
- `rebuild-comparison.json`、`preview-render.json`、`final-render.log`
- 來源／授權：專案 `REFERENCE.md`。
