feat: curve v5 — corner fixes + COMPACT/BALANCED taste presets (terrain-water task 09)
The three corner fixes (both presets): riser endpoint slope floors 0.2 -> 0.1 (0.1u + 0.9*smoothstep — climbs decelerate into shelves and accelerate out); summit-spike base floor 0.1 -> 0.05 (0.05u + 0.95*u^4 — no hard skirt under the peaks); SHELF_SPAN_MIN 2 m -> 6 m (pronounced shelves keep a gentle tilt). Knots are preset-parameterized (CurveKnots, explicit parameter — pure, D-035), calibrated from the same pooled batch-04 CDF: COMPACT P65/77/84/88/94/97 -> 65/12/7/4/6/3/3 land split BALANCED P60/73/83/88/96/99 -> 60/13/10/5/8/3/1 Gate: "off"|"v5-compact"|"v5-balanced" (batch-only tri-state; interim default v5-balanced pending the developer's verdict — the winner becomes plain "v5" in a follow-up commit); v1-v4 retired loudly. Assertion runs per preset (8 corners x per-seed spikeMax; the lowered floors stay strictly positive). TCRV v5 extension (+9 B): preset id + K5/K6 — the effective curve is unambiguous from the record; old records parse (version-dispatched); harness compares. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
68f7bca8e0
commit
02577872f2
6 changed files with 137 additions and 101 deletions
|
|
@ -202,10 +202,12 @@ public partial class RoundTripHarness : Node
|
|||
bool same = ca.Version == cb.Version;
|
||||
float[] fa = { ca.T1, ca.T2, ca.T3, ca.T4, ca.SpikeMax, ca.Sea, ca.OrangeCeil, ca.RedCeil, ca.PlateauLo, ca.PlateauHi, ca.PeakCap, ca.TailSlope,
|
||||
ca.BenchAmp, ca.PlateauAmp, ca.ShelfSpanMin, ca.ShelfSpanMax, ca.ElevFreqIslands, ca.StrengthFreqIslands,
|
||||
ca.BenchSeedOffset, ca.PlateauSeedOffset, ca.StrengthSeedOffset };
|
||||
ca.BenchSeedOffset, ca.PlateauSeedOffset, ca.StrengthSeedOffset,
|
||||
ca.PresetId, ca.K5, ca.K6 };
|
||||
float[] fb = { cb.T1, cb.T2, cb.T3, cb.T4, cb.SpikeMax, cb.Sea, cb.OrangeCeil, cb.RedCeil, cb.PlateauLo, cb.PlateauHi, cb.PeakCap, cb.TailSlope,
|
||||
cb.BenchAmp, cb.PlateauAmp, cb.ShelfSpanMin, cb.ShelfSpanMax, cb.ElevFreqIslands, cb.StrengthFreqIslands,
|
||||
cb.BenchSeedOffset, cb.PlateauSeedOffset, cb.StrengthSeedOffset };
|
||||
cb.BenchSeedOffset, cb.PlateauSeedOffset, cb.StrengthSeedOffset,
|
||||
cb.PresetId, cb.K5, cb.K6 };
|
||||
for (int i = 0; i < fa.Length; i++)
|
||||
if (System.BitConverter.SingleToInt32Bits(fa[i]) != System.BitConverter.SingleToInt32Bits(fb[i])) same = false;
|
||||
if (!same) { GD.PrintErr("[Harness] TCRV fields differ."); return false; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue