docs(opstack): the proved-bound rule now names VF_PerlinAbsBound and the FBM normalisation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -222,6 +222,14 @@ Everything before it is built and green.
|
|||||||
- **A bound in a box verdict must be PROVED, not observed.** `|Perlin3D| ≤ 1.5` is derived from
|
- **A bound in a box verdict must be PROVED, not observed.** `|Perlin3D| ≤ 1.5` is derived from
|
||||||
`GradDot`'s two-distinct-axes form and the per-axis weighted bound of 0.5 — *not* from the header's
|
`GradDot`'s two-distinct-axes form and the per-axis weighted bound of 0.5 — *not* from the header's
|
||||||
"~[-1,1]". Over-estimating costs CPU; under-estimating deletes collision.
|
"~[-1,1]". Over-estimating costs CPU; under-estimating deletes collision.
|
||||||
|
**⚠️ USE `VF_PerlinAbsBound` — it is file-scope in `VoxelDensityOpStack.cpp` and it is the ONLY
|
||||||
|
copy. Never write a bare `1.0` for a noise amplitude in a reach.** `VoxelNoise::FBM` **normalises**
|
||||||
|
(`return Total / MaxValue`), so `sup|FBM| = sup|Perlin3D|` **exactly** — the octave sum neither
|
||||||
|
amplifies nor attenuates it, and an `FBM`-driven reach needs the same 1.5. This rule was written
|
||||||
|
*before* three `ExtraReach` formulas were found violating it (2026-08-16, fixed in `7dbdf51`):
|
||||||
|
VerticalShafts and Maze were unsound at their shipped defaults, FloatingIslands sound only because
|
||||||
|
its `SDFBlendRadius` happens to be large. **A rule stated in a doc is not a rule enforced in code** —
|
||||||
|
when you add a reach, grep for `VF_PerlinAbsBound` and use it.
|
||||||
- `ProcessQueue` stays `EQueueMode::Mpsc`; `Epoch` carries through every async path; don't "optimize"
|
- `ProcessQueue` stays `EQueueMode::Mpsc`; `Epoch` carries through every async path; don't "optimize"
|
||||||
the `ARCHITECTURE §8.10` invariants.
|
the `ARCHITECTURE §8.10` invariants.
|
||||||
- Commit per coherent unit with a real message. **`experimental` is pushed and tracked
|
- Commit per coherent unit with a real message. **`experimental` is pushed and tracked
|
||||||
|
|||||||
Reference in New Issue
Block a user