|
|
|
@@ -2403,3 +2403,32 @@ RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is
|
|
|
|
|
D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating.
|
|
|
|
|
|
|
|
|
|
Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only.', 'in_progress', 'high', NULL, 'client', NULL, '2026-07-21 12:19:16.212', '2026-07-21 19:10:46.889', NULL, 'ba1c5f1583066ebba07766b39cffcaa4', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCET0RKD7ED9D9RY5Q99RQG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'derive_at_metres extraction + min_wavelength octave cutoff in enveloped_fbm', 'Zoom-ladder migration step 1 (docs/architecture/atlas-zoom-ladder-t1143.md SS8; keystone for every rung). Extract derive_district''s fractional-metres interior (district_profile.rs:1426+ already computes px/py/world_x_m/world_y_m/lat_deg from the integer DistrictPos) into derive_at_metres(seed, body, wx, wy, min_wl); derive_district becomes a thin integer-quantizing wrapper — bit-identical output for existing callers is the acceptance test (golden harness must not move). Add min_wavelength_m: f64 to enveloped_fbm (detail_scatter.rs:137-176) and the terrain_detail/voxel_relief const-octave paths: truncate octaves below the cutoff; evaluate Dudley''s amplitude-fade-near-cutoff refinement vs hard truncate (pop risk as sampling density crosses an octave boundary) and pick with a visual A/B. Re-benchmark derive cost with the cutoff active at district and quarter spacings — the design doc''s numbers are for the UNMODIFIED pipeline and are marked contested (SS2 status note + Troblum R-findings).', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-21 19:50:57.988', '2026-07-21 19:50:57.988', NULL, '1bdbf75be57bb3c9c117650378782188', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCEV8Q32C2FW9Y6733419DG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'window_granularity + window_min_wl_m on the district_window carrier (five touch points + aliasing test)', 'Zoom-ladder migration step 3 (docs/architecture/atlas-zoom-ladder-t1143.md SS3). serde-default window_granularity: u32 (1=district, 4=quarter) and window_min_wl_m: u32 (0=off) on AtlasLayerRequest — the T-1124 SS1 additive pattern, no sixth demux shape. The design pass flags this as a five-touch-point coordinated change and mandates the test: server DistrictWindowLayer echo tuple (center, n, granularity), server FIFO-256 window cache key (layer_proxy.rs:308), server per-connection coalescing key (gen_queue.rs:221-224), client request struct, client 24-entry LRU key (atlas_window_cache.gd:33-38). MANDATORY regression test: granularity-4 and granularity-1 requests at identical (center, n) must produce DISTINCT cache entries on BOTH ends — a missed key (worst: client) silently aliases quarter data onto district slots with no error. Quarter derivation mode = Option B full reclassification at 512m spacing (design SS2), served through the same queue; per-request cell cap per the capped-density rule.', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-21 19:51:08.216', '2026-07-21 19:51:08.216', NULL, '223d6d026e39f34dbcb873c10ac123b2', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCEWBS5RC5YET0SMSPZ1E9W', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Chunked par_iter for build_district_window_layer', 'Zoom-ladder migration step 2 (docs/architecture/atlas-zoom-ladder-t1143.md SS8). build_district_window_layer''s cell loop (layer_proxy.rs:388) is serial today; parallelize with row/column chunked par_iter on the existing Rayon pool (the GenerationQueue already runs windows on Rayon — this parallelizes WITHIN a window). Needed before quarter windows: n=32-extent at quarter granularity is 16,384 cells (~20-23ms serial uncapped, design SS2 table). Determinism: chunk boundaries must not change output — cells are independent by construction (derive_at_metres is pure), assert with a serial-vs-parallel golden comparison.', 'backlog', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:17.193', '2026-07-21 19:51:17.193', NULL, 'fa5a115d44400e7191be794d7335b90b', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCEXHYP8RVBPB8QNZHTNTR0', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Derived planetary rung — progressive capped-density tiling; AtlasViewer heightmap texture retires', 'Zoom-ladder migration step 4 (docs/architecture/atlas-zoom-ladder-t1143.md SS4/SS8) under Jeroen''s carrier ruling (2026-07-21): the orbital view becomes fully derived output served as PROGRESSIVE CAPPED-DENSITY TILING on the generalized district_window carrier at coarse granularity (region-band octaves, region_baseline_at_district blend path — no invent_primitives at orbital wavelengths) — no dense raster wire shape, no tagged-envelope migration. Client: AtlasViewer''s direct heightmap-texture display path retires IN THE SAME CHANGE that the derived orbital view lands (never strand the view); heightmap PNGs/systems.db raster become invisible derivation input only (D-166 corollary; import_heightmaps stays as input storage). Carries design risks R1 (planetary cost story is stacked unmeasured extrapolations — measure first), R2 (stepped categorical fields at orbital scale), R5 (granularity param cannot express coarser-than-district — needs the enum/log-scale redesign before this rung). Blocked by the granularity carrier and derive_at_metres steps.', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-21 19:51:26.966', '2026-07-21 19:51:26.966', NULL, '5d00f9ebf2ef16ebe4e7d4d5724edb9a', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCEZ47J16E3XKE957HGR8H4', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Continuous cursor-anchored zoom ladder in the client — rung selection, progressive refinement, seam zoom with full-zoom-out reset', 'Zoom-ladder migration step 5 (docs/architecture/atlas-zoom-ladder-t1143.md SS5/SS8) under Jeroen''s seam ruling (2026-07-21): wheel zoom is CONTINUOUS and CURSOR-ANCHORED from the orbital frame down through regional granularities (supersedes the click-through-only entry; D-013''s ''zoom gesture owns spatial descent'' restored for this seam), with the HARD CONDITION that a full zoom-out resets to the original canonical planetary frame and location (the fixed orbital framing is the ladder''s top rest state — no drifted pan state at the top). Rung-selection rule: sample spacing E/C (world extent per canvas px); request the coarsest rung whose spacing <= 2x(E/C). Progressive refinement: hold the coarse composite, fetch finer granularity, sharpen in place (Araminta SS6: no hue step, no layout jump, coastline stable across rungs — acceptance criteria in the doc). Request coalescing across zoom gestures; T-1138''s click-through + reticle retire in the same change. Encoding continuity per SS6 (one colorizer family; hue-average rule ties to the reclassification mode). Blocked by the granularity carrier; the planetary top rung can land before or after (degrade gracefully to current fixed orbital view).', 'backlog', 'high', NULL, 'client', 'D-226', '2026-07-21 19:51:39.836', '2026-07-21 19:51:39.836', NULL, '4c3d09a884f926248e30a96fc05c71d5', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Below-quarter measurement pass — block/tile rung costs and wire (gate for the opened (d) floor)', 'Gate ticket from Jeroen''s floor ruling (2026-07-21, D-226 amendment: ''we set a new BHAG so old restrictions are up for debate'' — the Atlas ladder may descend below quarter toward tile, implementation-gated on THIS pass). Measure what the design pass could not (docs/architecture/atlas-zoom-ladder-t1143.md SS2 marks block/tile ''not estimated''): per-cell derive cost at block (128m) and tile-adjacent spacings with the min_wavelength cutoff active; realistic window cell counts and wire bytes at those granularities vs the SS4 budget; memory/caching behavior; whether voxel_relief/voxel_mosaic math is reusable as-is for Atlas sampling or needs an extraction like derive_at_metres. Output: a costs appendix to the design doc + go/no-go recommendation per rung. Constraint preserved by the ruling: chunk/tile output never appears as a whole-body planetary layer — windowed viewport only. Blocked by derive_at_metres (the cutoff must exist to measure with it).', 'backlog', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:50.248', '2026-07-21 19:51:50.248', NULL, 'febcd5cf37559ab0035868c37624a605', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCF1A0K41K6S85X0HTXACHM', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Retire COMPOSITE_SMOOTH once quarter windows are default at close zoom', 'Zoom-ladder migration step 6 (docs/architecture/atlas-zoom-ladder-t1143.md SS8). The linear-filter interim (atlas_window_overlay.gd:60, T-1145) retires once granularity-4 quarter windows are the default at close zoom — real classified quarter cells replace GPU bilinear smoothing as the source of sub-district texture (Jeroen''s ruling: smoothing was never the destination). Remove the compile-time const and the crisp/smooth dual path; keep one render path. Blocked by the client zoom ladder.', 'backlog', 'low', NULL, 'client', 'D-226', '2026-07-21 19:51:57.700', '2026-07-21 19:51:57.700', NULL, '9f78be3b6bdaafe665c0f21354b2118e', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FR97DPEHANCYX2AC4021BSJC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Regional window legibility on quiet interiors — window-local elevation contrast', 'Follow-on from Jeroen''s first descent (2026-07-21): even with T-1142 fixed, many interior windows are genuinely one morphology zone across 66km, and the composite''s absolute lightness modulation (0.7 + 0.3 x elev_q/100, D-226 T-1124 SS5) spans only ~1-3% lightness over a window whose local elev range is small — the window reads as a dead flat fill rather than terrain. Proposal to evaluate WITH Araminta (SS5 is her encoding): window-local contrast stretch — normalize lightness within the window''s own elev min..max (fixed band, e.g. 0.62..0.92) with a degenerate floor (single-value window stays honestly flat), deterministic per window, mirroring how the aliveness_probe elev panel achieved its 12-level local texture. Alternative/complement: a faint deterministic per-cell variation or contour hinting. Any change to the recorded SS5 encoding gets a one-line amendment note. Assess AFTER T-1142 lands — real clicks will then land on real terrain and the residual flatness can be judged on coastal vs interior windows.
|
|
|
|
|
|
|
|
|
|
Scope expansion (Jeroen round-2, 2026-07-21): beyond window-local contrast, evaluate SUB-DISTRICT SAMPLING to de-block the composite at the data level — the D-227 invention fields (invent_primitives: warped envelope, scatter, character) are continuous at metre resolution and quarter granularity (512m, 4x4 per district) sits WITHIN the D-226(d) Atlas ceiling (the cap rules out chunk/tile mapping, not quarters). But classification (derive_district) is per-district today — finer sampling means a new derivation mode (e.g. sample the continuous primitives at quarter spacing and reuse the district''s classification for hue while modulating lightness/moisture per quarter, or classify per quarter at 16x the derive cost — n=32 window = 16384 quarter cells x ~7us = ~115ms background). Needs Dudley/Tyre on data feasibility + cost, Araminta on encoding. INTERIM already shipping in T-1145: linear-filtered texture rendering (presentation smoothing, no data change) — judge the residual need after both T-1145 and real-aim clicking land.
|
|
|
|
|
|
|
|
|
|
RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is INTERIM ONLY — he expects not to like it as the destination. The destination is SMALLER DETERMINISTICALLY-CALCULATED PIXELS (sub-district sampling, the sketch above), and the larger vision: SCROLL-ZOOM AS CONTINUOUS INFORMATION LoD — zooming in from the regional level progressively refines the sampled resolution seamlessly (no mode transition), ''zoom in to tile size from this level'' in his words. The design pass must therefore produce: (a) the granularity ladder the zoom traverses (district 2048m -> quarter 512m -> ? ), with derivation modes + per-window costs at each rung; (b) wire implications — finer windows multiply cell counts (quarter = 16x district cells/window); weigh against the windowed-family ceiling and the SS4 budget model (likely per-rung window requests reusing the same district_window carrier at different granularity, or a granularity param — design call); (c) THE FLOOR QUESTION back to Jeroen explicitly: ''tile size'' intersects the D-226(d) ceiling (chunk/tile output never Atlas-mapped; quarter is the current legal floor) — the pass presents the options (stop at quarter vs supersede D-226(d) for the window view) rather than assuming; (d) Araminta: encoding continuity across rungs (one colorizer family, hue stability as resolution refines). The COMPOSITE_SMOOTH linear-filter path ships until this lands, then is expected to be retired.
|
|
|
|
|
|
|
|
|
|
D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating.
|
|
|
|
|
|
|
|
|
|
Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only.
|
|
|
|
|
|
|
|
|
|
DESIGN PASS DELIVERED (2026-07-21): docs/architecture/atlas-zoom-ladder-t1143.md — 9-agent pass (Tyre/Dudley/Araminta design, Troblum adversarial + completeness critique, Qatux synthesis). Jeroen''s three rulings recorded as a D-226 amendment: (1) floor OPENED — ''we set a new BHAG so old restrictions are up for debate''; ladder may descend below quarter, gated on the T-1154 measurement pass; (2) planetary carrier = progressive capped-density tiling on the generalized district_window carrier; (3) entry seam = continuous cursor-anchored zoom with full-zoom-out reset to the canonical planetary frame (supersedes the click-through-only cut). Implementation chain created: T-1149 (derive_at_metres + octave cutoff, keystone) -> T-1150 (granularity carrier, five touch points + aliasing test) + T-1151 (window par_iter) -> T-1152 (derived planetary rung) + T-1153 (client continuous ladder) -> T-1155 (COMPOSITE_SMOOTH retirement); T-1154 (below-quarter measurement gate). Original scope items resolved by the ladder: window-local contrast stretch judged obsolete under quarter sampling (SS6), COMPOSITE_SMOOTH interim retires at T-1155.', 'in_progress', 'high', NULL, 'client', NULL, '2026-07-21 12:19:16.212', '2026-07-21 19:52:27.615', NULL, '56256a6146f8800e4181f79ac8f14a6b', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FR97DPEHANCYX2AC4021BSJC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Regional window legibility on quiet interiors — window-local elevation contrast', 'Follow-on from Jeroen''s first descent (2026-07-21): even with T-1142 fixed, many interior windows are genuinely one morphology zone across 66km, and the composite''s absolute lightness modulation (0.7 + 0.3 x elev_q/100, D-226 T-1124 SS5) spans only ~1-3% lightness over a window whose local elev range is small — the window reads as a dead flat fill rather than terrain. Proposal to evaluate WITH Araminta (SS5 is her encoding): window-local contrast stretch — normalize lightness within the window''s own elev min..max (fixed band, e.g. 0.62..0.92) with a degenerate floor (single-value window stays honestly flat), deterministic per window, mirroring how the aliveness_probe elev panel achieved its 12-level local texture. Alternative/complement: a faint deterministic per-cell variation or contour hinting. Any change to the recorded SS5 encoding gets a one-line amendment note. Assess AFTER T-1142 lands — real clicks will then land on real terrain and the residual flatness can be judged on coastal vs interior windows.
|
|
|
|
|
|
|
|
|
|
Scope expansion (Jeroen round-2, 2026-07-21): beyond window-local contrast, evaluate SUB-DISTRICT SAMPLING to de-block the composite at the data level — the D-227 invention fields (invent_primitives: warped envelope, scatter, character) are continuous at metre resolution and quarter granularity (512m, 4x4 per district) sits WITHIN the D-226(d) Atlas ceiling (the cap rules out chunk/tile mapping, not quarters). But classification (derive_district) is per-district today — finer sampling means a new derivation mode (e.g. sample the continuous primitives at quarter spacing and reuse the district''s classification for hue while modulating lightness/moisture per quarter, or classify per quarter at 16x the derive cost — n=32 window = 16384 quarter cells x ~7us = ~115ms background). Needs Dudley/Tyre on data feasibility + cost, Araminta on encoding. INTERIM already shipping in T-1145: linear-filtered texture rendering (presentation smoothing, no data change) — judge the residual need after both T-1145 and real-aim clicking land.
|
|
|
|
|
|
|
|
|
|
RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is INTERIM ONLY — he expects not to like it as the destination. The destination is SMALLER DETERMINISTICALLY-CALCULATED PIXELS (sub-district sampling, the sketch above), and the larger vision: SCROLL-ZOOM AS CONTINUOUS INFORMATION LoD — zooming in from the regional level progressively refines the sampled resolution seamlessly (no mode transition), ''zoom in to tile size from this level'' in his words. The design pass must therefore produce: (a) the granularity ladder the zoom traverses (district 2048m -> quarter 512m -> ? ), with derivation modes + per-window costs at each rung; (b) wire implications — finer windows multiply cell counts (quarter = 16x district cells/window); weigh against the windowed-family ceiling and the SS4 budget model (likely per-rung window requests reusing the same district_window carrier at different granularity, or a granularity param — design call); (c) THE FLOOR QUESTION back to Jeroen explicitly: ''tile size'' intersects the D-226(d) ceiling (chunk/tile output never Atlas-mapped; quarter is the current legal floor) — the pass presents the options (stop at quarter vs supersede D-226(d) for the window view) rather than assuming; (d) Araminta: encoding continuity across rungs (one colorizer family, hue stability as resolution refines). The COMPOSITE_SMOOTH linear-filter path ships until this lands, then is expected to be retired.
|
|
|
|
|
|
|
|
|
|
D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating.
|
|
|
|
|
|
|
|
|
|
Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only.
|
|
|
|
|
|
|
|
|
|
DESIGN PASS DELIVERED (2026-07-21): docs/architecture/atlas-zoom-ladder-t1143.md — 9-agent pass (Tyre/Dudley/Araminta design, Troblum adversarial + completeness critique, Qatux synthesis). Jeroen''s three rulings recorded as a D-226 amendment: (1) floor OPENED — ''we set a new BHAG so old restrictions are up for debate''; ladder may descend below quarter, gated on the T-1154 measurement pass; (2) planetary carrier = progressive capped-density tiling on the generalized district_window carrier; (3) entry seam = continuous cursor-anchored zoom with full-zoom-out reset to the canonical planetary frame (supersedes the click-through-only cut). Implementation chain created: T-1149 (derive_at_metres + octave cutoff, keystone) -> T-1150 (granularity carrier, five touch points + aliasing test) + T-1151 (window par_iter) -> T-1152 (derived planetary rung) + T-1153 (client continuous ladder) -> T-1155 (COMPOSITE_SMOOTH retirement); T-1154 (below-quarter measurement gate). Original scope items resolved by the ladder: window-local contrast stretch judged obsolete under quarter sampling (SS6), COMPOSITE_SMOOTH interim retires at T-1155.', 'done', 'high', NULL, 'client', NULL, '2026-07-21 12:19:16.212', '2026-07-21 19:52:32.105', NULL, 'bde71c887bb5dcfeb867591b98b59285', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
|
|
|
|