feat(simulation): T-1125/26/27 coastline invention — crinkle varies by derived body character #182

Closed
jpmschweitzer wants to merge 0 commits from coastline-invention into main
Owner

Summary

The D-227 "invented deterministically" promise now carries geographic content into district classification (T-1125), closing the T-1123 finding that classification consumed only the raw bilinear envelope — pixel-smooth coasts, scatter slaved to near-zero coarse slope exactly where coastlines live.

T-1125 — coastline invention, two-tier character model

  • New server/src/atlas/coast_invention.rs: tier 1 body personality envelope derived from existing authored params only (erosion_maturity = hydro_wetness x atmo_density — more ocean means wetter, rainier, more eroded, smoother; tectonic energy from TectonicClass; D-240 stands: no orbital/tilt inputs). Tier 2 position character: latitude, driver-tier GlaciationGrade (fjord response), local wetness, seeded ~100-400 km heterogeneity field so stretches of the same coast differ. Zero new authored knobs.
  • C1 multi-octave coast warp (~16-262 km band), sub-pixel amplitude cap 0.75 px — bays/capes/inlets are invented, the heightmap stays the truth at its own scale. Salted hash stream, never correlated with terrain scatter or climate edge-fuzz.
  • Slope-independent scatter floor (invention no longer collapses on flat coasts; envelope rule survives as a ceiling) + shoreline carving (ridged character contributes real slope in shoreline patches so Fjord/CliffCoast can fire where glacially/tectonically justified).
  • Unified paths: shared invent_primitives front-half wired into BOTH derive_district (on-demand) and derive_district_profile (batch) — the batch path's scatter-free area-mean is replaced by an invented centre-point sample of the same continuous field. The silent divergence that caused this ticket is structurally impossible now.
  • Circularity ruling: the driver tier reads the unwarped raw-bilinear primitives (one-step-stale by design, documented at the call site).

T-1126 — Marine vegetation gate

VegetationClass::Marine appended at discriminant 6; verdict morphology-derived (open_water = OpenOcean | Lake passed from the morphology derivation — no fourth ocean threshold; vegetation and morphology cannot disagree by construction). Airless precedence preserved (Absent, not Marine, on airless seas). Ord position non-semantic; discriminant-pin test extended.

T-1127 — glaciation ice tint

aliveness_probe --render gains a 6th glaciation panel; ice tint keyed on GlaciationGrade; Marine renders [0,96,172], distinct from morphology water tones.

Golden deltas (deliberate, believability regen via UPDATE_GOLDEN=1)

Improvements: slope_q/elev_q spreads widen substantially; vegetation_classes +1 (Marine); water-districts-wet coherence 44/49 -> 46/46 and 22/25 -> 19/19 — both perfect (the T-1082 class closed: classification and coastline are now the same line). Honest reductions (ocean_fraction distinct, GJ244Ad morphology_zones): the eager pseudo-grid now point-samples coasts instead of area-averaging them into synthetic intermediates; the believability screen's coast-sampling resolution is Q-123 calibration territory. Derivation harness: 37/37 law checks unchanged.

Verification

  • Full cargo test green via pre-push gate (514 atlas unit tests + probe tests).
  • Determinism: 6/6 panels byte-identical across two full derive+encode passes, all 7 ladder windows.
  • Before/after zoom ladders (GJ380c w256/w64/w16, GJ820Bc w256/w64, GJ244Ad w256/w64, seed 42) delivered to Jeroen for acceptance — three distinct coastline personalities, fjords exactly on GJ244Ad's one moist glaciated coastal patch, w256 continent outlines unchanged.

Governance

D-227 amendment (driver model, floor-vs-ceiling reading, circularity ruling) + D-239 amendment (Marine). pql decisions validate ok.

Tickets: T-1125, T-1126, T-1127

