Renders the committed curve (tag terrain-curve-v1 = 639dc5f) across 8 draws to answer
two questions the anchor seed alone could not: does the curve produce good islands
generally, and is the mid-slope abruptness a curve trait or a lucky/unlucky draw.
No curve code is touched — `git diff terrain-curve-v1` over ClimbCalibration,
ContinuousCurve, HeightCurve, CurveAnchors, CurveKnots and Shaping is empty.
SeedGalleryTool pins mountainLift/peakSharpness/lowlandCeiling as CONSTANTS with no
env override, unlike every other tool in this phase. A gallery must not be knob-tunable:
a stray ISLA_* left over from a probe would render eight plates of a curve nobody chose
and they would look exactly like the real thing. It re-measures the calibration on task
01's pool at the iteration size, so the plates are the gated curve rather than a
look-alike.
The eight seeds were fixed before the first render and never screened or replaced. Seven
are fresh; none is in the calibration pool, so none shaped the curve it is testing.
Two things worth recording about the metric:
- The curve's normalized mid-slope CANNOT discriminate between seeds. It is dv/du on a
fixed control polygon and each seed's denormalization is an affine rescale of both
axes, so it is the same number on every draw by construction. The first cut of the
tool measured exactly that and dutifully printed an identical 1.86 eight times.
- What ships instead is the spatial height gradient through the 100-220 m band, in
metres per pixel — the thing the eye is actually reacting to, and genuinely
seed-dependent through both spikeMax and the terrain's own gradient.
The character note per seed is an eye call, so the tool refuses to invent it: it reads
scratch/character_notes.tsv and prints "(pending)" when absent. ISLA_INDEX_ONLY=1
rebuilds the contact sheet from scratch/metrics.tsv without re-rendering a pixel.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DCWNaDZPfTiAy3meGNGgqt