Skip to content

Experiment history

Round 1 — the four themes (7/7 merge overall)

Section titled “Round 1 — the four themes (7/7 merge overall)”
# Theme Experiment Verdict One-liner
01 T01 Client-side wrapper client-side-wrapper ✅ merge In-browser categorical + continuous stats, fidelity table, query panel
02 T02 Modern interaction stat-interaction ✅ merge Metric/Dimension/Filter/Facet explorer, 3 linked views
03 T03 Novel plotting novel-plotting ✅ merge Performance diagram · reliability + Brier · threshold scrubber · MODE-style objects
04 T04 Modernization modernization ✅ merge Guided journey + provenance + shareable URL + rule-based narration

Round 1’s enduring lessons: the ratio-of-sums aggregation rule, and the discovery that ES-module apps don’t open from file:// — which produced the single-file inliner.

# Experiment Verdict One-liner
05 spatial-maps ✅ merge Map-native error field, region masks, masked MET stats
06 ensemble-verification ✅ merge Rank histogram · spread-skill · reliability + Brier · CRPS
07 volumetric-3d ✅ merge Orbitable 2.5D metric cube (lead × threshold × region)

Round 2 also fixed a Theme-02 partial-sums issue; each new experiment bakes in the ratio-of-sums lesson and surfaces the wrong mean-of-ratios on screen.

All seven apps were gathered under apps/, their duplicated math extracted into lib/met-stats.mjs, single-file builds generated into dist/, and a branded gallery added. Every migration was proven non-regressive with bit-for-bit differential tests (~34k assertions) against the original app code. Only stat-interaction’s categorical path deliberately stays local (a different degenerate-denominator convention).

Round 3 — real data and “MET in the browser”

Section titled “Round 3 — real data and “MET in the browser””
# Deliverable What it proved
08 stat-ingest + lib/met-stat-parse.mjs Real MET .stat/.txt/MODE output parses in-browser: 6,329 files, 88,456 records, 0 errors
09 met-pipeline-explorer The grid_stat workflow recomputed live on a real case; counts bit-identical to MET’s .stat
10 real-data-demo De-identified real data streamed from private R2 (Zarr v3 + Parquet + DuckDB-WASM), pairs computed on the fly
11 webgpu-fss FSS on real WebGPU compute shaders, 4 kernels, parity ~1e-8, ~7× at 2048²

Round 3 changed the question from “can we view MET output better?” to “how much of MET can run in the client?” — the answer is documented in the MET-in-the-browser explainer and the feasibility matrix artifact.

  • docs/EXPERIMENTS.md — the tracker table (branch, status, verdict per experiment).
  • docs/reports/EXPERIMENT_REVIEW.md — full per-experiment review log + screenshots.
  • CONSOLIDATION.md — the shared-lib extraction, inliner, dist builds, trimming decisions.
  • docs/REAL_DATA_INTEGRATION.md — the real-data wiring blueprint and its open decisions.