## Summary The D-227 "invented deterministically" promise now carries geographic content into district classification (T-1125), closing the T-1123 finding that classification consumed only the raw bilinear envelope — pixel-smooth coasts, scatter slaved to near-zero coarse slope exactly where coastlines live. ### T-1125 — coastline invention, two-tier character model - New `server/src/atlas/coast_invention.rs`: **tier 1** body personality envelope derived from *existing* authored params only (`erosion_maturity = hydro_wetness x atmo_density` — more ocean means wetter, rainier, more eroded, smoother; tectonic energy from `TectonicClass`; **D-240 stands: no orbital/tilt inputs**). **Tier 2** position character: latitude, driver-tier `GlaciationGrade` (fjord response), local wetness, seeded ~100-400 km heterogeneity field so stretches of the same coast differ. Zero new authored knobs. - C1 multi-octave coast warp (~16-262 km band), sub-pixel amplitude cap 0.75 px — bays/capes/inlets are invented, the heightmap stays the truth at its own scale. Salted hash stream, never correlated with terrain scatter or climate edge-fuzz. - Slope-independent **scatter floor** (invention no longer collapses on flat coasts; envelope rule survives as a ceiling) + **shoreline carving** (ridged character contributes real slope in shoreline patches so Fjord/CliffCoast can fire where glacially/tectonically justified). - **Unified paths:** shared `invent_primitives` front-half wired into BOTH `derive_district` (on-demand) and `derive_district_profile` (batch) — the batch path's scatter-free area-mean is replaced by an invented centre-point sample of the same continuous field. The silent divergence that caused this ticket is structurally impossible now. - Circularity ruling: the driver tier reads the *unwarped* raw-bilinear primitives (one-step-stale by design, documented at the call site). ### T-1126 — Marine vegetation gate `VegetationClass::Marine` appended at discriminant 6; verdict **morphology-derived** (`open_water = OpenOcean | Lake` passed from the morphology derivation — no fourth ocean threshold; vegetation and morphology cannot disagree by construction). Airless precedence preserved (`Absent`, not `Marine`, on airless seas). Ord position non-semantic; discriminant-pin test extended. ### T-1127 — glaciation ice tint `aliveness_probe --render` gains a 6th glaciation panel; ice tint keyed on `GlaciationGrade`; Marine renders `[0,96,172]`, distinct from morphology water tones. ### Golden deltas (deliberate, believability regen via UPDATE_GOLDEN=1) Improvements: slope_q/elev_q spreads widen substantially; vegetation_classes +1 (Marine); **water-districts-wet coherence 44/49 -> 46/46 and 22/25 -> 19/19 — both perfect** (the T-1082 class closed: classification and coastline are now the same line). Honest reductions (ocean_fraction distinct, GJ244Ad morphology_zones): the eager pseudo-grid now point-samples coasts instead of area-averaging them into synthetic intermediates; the believability screen's coast-sampling resolution is Q-123 calibration territory. Derivation harness: 37/37 law checks unchanged. ### Verification - Full `cargo test` green via pre-push gate (514 atlas unit tests + probe tests). - Determinism: 6/6 panels byte-identical across two full derive+encode passes, all 7 ladder windows. - Before/after zoom ladders (GJ380c w256/w64/w16, GJ820Bc w256/w64, GJ244Ad w256/w64, seed 42) delivered to Jeroen for acceptance — three distinct coastline personalities, fjords exactly on GJ244Ad's one moist glaciated coastal patch, w256 continent outlines unchanged. ### Governance D-227 amendment (driver model, floor-vs-ceiling reading, circularity ruling) + D-239 amendment (Marine). `pql decisions validate` ok. Tickets: T-1125, T-1126, T-1127
jpmschweitzer added 5 commits 2026-07-17 08:25:10 +02:00
T-1125: new atlas/coast_invention.rs — BodyCoastEnvelope (tier 1: erosion
maturity derived hydro×atmo, tectonic energy; D-240 stands, no orbital
inputs) + coast_character_at (tier 2: latitude, glaciation fjord response,
local wetness, seeded 100-400 km heterogeneity field). C1 multi-octave
warp ~16-262 km, sub-pixel cap 0.75 px, salted stream isolated from
terrain scatter and climate edge-fuzz.

district_profile: shared invent_primitives front-half (warped envelope
sampling + slope-independent scatter floor + shoreline carving) wired
into BOTH derive_district and derive_district_profile — the batch path's
scatter-free area-mean aggregate is replaced by an invented centre-point
sample of the same continuous field, making silent path divergence
structurally impossible.

