跳轉到

歷史記錄 · 2026-10-27

月份索引|歷史記錄

重大重構里程碑

2026-10-27 ─ 接觸點求解順序對稱化與動態目標持續接觸回復完整形狀 TOI(issue 001075、001082)

無輸入直行的公版車會依世界航向偏航:twist 接觸的 normal 部分是逐點 Gauss–Seidel,先解的點固定多拿負載, 而 manifold 排序基底綁世界軸,左右輪互為鏡像(issue 001075)。001082 原登錄兩案經逐幀讀回屬量測誤判; 真缺陷是 TM 讓動態目標只掃核心球,旋轉薄件端點以 ω·R 掃進 2 mm 動態薄板而穿入或穿過。新 kernel 代 (父代 001050,wasm f2afeeba)以兩個整合參數共識欄位承載:contact_normal_order_policy(1=2 點精確 2×2、 3 點以上正反兩序平均,biased、relax 與反彈皆適用;逐 SIMD lane 依作用點分類)與 ccd_persistent_contact_policy 新值 2(持續接觸規則只套用固定目標,kinematic/dynamic 目標照父代以完整形狀求 TOI)。由 PHYSICS_CONTACT_NORMAL_ORDER_POLICY = 1、PHYSICS_CCD_PERSISTENT_CONTACT_POLICY = 2 在 bounded profile 後回填, 進快照、immutable world config 與 restore 原子驗證。兩設定取父代值時與父代步進逐位元相同(canonical golden revision-18、公版三場八車 120 幀逐幀狀態雜湊、七個原生場景),快照只多 4 bytes;新 wasm cf640ca2。 kernel 測試:航向依存偏航一次諧波幅圓輪 0.41→0.007°、拖曳武器 0.65→0.011°、雪橇 0.64→0.011°;動態薄目標 210 次集合嚴格穿過 6→0、幀末最大穿入 7.66→0.56 mm(2 mm 板);守門 105 次 0 穿過。新增常駐單元測試 ccd-dynamic-thin-target-guard.spec.ts(旋轉刃與自旋刀片對動態薄板 84 次,正式 bounded frame)。公版三場八車 (TM→新)截斷 0.27/0.37/0.27%→0.55/0.23/0.47%、world step 平均約 +12–18%;平地 24 航向漂移一次 諧波幅 heavy/control/speed 2.20/4.09/1.63°→0.11/0.75/0.58°;三車三場 30 起跑完賽 120→136/270(翻覆 27→20、 掉頭 16→14);001081 C 弧牆絕對判準窗長 0/0/0/0/1/0→0/1/30/0/0/1。canonical golden、conformance 快照雜湊、分段品質閘與效能預算的新值待維護者核可後更新。

決策檔:D-20261027-01、D-20261027-02

2026-10-27 ─ 段縫品質閘斜向 45° 兩格改用寬車道治具

D-20261026-02(持續接觸改掃核心球)後,車速回到 指令值 2.5 m/s,碰牆比先前約 1.6 m/s 時提早。在車道半寬 1 m 的直線場地上,B 地面「斜向 45°」(騎縫格) 的判準窗只剩 50 幀,「斜向 30° 不壓縫(替代 45°)」只剩 38 幀,都低於判準窗下限 60 幀。兩格改用車道 半寬 3 m 的直線場地(場地半寬 3.6 m,小於 8 m 地面格,縱向格線仍只有 x=0 一條)。不壓縫格恢復 45°, 起點改為 x=0.15、z=−1。實測判準窗:騎縫格常駐 CI 與研究閘都是 117 幀(第 18 幀碰縫、第 118 幀碰牆); 不壓縫格兩種模式都是 93 幀(第 93 幀碰牆),窗內全部樣本未碰地面縫(研究閘最早碰縫在第 199 幀)。 判準數字、golden 與門檻都不變,其他 B 格治具不變 (D-20261021-01)。

2026-10-27 ─ 場地地面節點共用 Draco 量化網格,jungle-mud 改 v9(issue 001086、001084)

canonical 壓縮原本逐 mesh 做 14 bit 位置量化,各節點的原點與步長不同,原本共面的相鄰地面塊在接縫處 解碼成不同高度:公版 jungle 路面塊頂面 authoring 皆為 −1.2,canonical 後落在 −1.20019~−1.19979,接縫 台階最大 0.38 mm(snowy 0.12 mm、urban 0.15 mm);16 mm 胎越縫會被頂出偏航與單幀衝量(issue 001086)。 改為:嵌入 track manifest 的 GLB 中,牆條帶與 entity 以外的靜態節點共用一組量化網格(原點與範圍取這些 節點頂點的聯集、步長不超過 2^-11 m),相同座標解碼成逐位元相同的值;牆條帶仍逐 mesh 量化,歸屬容差 推導不變;零件不受影響(24 顆零件壓縮輸出與出貨位元組逐位元不變)。三場重烘後接縫台階皆為 0,bytes 增加 約 5–10 KB。權威見 場地。

