islaApocalypse-v2/Tools/Scripts
beezm c32a3b177c chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert
Core/Scripts/RegionLabeling.cs is the shared-infra contract, built to the letter: it runs on
the CLASSIFY (raw) field; land is 8-connected, the deliberate complement of water's 4 (a
diagonal isthmus joins; the water either side stays separate); a component is a maximal
8-connected set of land cells; the MAINLAND is the component containing the map centre —
not merely the largest, which a later fragmentation step could flip — with a flagged
fallback to the largest if the centre were ever water (asserted, never needed: oracle m);
every other component is an island; per component id / sizeCells / centroid / hemisphere
(by centroid, one label per island) / isMainland. Ids come from a fixed scan order and are
proven stable across two generations (oracle o, 16.8M cells). It knows nothing about
offshore or stamped. Engine-free, in Core as C++-candidate math; the hemisphere convention
moved there with it, OffshoreAnalysis aliases it.

Tools/Scripts/RegionPass.cs is pass 1c: label, revert, relabel, tag. The island tag
(renamed IsIsland; IslandHemisphere from the component's centroid; Pass1Result.Regions
carries the whole table) is now a CONSEQUENCE of labeling — every non-mainland component.
That is the fix for the chat2/06 overlay, which tagged only what the offshore pass raised:
1063685222 has 11 natural islands including a 94,511-cell detached mass, 20260821 has 19,
all grey in 06's tags.png and all coloured now. The offshore pass itself is untouched; its
internal Tag stays for its own guards and is no longer exported.

The speck revert (TerrainGenConfig.SpeckRevert / MinLandComponentFrac) lowers every
non-mainland component below the threshold to the mean of its ring of adjacent sea cells,
held strictly below sea. Origin-blind: a natural nub goes the same way as an offshore dot
(6 natural components / 273 cells on the bare 1063685222 field at threshold_mid — reported
as a3r, informational). Lower-only and component-only are asserted cell by cell in the
pass and re-proven on the finished fields by oracle n (mainland bit-identical filter OFF
vs ON; every changed cell in a sub-threshold island, lowered below sea); the mainland is
never a candidate and its size is asserted unchanged across the revert. A reverted
offshore island leaves its submerged skirt as a shoal — not this component, by the rule.
Classify/render consistency is by construction (pass 1, curve identity at sea) and
asserted by oracle k. Deliberately OFF in the bare TerrainGenConfig for the reason the
shelf and islets are: the raw field has natural specks, so default-ON would move the
calibration pool and every regression dump; the batch turns it on.

Thresholds swept on 8 seeds at 4096 (1e-5 / 3e-5 / 1e-4 of the map = 168 / 503 / 1,678
cells): low removes 0–6 nubs per seed, mid (the config default, equal to the offshore
guard) 2–11, high 26–36 — most of the offshore islands, the "fewer, bigger" bookend. The
count/size table carries natural / pre / post counts per hemisphere, min/median/mean/max
and a log-spaced size histogram — the instrument for the southern-stretch step.