T-1126: VegetationClass::Marine appended at discriminant 6, verdict
morphology-derived (open_water from OpenOcean|Lake — no fourth ocean
threshold); airless precedence preserved. voxel.rs exhaustive-match arm
documented unreachable (WaterBody owns ocean districts).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
aliveness_probe --render gains a 6th glaciation panel; glaciated
districts get an ice tint keyed on GlaciationGrade, and Marine
vegetation renders [0,96,172] — distinct from the morphology water
tones so district-carrier vs voxel-generator disagreement stays
visible in ladders.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mechanical call-site updates (7) for the invent_primitives signature;
believability golden regenerated via UPDATE_GOLDEN=1. Deltas are
deliberate: slope_q/elev_q spreads widen, vegetation_classes +1
(Marine), water-districts-wet coherence reaches 46/46 and 19/19
(T-1082 class closed — classification and coastline are the same line).
Reductions (ocean_fraction distinct, morphology_zones on GJ244Ad)
are the eager pseudo-grid point-sampling coasts honestly instead of
area-averaging them into synthetic intermediates; believability
coast-sampling resolution is Q-123 calibration territory. All 37
derivation-harness law checks unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
D-227: records the two-tier driver model (body envelope from authored
params only, D-240 tilt exclusion upheld; position tier with fjord/
latitude/wetness/heterogeneity), the shared invent_primitives path,
the scatter floor-vs-ceiling reading, shoreline carving, and the
one-step-stale circularity ruling. D-239: Marine appended at
discriminant 6, morphology-derived verdict, airless precedence,
non-semantic Ord position.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Author
Owner

Review: coastline-invention → main (type: code)

Hoshe (QA): APPROVE

Solid, well-tested implementation of T-1125 coastline invention character + T-1126 Marine vegetation + T-1127 probe visualization. All 6 coast_invention unit tests and the 37-test derivation harness pass live; assertions are meaningful (magnitudes verified directly, not vacuous float-inequality checks). Believability golden regen is legitimate — ran the harness live, golden matches actual output exactly; the "water renders wet" coherence criterion genuinely improved to 100%/100% (was ~90%/88%), matching the area-mean→point-sample rationale with no unexplained drift.

Verified beyond reading: cross-stream isolation magnitudes are real (warp −0.276 vs scatter −0.126, not rounding artifacts); airless-vs-Marine precedence traced to the production call site (temperature None short-circuit fires before the open_water check); open_water = OpenOcean|Lake is exactly and only what the ocean_fraction_q >= 60 gate can produce — vegetation/morphology cannot disagree by construction; discriminant pin (Marine as u8 == 6) extended and both consumer matches exhaustive; vocab fallthrough defaults mirror the derive_moisture_q precedent exactly; poles/date-line safe (pre-existing rem_euclid wrap + pole clamp, warp is sub-pixel); the batch centre-point saturating math has dormant out-of-range exposure in a pub fn but the sole production caller guarantees in-range positions by construction — noted, not actionable.

# File Issue
none

Tyre (Architecture): APPROVE

Architecturally sound across all six review dimensions. Tier 1 reads only existing BodyParams (planet_class via TectonicClass, hydrosphere, atmosphere, radius via the pixel⇄metre seam) — zero new authored knobs, no orbital/tilt inputs, D-240 upheld; erosion-widens-rias sign justified in-comment. The shared invent_primitives permanently unifies batch and on-demand paths; the batch semantic change (area-mean → invented centre-point sample) is safe — every downstream consumer (derive_channel_width, has_active_channel, believability) treats ocean_fraction_q as a bucketed water-presence proxy, never an area-mean. Warp cap 0.75 px enforced and tested — sub-pixel, cannot relocate a landmass; the 16–33 km warp/scatter band overlap is not double-counting (coordinate displacement vs additive relief, orthogonal operations on salt-isolated streams). Determinism: three salted streams per the climate_edge_warp convention, position-keyed world-metre noise, no per-district quantization — continuity across lines tested. Circularity broken by documented one-step-stale raw-bilinear driver reads — acyclic. Perf: ~17 value_noise + 5 bilinear per derive, +8–12% plausible, no waste worth restructuring. Both governance amendments accurately describe the shipped code.

