# research/percolation-played — the lab notebook behind *Percolation, as Texture*

The verified engine and checks behind the instrument
[`/instruments/percolation/`](https://artwaste.land/instruments/percolation/)
(ledger P10 #6 — the Instrument Room). Correctness-first: every claim the page
makes was confirmed here before the page asserted it. Builds on the threshold and
self-duality checks in [`research/percolation/`](../percolation/).

## What the instrument does

A single random realisation of an `L×L` lattice — every cell carries a fixed
uniform `U`, and "open at `p`" means `U < p`, so dragging the dial floods one
coherent landscape. The open cells are clustered live by **union-find**; the page
reads off the **order parameter** P∞ (the largest cluster as a fraction of the
grid), whether a cluster **spans** top-to-bottom, and the full **cluster-size
distribution**. The sound is a drone whose **spectrum *is* that distribution**:
one partial per log-size bin, big clusters low, at a loudness equal to each size
class's share of the grid. Drag `p` across `p_c` and a deep tone — P∞ — snaps in.

## The honesty bar (audio = object)

- **Fact** (computed live, from union-find): which cells are open, how they
  cluster, every cluster's size, whether one spans, P∞, and the sharp rise at p_c.
- **Choice** (declared in the page): size → pitch (big → low) on a pentatonic
  ladder, the root pitch, the drone timbre. These set the *sound*; they cannot
  move p_c or change whether a cluster spans.

## What is checked (`verify.mjs`, all 11 pass)

1. **The threshold markers are honest** — the spanning probability crosses ½ at
   each lattice's cited p_c (finite-size, L=64): **site □ ≈ 0.5927** (no closed
   form — Jacobsen 2015), **bond □ = ½** (exact — Harris 1960 / Kesten 1980),
   **site △ = ½** (exact — self-matching). Only two of three are provably exact,
   and the site-□ value is never claimed to be anything but a measurement.
2. **The order parameter snaps up** — P∞ ≈ 0 below p_c and rises steeply above
   (site □: 0.01 → 0.74 across the transition; bond □: 0.02 → 0.96 across ½). The
   bass partial the ear hears enter *is* this number.
3. **The spectrum is the distribution** — the log-size binning the page sounds
   conserves cluster mass exactly (every clustered cell counted once), and the
   giant lands in a low bin (a low partial), singletons in bin 0 (high).
4. **Extremes** — p→0: silence (no clusters); p→1: one deep tone (one cluster of
   the whole lattice, spanning).

`verify.mjs` also emits `embed.js`, the cited thresholds the page mirrors.

## What is checked (`verify-page.mjs`, 22 ×2 desktop+mobile)

Loads the built page in a real browser: no JS errors; the grid / order-parameter
curve / spectrum canvases paint; the live engine puts P∞ ≈ 0 below p_c and large
above; a spanning cluster appears above p_c and not below; the binning conserves
mass; the p_c markers and exact/measured labels are correct per lattice; the p
slider, lattice control, New-grid, Sweep and Sound toggle all run without error;
the URL round-trips; no overflow. (Audio is silent headless, so what's checked is
the UI and the **math the audio reads**, on `window.__pc` — proved independently in
`verify.mjs`.)

## Honesty notes carried into the page

- On an infinite lattice the turn at p_c is a true kink; on this finite grid it is
  steep but rounded (finite-size) — the page says so, and the curve is *one*
  realisation (a New-grid button gives another).
- site-□ p_c is the **measured** 0.59274605… with **no closed form known**; the
  marker is labelled as such and never claimed exact.

## Reproduce

```
node research/percolation-played/verify.mjs                        # 11 checks + writes embed.js
npm run build && node research/percolation-played/verify-page.mjs  # 22 checks ×2, the page
```

## Sources

- S. R. Broadbent, J. M. Hammersley, "Percolation processes," *Proc. Camb. Phil.
  Soc.* 53 (1957) 629.
- T. E. Harris (1960); H. Kesten, *Comm. Math. Phys.* 74 (1980) 41 — bond-□ p_c = ½.
- J. L. Jacobsen, *J. Phys. A* 48 (2015) 454003 — site-□ p_c = 0.59274605079210.
- D. Stauffer, A. Aharony, *Introduction to Percolation Theory* (1994).
