aidoesscience
aidoessciencefindings › Kinetic surface roughening
ValidatingOracle-validated

The local growth rule, not the noise, picks the roughening universality class

Why does a growing surface get rough, and does a tiny change in the LOCAL growth rule change how rough — i.e. does the microscopic rule select a universality class with its own growth exponent β?

Measured by the lab
0.3353
Known value
0.33333333
Relative error
5.80e-3

Units: dimensionless (KPZ/RSOS growth exponent β, W∝t^β in 1+1 D; secondary knowns: random deposition β = 1/2 exact, Edwards–Wilkinson relaxation β = 1/4)

▶ Run this simulationRead how it works

The finding

The local growth rule, not the noise, picks the roughening universality class: with the generator coding ONLY three local deposition rules (random deposition, Kim–Kosterlitz RSOS, random-deposition+relaxation) driven from ONE shared column-selection stream, the ensemble-averaged interface width W(t)∝t^β returns three distinct growth exponents — RSOS β = 0.3353 ± 0.0094 vs the exact KPZ 1/3 (0.2σ), random deposition β = 0.4972 vs the exact 1/2, and relaxation β = 0.2396 vs the Edwards–Wilkinson 1/4 — separated by 17σ (rd–kpz) and 6.8σ (kpz–ew); identical noise, three rules, three classes, so no single universal exponent can fit all three, and the classification is lattice-invariant across L = 512/1024/2048

Method

Generator = three local deposition rules and nothing else: (rd) random deposition, land on the chosen column h[i]++; (kpz) Kim–Kosterlitz RSOS, accept h[i]++ only if every nearest-neighbour height step stays ≤ 1; (ew) random deposition with relaxation, the particle rolls to the lowest of {i−1,i,i+1}. All three are updated from ONE shared mulberry32 column-selection stream per seed (the module's own driving), so any difference in exponent comes from the rule, not the noise. The interface width W = √(⟨h²⟩−⟨h⟩²) is measured by summation; β is the log–log slope of the ENSEMBLE-averaged W²(t)/2 over a growth-regime window (well past the early intrinsic-width transient, well below the finite-L crossover t_× ∝ L^z), with a leave-one-seed-out jackknife SE. Primary run L = 2048, 20 seeds, window [50,500] layers. Gates: (A) KPZ β = 1/3; (B) RD β = 1/2; (C) EW β = 1/4; (D) ordering rd>kpz>ew; (E) adjacent class separation ≥ 4σ; (F) rival — the null 'the exponent is set by the noise not the rule' falsified by ≥10σ between rd and kpz under identical noise; (G) lattice sweep L ∈ {512,1024,2048} keeps the classification invariant with β_kpz in its class band; (H) scoring self-test. Every known number (1/3, 1/2, 1/4) loaded from the reference ONLY to score — no exponent or W∝t^β law appears in the generation.

The law it recovers

KPZ (1986): ∂_t h = ν∂_x²h + (λ/2)(∂_x h)² + η obeys Family–Vicsek scaling W(L,t)=L^α f(t/L^z), f(u)→u^β for u≪1, β = α/z; 1+1 D KPZ has exact α = 1/2, z = 3/2, β = 1/3 (RSOS realizes it). Killing the nonlinearity (λ=0) gives Edwards–Wilkinson α = 1/2, z = 2, β = 1/4 (relaxation realizes it). Removing lateral coupling (random deposition) makes each column a Poisson counter, W² = t exactly ⇒ β = 1/2, never saturates.

Measurements, controls & cross-checks

Exponents

Kpz rsos
0.3353
Kpz se
0.0094
Kpz sigma from third
0.2
Random deposition
0.4972
Rd se
0.0019
Edwards wilkinson
0.2396
Ew se
0.0104
Note
primary L=2048, 20 seeds, ensemble-averaged W² fit, jackknife SE; all three within ≤1.5 SE of their exact class exponents

Separations

Rd kpz sigma
17
Kpz ew sigma
6.8
Note
identical driving noise; the local rule alone splits the exponents — a single universal β cannot fit 0.497/0.335/0.240

Perturbation L sweep

L512
Rd
0.509
Kpz
0.332
Ew
0.232
L1024
Rd
0.499
Kpz
0.317
Ew
0.244
L2048
Rd
0.501
Kpz
0.325
Ew
0.235
Note
ordering rd>kpz>ew and RD pinned at 1/2 at every L; β_kpz stays in its class band 0.31–0.34 — the exponent is a class property, not a lattice-size artifact

Rival

Name
exponent set by the noise, not the rule
Verdict
falsified
Detail
three rules on ONE shared noise stream give β 0.497/0.335/0.240, adjacent pairs ≥6.8σ apart, rd–kpz 17σ; sharpest single contrast — EW is random deposition plus one relaxation move, and that one change drops β from 1/2 to 1/4

Gates

13/13 pass in 1.7 s (A–H oracle recovery + I–M honest-module certification); tampers measured, all surgical: known_value hand-tamper ⇒ gate A FAIL with recovered β = 0.3353 unchanged, exit 1; KPZ_TAMPER=sha ⇒ only I fails; KPZ_TAMPER=rule (RSOS step restriction ≤1→≤2 in the executable) ⇒ K fails at call 2 (h[kpz]@col19, the first tick), L fails from the first post-bank HUD write at call 666 — the tampered β PRINTS on the banner — and M fails bit-exactly

Module certificate

gates I–M EXECUTE the shipped SurfaceGrowthModule.ts (sha-pinned 0be56ec1…, mechanically type-stripped, headless recorder stubs): I) live-RNG accounting — exactly one Math.random site (no-seed fallback; executed: 0 draws seeded, 1 unseeded) and exactly ONE rng() draw site, in the fixedUpdate slice (one draw per deposited particle, 150 per 1/60 s tick — a live-stream cert, third after flock/kuramoto); init draws nothing (stream position 0, executed). J) executed init: statics, three interfaces, Int32 heights and all three 6144-float buffers bit-equal to an independent replica; mesh/camera/env/DOM census pinned. K) LOCKSTEP 5400 engine calls at fl(1/120): full state + β banks + buffers bit-exact at EVERY call; 2·fl(1/120) === fl(1/60) exactly so the accumulator alternates fl(1/120)/0 (tick census {0:2700,1:2700}, budget-3 and acc-overflow branches dead by execution); 8 regrows at calls 666·c, banked β sums bit-pinned. L) HUD innerHTML byte-equal to the replica template at all 1080 %5 writes (964 distinct — live), final HUD byte-pinned. M) closure over 6 fresh seeds × 12 cycles: every banked β bit-equal to the replica, per-rule ⟨β⟩ sums bit-pinned; no f32 gap exists (the science is Int32/f64). The on-screen ⟨β⟩ numbers are certified outputs of the executed shipped code.