# File Issue
none

Verdict: APPROVED

Runtime verification: full cargo test via pre-push gate (514 atlas unit tests + probe tests); determinism byte-verified 6/6 panels across two derive+encode passes on all 7 ladder windows; before/after zoom ladders (GJ380c/GJ820Bc/GJ244Ad, seed 42) delivered to Jeroen as the acceptance artifact. Merge-path smoke: N/A — no pre-game flow, scene transition, save/load, or connection-handshake code in the diff (server-side atlas derivation + probe renderer only).

## Review: coastline-invention → main (type: code) ### Hoshe (QA): APPROVE Solid, well-tested implementation of T-1125 coastline invention character + T-1126 Marine vegetation + T-1127 probe visualization. All 6 coast_invention unit tests and the 37-test derivation harness pass live; assertions are meaningful (magnitudes verified directly, not vacuous float-inequality checks). Believability golden regen is legitimate — ran the harness live, golden matches actual output exactly; the "water renders wet" coherence criterion genuinely improved to 100%/100% (was ~90%/88%), matching the area-mean→point-sample rationale with no unexplained drift. Verified beyond reading: cross-stream isolation magnitudes are real (warp −0.276 vs scatter −0.126, not rounding artifacts); airless-vs-Marine precedence traced to the production call site (temperature `None` short-circuit fires before the `open_water` check); `open_water = OpenOcean|Lake` is exactly and only what the `ocean_fraction_q >= 60` gate can produce — vegetation/morphology cannot disagree by construction; discriminant pin (`Marine as u8 == 6`) extended and both consumer matches exhaustive; vocab fallthrough defaults mirror the `derive_moisture_q` precedent exactly; poles/date-line safe (pre-existing `rem_euclid` wrap + pole clamp, warp is sub-pixel); the batch centre-point saturating math has dormant out-of-range exposure in a pub fn but the sole production caller guarantees in-range positions by construction — noted, not actionable. | # | File | Issue | |---|------|-------| | — | — | none | ### Tyre (Architecture): APPROVE Architecturally sound across all six review dimensions. Tier 1 reads only existing BodyParams (planet_class via TectonicClass, hydrosphere, atmosphere, radius via the pixel⇄metre seam) — zero new authored knobs, no orbital/tilt inputs, D-240 upheld; erosion-widens-rias sign justified in-comment. The shared `invent_primitives` permanently unifies batch and on-demand paths; the batch semantic change (area-mean → invented centre-point sample) is safe — every downstream consumer (`derive_channel_width`, `has_active_channel`, believability) treats `ocean_fraction_q` as a bucketed water-presence proxy, never an area-mean. Warp cap 0.75 px enforced and tested — sub-pixel, cannot relocate a landmass; the 16–33 km warp/scatter band overlap is not double-counting (coordinate displacement vs additive relief, orthogonal operations on salt-isolated streams). Determinism: three salted streams per the climate_edge_warp convention, position-keyed world-metre noise, no per-district quantization — continuity across lines tested. Circularity broken by documented one-step-stale raw-bilinear driver reads — acyclic. Perf: ~17 value_noise + 5 bilinear per derive, +8–12% plausible, no waste worth restructuring. Both governance amendments accurately describe the shipped code. | # | File | Issue | |---|------|-------| | — | — | none | ### Verdict: APPROVED Runtime verification: full `cargo test` via pre-push gate (514 atlas unit tests + probe tests); determinism byte-verified 6/6 panels across two derive+encode passes on all 7 ladder windows; before/after zoom ladders (GJ380c/GJ820Bc/GJ244Ad, seed 42) delivered to Jeroen as the acceptance artifact. Merge-path smoke: N/A — no pre-game flow, scene transition, save/load, or connection-handshake code in the diff (server-side atlas derivation + probe renderer only).
jpmschweitzer closed this pull request 2026-07-17 08:33:34 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jpmschweitzer/settled-reach#182