Stage 15 GPU controls, evidence prototypes, and consumer-layout ledger
Documentation index · Development records · Stage 14 convergence ledger · Stage 16 continuation · AI-agent and 1080p consumer plan
Status
Closed 2026-08-11 on its approved active scope. Stage 15 implemented 15A
(the frozen Stage 14 handoff), 15B (lossless landscape and portrait 2K
controls), 15I (a local consumer-oriented CDN/WASM layout), the
six-projection Majuro evidence pass, the accepted standard
anthropocene-particulate-2025 and anthropocene-particulate-2026 pair, and
bounded exploration-only PurpleAir-interface and water-debris experiments.
The current standard graph contains 211 products across 32 pass IDs; the
benchmark fixture was re-frozen on 2026-08-13 at that 211-product, 32-pass
corpus so every retained parent remains buildable from the standard graph.
Compressed formats, hardware timing, picking masks, Float32 geometry, additional consumers, promotion decisions, remaining atoll evidence, and the approved agentic research-iteration program now live in the Stage 16 ledger. Moving those explicitly deferred tracks does not convert them into Stage 15 failures or imply implementation.
Purpose and boundary
Stage 15 established the evidence-preserving handoff from archive/art masters to power-of-two lossless controls and exercised local consumer packaging and bounded research prototypes. It deliberately stopped before performance or compressed-format claims.
Stage 15 does not redefine projection mathematics, pass content, source authority, archive/art masters, large-format print products, the 3840-pixel full raster, or the Stage 14 1920 × 1080 access derivative. It cannot publish to GitHub or UCB AAO/S3, accept a license, authorize an external source, or promote an experimental format merely by running a benchmark.
All interrupted projections remain flat-map textures. No Stage 15 artifact may be described or sampled as an equirectangular globe texture.
Stage 15A defines the frozen input and result/environment envelope but neither installs encoders nor executes GPU timing. Stage 15I builds and checks only a local candidate object tree; it has no network, credential, release, or upload operation. Stage 16 owns any continuation.
Stage 14 benchmark handoff
Stage 15 benchmarks from the frozen Stage 14 standard input manifest: 211 artifacts across 32 pass IDs, 11 layouts, and 14 approved slices. A first hardware canary may select a smaller deterministic subset through the Stage 14 request/decision-receipt interface, but the benchmark must retain the full manifest identity and cannot redefine the baseline by filename convention.
The handoff records, without rewriting:
- the Stage 14 source revision, runtime API 3 and geometry ABI 1 manifests;
- canonical SVG/PDF and exact-ratio print geometry plus the
check-print-contractresult; - each authoritative 3840-pixel parent and SHA-256;
- each exact 1920 × 1080 PNG/lossless-WebP baseline, content rectangle, padding color, affine transform, parent identity, and SHA-256;
- projection, layout, slice, lifecycle, authority class, source period, license, limitation, and interaction metadata; and
- the completed Stage 14 request/decision receipt when selection is performed through an agent workflow.
A 2048 × 1024 texture reference is derived from the same authoritative 3840-pixel parent as the Stage 14 screen product. It is never produced by upscaling the 1920 × 1080 derivative. If a Stage 14 parent, transform, or catalog record changes, its benchmark case receives a new identity and must be rerun.
Stage 15A begins from a newly regenerated ignored artifact catalog stamped by
the clean frozen Stage 14 commit 7ba10e6b11475326873b3e206067fecebe7cc1c2.
The previously present catalog identified commit 3a861c7 and a modified
tree; it was not eligible for the handoff. The checked freeze records the
clean commit, catalog hash, standard-manifest hash, parent hashes, and existing
lossless-screen hashes without rewriting any authoritative artifact.
Delivered products and continuation boundary
| Candidate | Role | Disposition |
|---|---|---|
| Stage 14 PNG and lossless WebP | Access and transfer baseline | Active 15A input. Preserve the exact 1920 × 1080 files and hashes; do not regenerate them inside a benchmark |
| Landscape 2K PNG | Lossless power-of-two control | Active 15B. Exact 2048 × 1024 contain canvas, declared padding, full projection visible, same 3840-pixel parent as Stage 14 |
| Portrait 2K PNG | Lossless vertical control | Active 15B. Exact 1024 × 2048 contain canvas with the same no-crop, parent, color, and transform rules |
| Deferred GPU and consumer work | Compression, benchmarks, masks, Float32, additional adapters, and promotion | Moved to Stage 16A–16F with the 15A/15B inputs re-frozen at the current corpus |
PNG is the lossless visual control for the completed Stage 15 work. The benchmark contract, hardware matrix, and pass-specific compression cautions have moved intact to Stage 16.
Anthropocene disposition
The former unqualified anthropocene pass is now the accepted standard
anthropocene-particulate family. It is default-generated as two explicit
editions across all six projections:
anthropocene-particulate-2025is a complete-calendar-year snapshot;anthropocene-particulate-2026is a partial-year snapshot whose profile records the snapshot boundary and source-specific available-through dates; andanthropocene-temperature-2025andanthropocene-temperature-2026remain the independent accepted standard temperature family.
The rename removes the ambiguous unqualified product rather than preserving two names for the same plate. The particulate observation field retains its source-specific logarithmic marker opacity, a doubled primary title, and source period/status in evidence metadata. The 60% field cap applies to the temperature and Stage 15 experimental overlays, not retroactively to these source-separated glyphs. The two year-qualified particulate passes add six products and one pass ID to the current standard graph; the Stage 15A input freeze was refreshed to that 211-product/32-pass corpus.
Lifecycle boundaries remain explicit:
| Family | Lifecycle | Default build | Claim boundary |
|---|---|---|---|
anthropocene-particulate-{2025,2026} |
Standard; accepted experimental content | Yes | Checked observations and source receipts only; 2026 is visibly partial |
anthropocene-temperature-{2025,2026} |
Standard; accepted experimental content | Yes | CPC field; 2026 is visibly partial |
anthropocene-particulate-purpleair-{2025,2026} |
Exploration only | Only through make all-experiments or its explicit target |
Synthetic interface anchors, never sensors or measurements |
anthropocene-water-debris-{2025,2026} |
Exploration only | Only through make all-experiments or its explicit target |
Five 2018 depth-station observations; edition year is not observation year |
PurpleAir interface experiment
The PurpleAir prototype is implemented as 12 deterministic SVGs: two atlas
editions across six projections. Its purpleair-experiment layer is visible
by default at 60% opacity so visual behavior can be reviewed. The checked
fixture deliberately contains 12 labeled rendering anchors and no sensor
IDs, PM2.5 values, measurements, or claim of PurpleAir observations. It is
therefore credential-free, reproducible, and unsuitable for evidentiary use.
A future observed-data adapter needs a PurpleAir read key, a reviewed source- use and retention decision, sensor and correction metadata, timestamps, and a receipt before any downloaded snapshot is retained. Keys are created at PurpleAir Develop and belong only in the acquisition process environment. They must never enter a fixture, generated plate, log, report, Git object, or release package. The current interface experiment does not ask for or use that key.
Research prototype R2 — anthropocene water debris
The original feasibility gate has been superseded by a bounded first
experiment, while its evidence classification remains authoritative. The
experiment distinguishes observed shoreline or surface debris, modeled
concentration, modeled river emission, cleanup operation, depth profile, and
unavailable depth. A two-dimensional patch shape is never presented as an
observed three-dimensional debris body, and unknown depth is UNAVAILABLE,
not zero.
Twelve exploration SVGs cover the 2025 complete and 2026 partial atlas editions across all six projections. Only five geolocated depth-profile stations observed from 2018-11-01 through 2018-12-04 are rendered as observations. The NOAA shoreline inventories, candidate survey sites, Ocean Cleanup overview, and the 2015–2022 surface-survey family remain visibly context-only or unavailable. The edition labels organize the atlas; they do not rewrite the observation year. Each rendered station carries a qualified forward/reverse projection check, and the observed layer uses 60% opacity and the doubled-title rule.
The historical source decision and the implemented bounded outcome are
documented in
Stage 15 R2 — anthropocene water-debris feasibility
and the checked
anthropocene-water-debris manifest.
Neither the experiment nor its contact sheet is a standard artifact, default
release product, garbage-patch boundary, or global debris census.
Getting and using a NASA FIRMS MAP_KEY
NASA FIRMS active-fire acquisition is externally authorized and is never a prerequisite for an ordinary local build. To enable it:
- Request a free key with an email address on the official NASA FIRMS MAP_KEY page. FIRMS sends the key to that address. The same page can check its current transaction use; NASA presently documents a limit of 5,000 transactions in each 10-minute interval.
-
Put the delivered value only in the environment for the acquisition run. Do not add it to Git,
.netrc, a checked.envfile, a command argument, or a report:read -rsp 'NASA FIRMS MAP_KEY: ' FIRMS_MAP_KEY printf '\n' export FIRMS_MAP_KEY make authorize-external EXTERNAL_PASSES=nasa-firms make generate-authorized-external EXTERNAL_PASSES=nasa-firms unset FIRMS_MAP_KEYauthorize-externalchecks the key against the FIRMS data-availability endpoint without printing it.generate-authorized-externalthen fetches and prepares review candidates; it does not promote or publish them. The official FIRMS API tutorial documents the same MAP_KEY and availability test. - Review the candidate before replacing a checked snapshot. A keyed refresh
changes the raw-source receipt, FIRMS row counts, normalized GeoJSON hash,
profile data hash, and
SHA256SUMS. Preserve the observation dates and the FIRMS product identifiers in that receipt. The currently checked particulate snapshots record zero FIRMS rows and therefore must not be described as a global active-fire census until a reviewed keyed refresh is accepted.
The acquisition script spaces FIRMS requests with
ANTHROPOCENE_FIRMS_DELAY_SECONDS; keep the default unless a separately
documented NASA allowance supports a different rate. A failed authorization
or exhausted transaction window is a source-acquisition failure, not grounds
for silently omitting FIRMS while claiming equivalent coverage.
Research prototype R1 — implemented Majuro evidence pass
Add an atoll-scale evidence tier for place-specific research, beginning with the Marshall Islands experiments. Bring in high-resolution topobathymetry, inundation scenarios, freshwater, infrastructure, shoreline, reef, and ocean-heat data, with explicit uncertainty and observation/source dates.
This tier is an evidence project, not a raster-resolution shortcut. Every
layer must retain source identity, spatial and temporal resolution, vertical
datum where applicable, license and redistribution terms, uncertainty or
scenario assumptions, preparation history, and the date or period that the
observation represents. Scenario output must remain distinguishable from an
observation, and missing uncertainty must be UNAVAILABLE rather than zero.
Atoll-scale products begin as exploration-only. Promotion requires local and regional review of feature meaning and omission, an explicit relationship to the global atlas layer, documented scale limits, and a decision about whether the product is suitable for research comparison, public interpretation, or visual speculation only. The tier must support forward and reverse projection fixtures so a selected pixel, feature, or scenario can be traced back to its source coordinate and evidence record.
The implemented evidence pass uses two reviewed public-domain USGS packages:
the
1944–2016 Majuro 1 m topobathymetric DEM and the 2016-source 30-inch marine
inundation assessment. Original archives and metadata are retained under the
explicitly Git-ignored assets.static/atoll-evidence/.raw/ boundary. Three
checked approximately 10 m GeoTIFF derivatives preserve the source CRS,
NoData, data type, and evidence class; they are convenient render inputs, not
substitutes for the authoritative 1 m sources.
The visually approved 2560 × 1440 canary established the composition, after
which the same evidence contract was implemented for Cahill–Keyes,
AuthaGraph, Dymaxion, Myriahedral Pacific, Star-X, and Voronoi. The full pass
contains 24 artifacts: layered SVG, authoritative print PDF, 3840-pixel
long-side PNG, and 480-pixel thumbnail for each projection. Its checked
contact sheet is
output/majuro-atoll-evidence-pass-v01/contact-sheet.png.
Every composition keeps three claims separate: a planetary locator, an observation-derived topobathymetric panel, and a modeled 0.762 m-above-MHHW inundation panel. The probability field is color and the deterministic extent is an outline, so neither scenario is misrepresented as an observed flood. Freshwater, infrastructure, a current independent shoreline, reviewed reef geometry, ocean heat, and community/regional review remain explicitly unavailable or incomplete.
Five metadata-envelope anchors and one prepared-pixel anchor carry source
coordinates, forward pixels, native cells/components, and face-qualified
reverse candidates. All six live runtime round trips pass within 2e-8
degrees. This implements traceability without granting promotion: visual
approval authorizes a complete projection family, not standard lifecycle,
default generation, GitHub release, or UCB AAO/S3 publication.
The checked outcome is Stage 15 R1 — atoll-scale evidence canary.
Active 15I — consumer-oriented CDN and WASM layout
Stage 15I treats the object tree as a versioned CDN data ABI. It compares the immutable v13 publication with a proposed v14 layout that adds machine-readable indexes, stable lifecycle partitions, declared media and cache policy, and a runtime manifest for browser, game, and AI-agent consumers.
Implementation is local only: a checked schema, fixture, builder, checker, and
v13-to-proposed-v14 compatibility document. The builder may copy local runtime
files into an ignored staging tree, but it cannot access S3 or invoke release
transport. Shared AAO publication mechanics remain owned by
alpha60-clusterops/bin/load-s3-aao; Cartofreako supplies manifests and a thin
release-specific wrapper only.
The review covers immutable or content-addressed runtime identity, correct WASM and module MIME types, cache policy, optional precompression, and the split between core projection runtime and optional canvas, SVG, D3, Three.js, worker, and catalog helpers. A versioned immutable runtime directory is preferred where independently hashed Emscripten loader/WASM renames would break their default pairing. No v14 archive is rebuilt, released, or uploaded by this work. The compatibility reference is v13-to-proposed-v14, not v14-to-v14.
The checked compatibility and implementation reference is v13 to proposed-v14 consumer layout.
Implemented active results
| Work | Local result | Identity or evidence |
|---|---|---|
| 15A | Frozen 211 standard artifacts, 32 pass IDs, 11 layouts, and 14 approved slices from the clean Stage 14 catalog | Commit 7ba10e6b11475326873b3e206067fecebe7cc1c2; input-fixture SHA-256 5280a237e763157dac03dd4e43dc16ff97ed37a91757af8ee3540f219ee8805f |
| 15B | Generated and checked 211 landscape 2048 × 1024 PNGs and 211 portrait 1024 × 2048 PNGs | 422 files; 145,877,228 bytes; generated-catalog SHA-256 8d1168986c708abe22c6098090b56c92f9a78ffad246310aa8e6e2d06c11e7d4 |
| 15I | Built a 62-file local candidate with one primary index, 32 pass indexes, 11 projection indexes, and 16 runtime files | 1,304,361 bytes; local release-layout.json SHA-256 0a3296e744f4758bca1e4710c75eb3b8f72019c9935891173dbbb4e0970bf550; no release.json |
| Anthropocene standard | Replaced the unqualified pass with complete-2025 and partial-2026 particulate editions across six projections | Current standard graph: 211 artifacts and 32 pass IDs; Stage 15A input re-frozen at that corpus |
| R1 | Extended the approved Majuro canary into six projection compositions and 24 SVG/PDF/full-PNG/thumbnail artifacts | Public USGS raw packages remain Git-ignored; contact-sheet SHA-256 a211a107838fd51fb7dccf998760fa9ebabd11930df5bdbb11e0f88009848bf6; no promotion or publication |
| R2 | Implemented 12 reversible water-debris exploration plates with five observed 2018 depth stations and four context-only source families | Contact-sheet SHA-256 3ed9e5c6cb25666c86e37568c34fca0701200f80e940f67be533f462e51d13ef; no patch polygon, global census, promotion, or publication |
| PurpleAir | Implemented 12 default-visible interface-review overlays using 12 deterministic synthetic anchors | No credential, sensor, measurement, observation claim, promotion, or publication |
The 15B generator hashes every authoritative full PNG before and after
conversion. Both controls use contain, Lanczos resampling, the WCAG-light
gray #f4f5f5 background, opaque 8-bit sRGB PNG, and no crop. They are built
directly from the 3840-pixel parent, never from the 1080p derivative. The
portrait control intentionally has substantial letterboxing for landscape
layouts; it preserves the entire flat projection instead of zooming or
cropping.
A representative water-plate contact-sheet review covered all eleven layouts in both orientations. All maps were fully contained, the vertical Star-X product retained its central black star and Antarctic component, and no content edge was clipped. This is control-product QA, not a GPU quality or performance claim.
The implementation remains explicit and offline:
make freeze-stage-15-inputs
make check-gpu-controls
make check-consumer-release-layout
make check-atoll-evidence-canary
make check-majuro-atoll-evidence
make check-anthropocene-particulate
make check-anthropocene-purpleair-experiments
make check-anthropocene-water-debris-experiments
make check-stage-15-research-prototypes
make check-stage-15-active
These targets are deliberately absent from make all, ordinary make check,
GitHub release, and UCB AAO/S3 release.
The local-only build aggregate also includes the Marshall Islands speculative render family:
make list-experiments
make all-experiments-fetch
make all-experiments
make check-all-experiments
all-experiments invokes seven implemented builders: GPU controls, the local
consumer-layout prototype, the Majuro canary, the Marshall Islands
speculations, the full Majuro evidence pass, the synthetic PurpleAir
interface review, and the bounded water-debris experiment. It does not run
checks, source acquisition, external authorization, benchmarks, promotion,
release, or publication. Adding an experiment to this aggregate never changes
its lifecycle. The GPU-control builder consumes the frozen Stage 14
full-PNG parents, so all-experiments builds any missing parents from the
standard generation graph before rendering controls. Run
make all-experiments on a fresh host: it runs the deterministic three-rule
chain automatically — make clean, then make all-experiments-fetch (Natural
Earth, astro, orbiting, atoll evidence, and the JAXA P-Tree trust anchor and
data), then the eight experiment builders — without adding a fetch target to
the aggregate registry itself.
Closed staging record
| Work | Closure disposition |
|---|---|
| 15A — frozen handoff | Implemented: clean Stage 14 catalog, hashes, deterministic corpus, and benchmark envelope frozen |
| 15B — lossless 2K controls | Implemented: checked 2048 × 1024 landscape and 1024 × 2048 portrait PNG controls |
| 15I — CDN/WASM layout | Implemented locally: checked consumer object-tree fixture and v13-to-proposed-v14 compatibility; never uploaded |
| Anthropocene particulate | Implemented standard: complete 2025 and partial 2026 editions default-generated; current graph 211/32, frozen input re-frozen at 211/32 |
| R1 — atoll evidence | Implemented exploration pass: six compositions, 24 artifacts, checked contexts, and qualified reverse fixtures |
| R2 — water debris | Implemented bounded experiment: 12 SVGs with five observed depth stations and explicit unavailable/context-only families |
| PurpleAir interface | Implemented synthetic experiment: 12 default-visible overlays with no observations or credential |
| Former 15C–15H and incomplete evidence tiers | Moved, without implementation claims, to Stage 16 |
Implemented repository surface
The active implementation uses:
contracts/gpu-benchmark-v1.schema.json
fixtures/gpu-benchmark/v1/stage-14-inputs.json
scripts/freeze-stage-15-inputs.mjs
scripts/generate-gpu-controls.mjs
assets.generated/<projection>/gpu-control-2k-{landscape,portrait}/*.png
assets.generated/catalog/gpu-controls-v1.json
tests/test-gpu-controls.mjs
tests/validate-stage15-contracts.py
contracts/consumer-release-layout-v1.schema.json
fixtures/consumer-release-layout/v1/manifest.json
scripts/build-consumer-release-layout.mjs
scripts/check-consumer-release-layout.mjs
docs/pages/releases/v13-to-v14-consumer-layout.md
contracts/atoll-evidence-v1.schema.json
contracts/atoll-coordinate-fixtures-v1.schema.json
fixtures/atoll-evidence/v1/manifest.json
fixtures/atoll-evidence/v1/coordinates.json
fixtures/atoll-evidence/v1/pass-manifest.json
assets.static/atoll-evidence/README.md
assets.static/atoll-evidence/prepared/*
assets.static/atoll-evidence/context/*
scripts/fetch-atoll-evidence-data.sh
scripts/prepare-atoll-evidence-data.sh
scripts/build-atoll-evidence-fixtures.mjs
scripts/render-atoll-evidence-canary-v01.sh
scripts/prepare-atoll-evidence-contexts.sh
scripts/generate-majuro-atoll-evidence.mjs
scripts/export-majuro-atoll-evidence.mjs
tests/test-atoll-evidence-canary.mjs
tests/test-majuro-atoll-evidence-pass.mjs
output/atoll-evidence-canary-v01/majuro-atoll-evidence-canary.png
output/majuro-atoll-evidence-pass-v01/contact-sheet.png
reports/stage-15-atoll-evidence-canary.md
contracts/water-debris-evidence-v1.schema.json
fixtures/water-debris-evidence/v1/manifest.json
reports/stage-15-water-debris-feasibility.md
contracts/anthropocene-water-debris-experiment-v1.schema.json
fixtures/anthropocene-water-debris/v1/manifest.json
scripts/generate-anthropocene-water-debris-experiments.mjs
tests/test-anthropocene-water-debris-experiments.mjs
output/anthropocene-water-debris-v01/contact-sheet.png
contracts/anthropocene-purpleair-experiment-v1.schema.json
fixtures/anthropocene-purpleair/v1/manifest.json
scripts/generate-anthropocene-purpleair-experiments.mjs
tests/test-anthropocene-purpleair-experiments.mjs
assets.static/anthropocene/anthropocene-particulate-{2025,2026}-profile.json
assets.static/anthropocene/anthropocene-particulate-{2025,2026}.geojson
Active Make targets are freeze-stage-15-inputs,
generate-gpu-controls, check-gpu-controls,
build-consumer-release-layout, check-consumer-release-layout,
generate-atoll-evidence-canary, check-atoll-evidence-canary,
generate-majuro-atoll-evidence, check-majuro-atoll-evidence, and the
explicit PurpleAir and water-debris experiment builders/checkers. Raw
acquisition and preparation are separate fetch-atoll-evidence-data and
prepare-atoll-evidence-data maintainer targets; generation never invokes
either. No benchmark-gpu-products target was added. Only the
year-qualified particulate family enters make all and the standard graph;
the research products do not enter ordinary make check, GitHub release, or
UCB AAO/S3 release without a later promotion decision.
all-experiments is the independent convenience aggregate for the currently
implemented non-release builders. Adding a later experiment requires updating
its checked registry; lifecycle or release eligibility never changes merely
because a builder is added to that aggregate.
Closure evidence
Stage 15 closes only on checked local evidence. Its release gate covers the 211-product/32-pass standard manifest, the frozen 211/32 benchmark fixture, dual-year particulate family, lossless screen and GPU controls, local consumer layout, Majuro products, PurpleAir interface, water-debris experiment, experiment registry, pass status, documentation, and repository formatting. The final command outcomes and source identity belong in the Stage 15 release notes rather than being inferred from this plan.
The checked particulate snapshots contain zero FIRMS rows. A future keyed refresh still requires a human-generated key and reviewed candidate. A real PurpleAir snapshot still requires source-use, retention, redistribution, and credential review. Those facts do not block closure of the implemented, explicitly bounded products.
Promotion and release rule
Stage 15 GPU controls and research products remain exploration-only. The closed scope creates lossless controls and local layout/evidence artifacts; it creates no compressed or GPU-promoted product. Stage 16 owns any future promotion evidence and must not change the authoritative archive/art, print, full-raster, or Stage 14 screen contracts.
GitHub source publication and UCB AAO/S3 preservation remain separate human decisions. No benchmark target invokes either path.