Oracle, all passing: a1, a3, a4 (8192, 67M cells) with labeling ON + revert OFF; a6 NEW —
labeling ON + revert OFF on the 06 preset bit-identical to the 06 batch's render field
(labeling is pure analysis); j0; m, n, o, i, j, k, l, b per field. Batch:
BatchRoot(7, "region_labeling") — exactly 4 plates (three thresholds on 1063685222,
threshold_mid on 20260821, the table's most-natural-islands seed), each with grayscale /
.f32 / relief / the labeled-regions overlay / the tag overlay, plus count_size_table.md/.csv.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013EY3ZTF6NwzF8ukBHQXSK7
2026-08-22 03:50:33 -04:00
..
CurveBaselineTool.cs Phase 2a: continuous grade — smooth the upper staircase, preserve the lowlands 2026-08-20 03:41:27 -04:00
CurveBaselineTool.cs.uid Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
CurveContinuousTool.cs Phase 2a: continuous grade — smooth the upper staircase, preserve the lowlands 2026-08-20 03:41:27 -04:00
CurveContinuousTool.cs.uid Phase 2a: continuous grade — smooth the upper staircase, preserve the lowlands 2026-08-20 03:41:27 -04:00
GrayscaleRenderer.cs Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
GrayscaleRenderer.cs.uid Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
HeightField.cs Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
HeightField.cs.uid Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
Hillshade.cs Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
Hillshade.cs.uid Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
HistogramRenderer.cs Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
HistogramRenderer.cs.uid Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
IslandFalloff.cs chat2/06: offshore islands — revert the forced floor, tune the organic layer for coverage 2026-08-21 06:22:54 -04:00
IslandFalloff.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
LandHistogram.cs Phase 2a: restore the mountain — calibrate the climb to the staircase, not to a guess 2026-08-20 04:14:47 -04:00
LandHistogram.cs.uid Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
LegendRenderer.cs Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
LegendRenderer.cs.uid Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
LookConfig.cs Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
LookConfig.cs.uid Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
MountainRestoreTool.cs Phase 2a: restore the mountain — calibrate the climb to the staircase, not to a guess 2026-08-20 04:14:47 -04:00
MountainRestoreTool.cs.uid Phase 2a: restore the mountain — calibrate the climb to the staircase, not to a guess 2026-08-20 04:14:47 -04:00
NoiseDefaultsProbe.cs Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
NoiseDefaultsProbe.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
OffshoreAnalysis.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
OffshoreAnalysis.cs.uid chat2/05: offshore islands — rejoin the stub faithfully, then reshape to a guaranteed hybrid 2026-08-21 05:14:53 -04:00
OffshoreDiagnosis.cs chat2/06: offshore islands — revert the forced floor, tune the organic layer for coverage 2026-08-21 06:22:54 -04:00
OffshoreDiagnosis.cs.uid chat2/06: offshore islands — revert the forced floor, tune the organic layer for coverage 2026-08-21 06:22:54 -04:00
OffshoreIslandsTool.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
OffshoreIslandsTool.cs.uid chat2/05: offshore islands — rejoin the stub faithfully, then reshape to a guaranteed hybrid 2026-08-21 05:14:53 -04:00
OffshorePass.cs chat2/06: offshore islands — revert the forced floor, tune the organic layer for coverage 2026-08-21 06:22:54 -04:00
OffshorePass.cs.uid chat2/05: offshore islands — rejoin the stub faithfully, then reshape to a guaranteed hybrid 2026-08-21 05:14:53 -04:00
OffshoreSettings.cs chat2/06: offshore islands — revert the forced floor, tune the organic layer for coverage 2026-08-21 06:22:54 -04:00
OffshoreSettings.cs.uid chat2/05: offshore islands — rejoin the stub faithfully, then reshape to a guaranteed hybrid 2026-08-21 05:14:53 -04:00
Pass1Result.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
Pass1Result.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
Pass2Result.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
Pass2Result.cs.uid Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
RegionLabelingTool.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
RegionLabelingTool.cs.uid chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
RegionOverlayRenderer.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
RegionOverlayRenderer.cs.uid chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
RegionPass.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
RegionPass.cs.uid chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
ReliefPalette.cs Phase 2a: continuous grade — smooth the upper staircase, preserve the lowlands 2026-08-20 03:41:27 -04:00
ReliefPalette.cs.uid Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
ReliefRenderer.cs Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
ReliefRenderer.cs.uid Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
ReliefRenderTool.cs Fix the ISLA_SOURCE default the batch rename broke 2026-08-19 23:38:10 -04:00
ReliefRenderTool.cs.uid Phase 1: shaded relief and the Hispaniola palette — the grin gate 2026-08-19 21:58:44 -04:00
ReviewBatchTool.cs Fix the ISLA_SOURCE default the batch rename broke 2026-08-19 23:38:10 -04:00
ReviewBatchTool.cs.uid Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
SeedGalleryTool.cs chat2/04: the seed gallery — render-only, plus the terrain-curve-v1 checkpoint 2026-08-21 00:20:42 -04:00
SeedGalleryTool.cs.uid chat2/04: the seed gallery — render-only, plus the terrain-curve-v1 checkpoint 2026-08-21 00:20:42 -04:00
Shaping.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
Shaping.cs.uid Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
ShapingOracle.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
ShapingOracle.cs.uid Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
TagOverlayRenderer.cs chat2/06: offshore islands — revert the forced floor, tune the organic layer for coverage 2026-08-21 06:22:54 -04:00
TagOverlayRenderer.cs.uid chat2/05: offshore islands — rejoin the stub faithfully, then reshape to a guaranteed hybrid 2026-08-21 05:14:53 -04:00
TerrainGenConfig.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
TerrainGenConfig.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
TerrainGenTool.cs Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
TerrainGenTool.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
TerrainNoise.cs Phase 2a: the faithful redistribution curve, re-measured against v2's own output 2026-08-20 01:38:10 -04:00
TerrainNoise.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
TinyFont.cs Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
TinyFont.cs.uid Phase 1 review: raw grayscale, the wide gradient as hero, fixed batch naming 2026-08-19 22:55:53 -04:00
Topography.cs chat2/07: the region-labeling layer — label all land, tag by construction, tunable speck revert 2026-08-22 03:50:33 -04:00
Topography.cs.uid Phase 1: port the crown-jewel noise and pass-1, and render the island 2026-08-19 21:27:20 -04:00
UserDirProbe.cs Phase 0: clean project skeleton for the v2 rewrite 2026-08-19 20:21:12 -04:00
UserDirProbe.cs.uid Phase 0: clean project skeleton for the v2 rewrite 2026-08-19 20:21:12 -04:00