Skip to content

Build & Validation Environments ​

Every number in Moore26 Findings came out of a committed harness. This page is the recipe for reproducing any of them: build the engine once, then run the script that made the measurement. The earlier engines' reproduction recipes (meso3i, planck3, planck) are archived at the bottom.

src/moore26.c runs in two environments: the browser instrument (Cartan's Cascade) and Node headless harnesses (script/cascade/*.mjs via script/lib/m26.mjs). Both call the same tick; the only difference is who drives it.

Reproducing the moore26 record ​

ArtifactConsumed by
docs/public/wasm/cascade/moore26.{js,wasm}Cartan's Cascade browser instrument
docs/public/wasm/cascade/moore26-stnm.{js,wasm}every script/cascade/*.mjs headless harness
moore26-stnm with -DM26_AUDITthe phase-delta audit counters (moore26_audit)

Headless runs (no config files, no output files — each prints measurements to stdout):

bash
node script/cascade/openbox.mjs     # closed/open-box mass-plateau calibration
node script/cascade/openbox5.mjs    # the shift=5 asymptote run

The audit variant (build moore26-stnm with -DM26_AUDIT) exposes moore26_audit(phase) — the per-phase ledger-delta counters that produced the sealed-ledger table in Findings.


The archived engines' recipes ​

Prerequisites ​

NeedWhat for
Node 18+The headless harnesses (script/meso/*.mjs, script/*.mjs). They use only node: builtins: no npm install required to run an experiment.
DockerThe pinned WASM toolchain (emscripten/emsdk:3.1.61) and native C builds (gcc:13). The only way to build on Windows, where there is no local emcc/gcc.
emsdk 3.1.61 (optional)Same WASM build without Docker, if you have Emscripten installed natively.
CUDA toolkit + NVIDIA GPU (optional)Only for the smatrix batch engine (planck3-era batch jobs). Not needed for any meso3i measurement.

Step 1: Build the WASM artifacts ​

The compiled engines are gitignored build outputs, produced by src/build.sh: always run it rather than invoking emcc by hand, because the export lists, MODULARIZE/EXPORT_NAME flags, and -DGIT_REV provenance stamps live in that script:

bash
cd src
docker run --rm -v "$PWD/..:/src" -w /src/src emscripten/emsdk:3.1.61 bash build.sh

With a native emsdk instead: npm run wasm:build.

Outputs:

ArtifactEngineConsumed by
docs/public/wasm/cascade/moore26.{js,wasm}src/moore26.cCartan's Cascade, script/cascade/*.mjs harnesses
docs/public/wasm/ember/meso3i.{js,wasm}src/meso3i.cJoule's Mill, Yarkovsky's Ember, and every script/meso/ harness (archive)
docs/public/wasm/loom/planck3.{js,wasm}src/planck3.cHopf's Loom, Hopfion Zoo, script/*.mjs planck3 harnesses
docs/public/wasm/wake/planck{,-hex}.{js,wasm}src/planck.cLangevin's Wake

Step 2: Run the site ​

bash
npx vitepress dev docs

Serves at http://localhost:5173/. The instrument pages boot whichever artifacts exist; a missing engine shows a load notice rather than breaking the page, so you can validate prose without building anything.

Step 3: Run a headless experiment ​

The script/cascade/ harnesses are the current engine's measurements: each is a self-contained Node script that loads docs/public/wasm/cascade/moore26-stnm.js via script/lib/m26.mjs, drives the engine through a scenario, and prints its measurements to stdout:

bash
node script/cascade/openbox.mjs

No config files, no output files: read the header comment at the top of each script for the scenario, then run it and compare its numbers against Moore26 Findings.

moore26 harness map: which script produced which claim ​

HarnessWhat it measuresClaim in Findings
moore26-harness.mjsTwo-core saturated flux tube — winding/mass centroids + event countersstring-break mechanics
openbox.mjsOpen-box driven equilibrium — sustained flux vs mass taxM ≈ flux × 2^shift mass spectrum
openbox5.mjsThe shift=5 asymptote (5k ticks, engine-side absorb wall)the ~3.4–3.9× scaling
closedbox.mjsClosed-box plateau — the knot eats until the vacuum starvessupply-bound ~40k plateau
ledgerbox.mjsThe conservation ledger under transaction pressure~0.1% residual audit
hexbuckle-ensemble.mjsHexbuckle dipole/flexoelectric ensemblecharge memory / dipole tests
vacuum-isotropy.mjsVacuum propagation isotropythe v=1 transport claim

The archived meso3i harness map ​

The earlier engine's measurements — kept for provenance. Each loads docs/public/wasm/ember/meso3i.js and prints to stdout; compare its numbers against the monograph.

HarnessWhat it measuresMilestone
ember-attractor.mjsIs the driven ember an accumulator or an attractorM33–M35
lump-ablate.mjsPhoton coupling modes vs lump ablation styleM36, M43
m37-drift.mjs · m37-drift2.mjsThe apparent pairwise attraction, driven and self-radiating regimesM37, M47b
m37-bath.mjsMutual shadowing in an isotropic ambient bath: the process-ontology controlM47b
ring-test.mjs · spin-collide.mjsVortex-ring injection, circulation thermalizationM38, M44
spin-collide-clean.mjsLamp-free replication: spin collisions with zero driveM45
drest-test.mjsDirectional rest: Lz persistence in parked channelsM39–M40
drest-graze-test.mjsOff-center mass beam writing rotation into cold matterM42
drest-lat-test.mjs · latency-test.mjsLatency-gated emission vs sporadic fluxM41
drest-revive.mjsRe-waking latent angular momentum in parked binsM42
eos-thermalize.mjsClosed-box equation of state; the collisionless-flow controlM46, M47c
stress-tensor.mjsMomentum-flux tensor Πᵢⱼ in shells around the emberM46
wavefront-isotropy.mjsTwo-shell wavefront arrival (D3Q19 two-speed lattice)M46
wound-tensor.mjs · wound-tensor2.mjsStored angular momentum as shear in ΠxyM42, M46
transactions.mjsThe seven-counter irreversible contact ledgerM47
pair-test.mjsThe 2·rest ⇄ c + c¹ wind/unwind cycleM47
photon-test.mjsIPHOT coupling modes vs parked massM43
yorp-test.mjs · yorp-ledger.mjsLight writing spin into directional rest; momentum bookkeepingM43
qmode-test.mjs · qmode-control.mjsQ-register condensation experimentsexploratory
snapshot-test.mjsBit-for-bit save/restore replayinfrastructure
beam-front-test.mjsApertured photon plane wave: collimation, grazing hitsM43 support
loop-resonance.mjsClosed-polygon bucket-brigade emissionexploratory

The script/*.mjs suite alongside it (pathfinder, sweep, boost, collide, smatrix) belongs to the earlier planck3 campaign: same pattern, loading docs/public/wasm/loom/planck3.js instead.

Step 4: Native C harnesses ​

src/test_*.c is a 29-file headless C suite: conservation ledgers, ballistic time-of-flight, slit apparatus, and the meso3i probes (test_bath, test_shadow, test_atten, test_accrete, test_replay). The moore26 native smoke is test_moore26.c; the audit build compiles moore26.c with -DM26_AUDIT for the per-phase delta counters. Each file documents its own usage line in the header comment. Compile against the engine directly: no local gcc on this machine means Docker:

bash
docker run --rm -v "$PWD:/src" -w /src/src gcc:13 \
  sh -c "gcc -O2 -Wall moore26.c test_moore26.c -o /tmp/m26t -fopenmp -lm && /tmp/m26t"

The planck3 regression vector (planck3.c + planck3_test.c → test/loom/t0.bin/t400.bin) is the bit-identity gate between the C and WASM builds: same recipe, see AGENTS.md.

The telemetry archive ​

results/ holds the committed outputs these harnesses produced: the collide/anneal/boost/fountain/quench JSONs, run transcripts, census dumps, and per-job status files, organized as the runs produced them. knot_dictionary.json (repository root) is the tracked sweep verdict registry. If a harness's stdout disagrees with the monograph, results/ is the archived baseline to diff against, and a diff is itself a finding worth reporting.

logs/ is the ignored scratch directory for bulk output (CUDA state snapshots, packed job blobs, ParaView frames). If a new run produces telemetry worth keeping, promote the small JSON/log files into results/ and the harness into script/meso/.