re: calibrate the connectivity cap -- +612 resources against 18 consistency regressions
XBG7_EDGE_CAP / XBG7_SMALL_TRIS make the threshold sweepable (defaults unchanged, full suite green). Above 0.417 the capture-proven eng_02_l anchors exactly right and no e106 part regresses, and nothing that decoded at 0.28 is lost -- but ~250 existing anchors move silently and 18 shared resources lose cross-container consistency. Not changed: the movers have no oracle yet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -748,6 +748,39 @@ fix to reach for blind: the threshold trades against false anchors, and now that
|
||||
a capture can name true blocks, it can be **calibrated** against them rather than
|
||||
guessed. Not changed here.
|
||||
|
||||
**7. Calibrating the cap: a real trade, not a free win.** `XBG7_EDGE_CAP`
|
||||
(and `XBG7_SMALL_TRIS` / `XBG7_EDGE_CAP_SMALL` for a triangle-count-aware
|
||||
variant) make the threshold sweepable without changing the default;
|
||||
`examples/edge_cap_sweep.rs` reports coverage and cross-container consistency per
|
||||
setting. Over the whole `resource3d` directory:
|
||||
|
||||
| cap | resources decoded | anchors moved vs 0.28 | shared | inconsistent | consistent → **inconsistent** | inconsistent → consistent |
|
||||
|---|---|---|---|---|---|---|
|
||||
| **0.28** (shipped) | 5 480 | — | 678 | 125 | — | — |
|
||||
| 0.35 | 5 955 | — | 707 | 140 | — | — |
|
||||
| 0.42 | 6 069 | 254 | 714 | 153 | **18** | 3 |
|
||||
| 0.45 | 6 093 | 254 | 716 | 153 | 18 | 3 |
|
||||
| 0.28, but 0.45 below 64 tris | 6 090 | 236 | 716 | 151 | **16** | 3 |
|
||||
|
||||
**Nothing is ever lost** — every resource that decoded at 0.28 still decodes —
|
||||
and the capture-proven case is fixed: at any cap above 0.417, `e106_eng_02_l`
|
||||
anchors at exactly `0x44a32c`, and the four e106 parts that were already correct
|
||||
stay correct. So on the only ground truth available, relaxing is a strict
|
||||
improvement (4 → 5 of the ship's drawn buffers correct).
|
||||
|
||||
But it is bought: ~590–610 resources that previously decoded not at all now do,
|
||||
**~240–254 existing anchors silently move**, and 16–18 shared resources go from
|
||||
cross-container consistent to inconsistent (against 3 repaired). The
|
||||
triangle-aware variant barely narrows that — almost everything the looser cap
|
||||
admits is a small block anyway.
|
||||
|
||||
**So the cap is not changed here.** The evidence says 0.28 is too tight and that
|
||||
mean-edge-over-diagonal is a weak discriminator for coarse LODs; it does not say
|
||||
0.45 is right, because the 254 movers have no oracle. Deciding needs either a
|
||||
capture covering more ships and stages (the same `--truth` method extends to any
|
||||
container the engine drew from) or a discriminator that does not degrade for
|
||||
coarse geometry. Both are recorded as the next step rather than guessed at.
|
||||
|
||||
Not settled: `e106_brg_01_b_02` ≡ `e106_brg_01_l` (51 verts). A second 51-vertex
|
||||
`vbase` exists in the logs but is **not** from this container, and the container
|
||||
holds three near-identical 51-vertex runs, so the pair has no oracle yet.
|
||||
|
||||
Reference in New Issue
Block a user