# PREREG-relay-population v2 — population review of Relay Membrane / Stream 1.0.0

DMCF Radio · preregistration · 2026-08-15

**Written and hashed BEFORE any measurement.** `tools/relay_population.py`
verifies this file against `PREREG-relay-population.sha256` and **VOIDS the run
on mismatch**, so the thresholds cannot move once the numbers are visible. Same
interlock as PREREG-tell-v3/v4.

*v1 of this file was voided before any run — it declared a "ceiling model" that
is not implementable and was conceptually wrong (the corpus and the clock are
the only inputs, so the observed population is already the system's full
range). It is preserved unedited as `PREREG-relay-population-v1-VOID.md`. Every
threshold below is **absolute** and needs no reference model.*

## 0 · The question, and what it is not

Relay Membrane / Stream 1.0.0 is **frozen and accepted**. This review does not
reopen acceptance. It asks one thing:

> **Across the real population of airings, does the work produce a genuinely
> varied family, or one idea repeated?**

A "no" is not a defect against 1.0.0 — it is the evidence that would justify a
1.1 built on *data-derived morphological regimes*. **No 1.1 may be begun unless
R fires.** A "yes" closes the question and 1.0.0 stands unchanged.

## 1 · Sample

- **N = 800** airings from pass 0 by fixed stride (`i × 617 mod |pool|`), plus
  **all 78** records missing a channel, plus the 8 shortest and 8 longest.
  Deterministic. No random draw, no re-draw, nothing discarded.
- **Repeated-airings sub-sample:** 40 records × passes 0–5.
- All at canonical performance seed **0** (the seed is excluded from structure
  by contract, so it is excluded here).
- Descriptors at **t = 0.5 × secs** unless stated.

## 2 · Descriptors — exact definitions

**S · Silhouette.** From `geometry.points` (16 vertices, closed): polygon
centroid, radius sampled at **64 equal angles** by interpolation along the
contour, divided by the RMS of those 64 radii. Scale-free 64-vector, **not
rotation-aligned** (bearing is a real output of the airing). `d_S` = Euclidean.

**P · Palette.** The renderer draws from five families
(`[188, 24, 316, 92, 214]` selected by `mix32(structureSeed) % 5`) plus
`38 × material_focus`. Record the family index and realized hue. Report
`H_family` over 5 families (**max 2.322 bits**) and `H_hue` over 36 ten-degree
bins (**max 5.170 bits**).

**A · Aperture.** Declared proxy: time-mean of
`(null_brightness + null_focus + null_drift) / 3` — the fraction of the work's
duration with an absence bay open. Incidence, not drawn area; a pixel measure
would need a rasteriser this station does not ship offline.

**C · Pressure position.** At mid-duration, exactly as the renderer computes:
`axis = bearing + (pressure_center − 0.5) × 0.46`,
`px = cos(axis) × (pressure_center − 0.5) × 1.08`,
`py = sin(axis) × (pressure_center − 0.5) × 0.86`. By construction
`|px| ≤ 0.54`, `|py| ≤ 0.43` — so the available field is known in advance and
coverage can be stated absolutely.

**N · Nearest neighbour.** Feature vector = 64 silhouette values plus
`[sin(hue), cos(hue), aperture, px, py, chambers/9]`, the trailing six z-scored
and scaled so that block carries the same total variance as the silhouette
block. `d_N` = Euclidean.

## 3 · Strata

Reported overall and within: **duration** (brief < 60 · short 60–300 ·
long 300–1200 · extended > 1200) · **completeness** (`Reading`:
complete/partial/sparse) · **topology** (chambers 5–9) · **pass position**
(opening/body/closing) · **repeated airings**.

**AMI** — adjusted mutual information between duration stratum and a 4-means
clustering of the feature vectors. Asks whether the data shapes morphology at
all, i.e. the opposite worry.

## 4 · The decision rule — declared now, applied once

**R — REPETITION DEMONSTRATED** if **any two** of these five fire:

| # | fires when | why this number |
|---|---|---|
| R1 | silhouette near-duplicate rate > **5%** | share of works whose nearest neighbour's contour agrees everywhere to within 5% of its own radius — bodies a viewer would call the same shape |
| R2 | combined NN duplicate rate > **2%**, where duplicate means `d_N < 0.02 × median pairwise d_N` | near-identical works recurring often enough to be noticed across a day's ~246 plays |
| R3 | `H_family` < **1.80** bits of 2.322 | the five hue families are not used evenly; palette collapses toward one or two looks |
| R4 | pressure-field coverage < **0.10**, where coverage = `(IQR(px)/1.08) × (IQR(py)/0.86)` | the middle half of works sits in under a tenth of the compositional field available to them |
| R5 | median within-record `d_N` (passes 0–5) < **0.25 ×** median between-record `d_N` | repeated airings of one record differ far less than different records do — the instant is decorative relative to identity |

**Two or more firing ⇒ proceed to 1.1**, scoped to *data-derived morphological
regimes* defined by measured corpus structure (duration class, completeness,
chamber topology, spectral character) — **never** hand-added style variants.
**Fewer than two ⇒ 1.0.0 stands and the question is closed.**

**One firing is published but does not authorise 1.1.** A single marginal
statistic is how a programme talks itself into work it already wanted to do;
this station has watched that happen and now requires two.

**AMI is diagnostic, not a trigger.** `AMI < 0.05` — data does not shape
morphology at all — is a separate and more serious finding, reported as
`DATA-INERT` regardless of R.

## 5 · Contact sheets

Produced with the measurements, **not consulted before the numbers are
computed**, and **unlabeled** — no record id, duration, stratum or key.

- 8 sheets × 48 works in sample order (no aesthetic selection);
- 1 sheet of repeated airings, 8 records × 6 passes, rows unlabeled;
- 1 sheet of the 48 works with the smallest NN distance — the strongest visible
  case for repetition, shown whether or not R fires.

## 6 · What this review may not do

- May not modify 1.0.0, its archive, its hashes, or its acceptance.
- May not re-run with different thresholds. One run, one report.
- May not substitute a favourable stratum for the overall figure.
- On a prereg hash mismatch the run is VOID and no number may be cited.
