Drift-time peaks used to rail into the hard elevation clamp and flatten into a 9000 m plateau (the clamp lived in step(), erode() AND hydrology(), so erosion re-flattened them every tick). Replace the hard ceiling with a probabilistic soft cap: above peakSoftCapStart (7000 m) the chance a tick's uplift "takes" falls linearly to 0 at peakSoftCapEnd (12000 m); a lost grow roll forfeits the uplift and shaves a random 0..peakFailDrop (200 m) off. Peaks now spread smoothly across a height band (strong orogeny reaches ~10-11 km, most cluster lower) with zero cells pinned at the ceiling. - The roll is a pure hash of (cellIndex, erodeIter, seed): never touches rngState, bit-identical across OpenMP thread counts, and since erodeIter is saved (step/erode run 1:1 in drift) F5/F9 resumes bit-identical -- no save bump. - Drift-only (gated on Planet::drifting) so Phase-1 forming still auto-settles. - The hard clamp's upper bound now tracks peakSoftCapEnd in all three places (step/erode/hydrology); lower -11000 m unchanged. - New planet.cfg knobs peakSoftCapStart / peakSoftCapEnd / peakFailDrop with validation (+ start < end cross-rule). Docs updated (CLAUDE.md, BUILD.md). Verified headless: smooth 8.5->10.5 km taper, 0 pinned, determinism + exact resume intact, test_logic + test_biota pass, full app builds clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
No description provided
Languages
C++
99.6%
CMake
0.4%