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:

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:

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:

  1. 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.
  2. Put the delivered value only in the environment for the acquisition run. Do not add it to Git, .netrc, a checked .env file, 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_KEY
    

    authorize-external checks the key against the FIRMS data-availability endpoint without printing it. generate-authorized-external then 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.

  3. 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.