同批 jungle-mud 改用 v9 authoring(issue 001084):護欄上游端原為迎向車流的 60 mm 平切鈍端,且 RP5 彎與 RP7–9 彎護欄之間留有同側口袋,造成 17.0 m 與 64.6 m 兩處固定卡點。v9 讓三條護欄上游端由崖腳線以 1.94 m、1:27.7 漸變導入,並把兩段同側護欄合併為連續的 Rail_Bend2_3;其餘幾何不變,空氣牆與隱形障礙格 皆為 0。公版場地生成器規範同步新增「上游端不得迎向車流成鈍端」「同側相鄰導引面不留橫向口袋」,並把 崖前垂直護欄擴大到所有可能被貼側的路段(只約束公版場地,不進 admission)。三車三場 30 起跑完賽 136→139/270;jungle heavy 18→26/30,17.0 m 與 64.6 m 正面卡停 heavy 12→0、control 5→0。八車成本 jungle P95 約 90→112 ms、拒絕幀 289→358(僅 001086 時為 125 ms、317),效能門檻與判準未改。

2026-10-27 ─ jungle-mud 改 v10:兩側崖腳全程垂直護欄(issue 001084)

v9 的護欄只在四個彎道外側,直線段與彎道之間的側邊仍是 70° 裸崖,與公版導引面規範「可能被貼側的路段都加 垂直導引面」不符。v10 改為左右各一條連續護欄(Rail_Left/Rail_Right),從起點溝口延伸到終點溝口;截面與環 位置沿用 v9(v9 三條護欄的完整截面環在 v10 中逐位元保留),兩端溝口由崖內以 1.94 m、1:27.7 漸變導入。 全程沒有其他上游端,因此沒有鈍端,也沒有同側口袋;其餘 109 個節點與 v9 逐位元相同,空氣牆與隱形障礙格皆為 0。canonical 437,256→480,488 B(公版 jungle 預算 512,000 B)。同一 bundle 三車三場 30 起跑完賽 139→149/270 (snowy、urban 不變;jungle speed 0→5、heavy 26→29、control 2→4),jungle 翻覆 9→7、掉頭 8→7。八車成本 jungle P95 約 115→96 ms、拒絕幀 358→290,效能門檻與判準未改。

2026-10-27 ─ 快照去靜態場地與取消正規化研究:saveState 純讀取、rollback 本機信任載入(issue 001074、001091)

RollbackEngine.step 每幀先 saveState 再 step。研究(八車三場、wasm cf640ca2)顯示 saveState 的 18–27 ms 中,原生 take/restore 只占 1–2 ms,其餘是「以剛產生的快照經完整驗證路徑重建 live world」的 正規化(collider 拓樸與幾何讀回、質量重算核對、runtime hash 重算)。取消正規化後,六個場景各 600 幀的 三種跑法(不中斷、每幀 save→load→step、每 37 幀 load)逐幀 state hash 與原生快照 sha256 全部逐位元相同, 與原做法的逐幀 hash 鏈也相同,正規化不改變任何軌跡。

改為:saveState 純讀取,回傳 branded 型別 OwnSavedState 並在引擎執行期登記同一份參照;新增 loadOwnState 只接受本引擎目前世界自產、未複製的快照,跳過原生拓樸、幾何、質量與 runtime hash 核對, envelope 驗證與原子替換語意不變。rollback 從 StateBuffer 載入自產快照時用它,catch-up 重置留下的外來 快照、catch-up sync-response 與觀戰 checkpoint 仍走 loadState 完整驗證;複製、型別斷言偽造品牌或 世界重建前的快照一律拒絕。runtimeStateHash 仍每次計算。SavedState bytes 格式不變。決定性改由快照 無損守門保證:snapshot-lossless 三向比較(逐幀 state hash、完整 SavedState 與原生快照 sha256),Node 與 Chromium 各一份,預設跑 snowy-mixed8(技能、發射、損毀、細分停損皆有覆蓋),O4_SNAPSHOT_LOSSLESS_FULL=1 跑公版三場 × mixed8/heavy8。canonical golden 與 conformance 不變。

決策檔:D-20261028-01

2026-10-27 ─ catch-up 快照單包上限調至 8 MiB(issue 001091)

公版 urban-heavy8 的 SavedState 從第 186 幀起超過 4 MiB 上限,最大 4,453,009 B;觀戰 checkpoint 的 base64url JSON 也超過舊上限。短期把 SYNC_SNAPSHOT_MAX_BYTES 調為 8,388,608,衍生值同步:race raw packet 8,388,992、每 peer ingress byte bucket 8,454,528、verified queue 8,454,144、觀戰 replay wire 11,250,347、觀戰 source ingress burst 12,298,923、catch-up offer 全域配額 128 MiB(8 × 2 × 8 MiB,不變式 不變)。靜態場地每碰撞三角約占 164–182 B,8 MiB 在八車下約容得下 4 萬個碰撞三角;UGC 場地上限 50 萬 三角仍遠超任何合理單包上限,治本為靜態場地不進快照(另立 ADR)。新增整合測試以 urban-heavy8 實際 超過舊上限的快照走完 sync-response 與觀戰 checkpoint 編解碼,並以完整驗證載入。權威見 network.md。