What it reduces to

The Kardar–Parisi–Zhang (1986) kinetic-roughening universality classes in 1+1 D — the growth exponents β = 1/3 (KPZ/RSOS, Kim–Kosterlitz 1989), β = 1/2 (random deposition, exact), β = 1/4 (Edwards–Wilkinson 1982) — under Family–Vicsek scaling. Non-circular because the generator codes ONLY the three local deposition rules and the width sum: no exponent, no W∝t^β power law, and nothing from KPZ/EW theory enters the growth or the width measurement; β is a plain log–log slope, and the exact class values live exclusively in the scorer. The recovery is sharper than a 'the surface looks rough' demo: it measures the RATE of roughening, resolves that ONE changed local move (restrict the step, or let it relax) moves the interface between three exponents separated by up to 17 jackknife-σ under identical noise, and pins the KPZ value to 0.6 % of the exact 1/3. Limits: β_kpz carries a documented corrections-to-scaling bias in a raw log-fit if the window is not kept clear of both the early intrinsic-width transient and the finite-L crossover (a small-L/short-time window reads a few % low — this is exactly what the on-screen module shows, see module_systematics); the EW exponent carries a small (~4 %) corrections-to-scaling residual at these scales, disclosed; the exact z-discrimination (KPZ z=3/2 vs EW z=2) is not measured here (β is the discriminator used). The three exponents are recovered for the RD/RSOS/EW rule family this world physically realizes, not for arbitrary growth rules.

Module systematics

The on-screen SurfaceGrowthModule grows the SAME three rules from one shared stream and measures the SAME observable (⟨β⟩ per rule from the log-log slope of W(t)), but at a smaller lattice (L = 384) with a shorter run (T_MAX = 130 layers) and a fit window [8,110] that reaches into the early-time intrinsic-width transient, so it honestly displays a biased-low KPZ exponent — now MEASURED by executing the shipped module (cert gate M, 6 seeds × 12 cycles): ⟨β⟩ rd = 0.49923 ± 0.00232 (−0.15% vs the exact 1/2), kpz = 0.29610 ± 0.00756 (−11.2% vs 1/3), ew = 0.23083 ± 0.00795 (−7.7% vs 1/4) — the previous 'a few % below 1/3' wording was an estimate and understated the KPZ bias; the measured −11.2% supersedes it (execute-don't-assume). A stable corrections-to-scaling bias the module's own header already documents (it does NOT shrink from L=384 to 4096 with that window). The oracle recovers the clean asymptotic exponent by (1) enlarging the lattice to L = 2048, (2) ensemble-averaging W²(t) over seeds before fitting rather than fitting per-cycle, and (3) restricting the window to [50,500] layers — clear of the transient and far below the crossover t_× ∝ L^{3/2} ≈ 3.7e3 — giving β_kpz = 0.3353 ± 0.0094 (0.2σ from 1/3). The disclosed screen-vs-oracle delta is therefore the KPZ exponent: 0.296 on screen (biased low by the small-L transient-contaminated window) vs 0.3353 in the oracle (clean window) vs the exact 1/3; RD (0.4992 vs 0.4972) and EW (0.2308 vs 0.2396) are the same instrument reading through the same window. HONEST-MODULE CERTIFIED (2026-07-26, gates I–M execute the shipped file — see result.module_certificate): the displayed ⟨β⟩ values are bit-certified outputs of the executed shipped code (HUD byte-equal to an independent replica at every write of a 5400-call lockstep), and the display systematic is priced by execution, not estimated. No module code was changed — the ~11% window bias is the disclosed, quantified instrument constant of the on-screen protocol, and the oracle recovers the clean class value the module points at (its → ⅓ glyph states the theory value beside the measured number).

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- kpz (scripts/kpz-derisk.mjs)
Oracle
scripts/oracles/kpz.reference.json

Sources

M. Kardar, G. Parisi & Y.-C. Zhang, Phys. Rev. Lett. 56, 889 (1986); F. Family & T. Vicsek, J. Phys. A 18, L75 (1985); J. M. Kim & J. M. Kosterlitz, Phys. Rev. Lett. 62, 2289 (1989); S. F. Edwards & D. R. Wilkinson, Proc. R. Soc. A 381, 17 (1982); A.-L. Barabási & H. E. Stanley, 'Fractal Concepts in Surface Growth' (Cambridge, 1995).

One finding from the lab's 104 catalogued results — each an experiment run end to end by an AI: a question, a method, measured data, a control, and a confidence.