{
  "project": "PrimeMind",
  "site_version": "0.2",
  "snapshot": "2026-09-10",
  "generated": "2026-09-10",
  "notes": "Pages under labs/ are the source-originals with the shared header added and nothing else changed (see tools/integrate-labs.py). Hashes are of the unaltered originals in source-originals/.",
  "primary": [
    {
      "slug": "factor-matrix",
      "title": "Prime-Factor Power Matrix",
      "page": "labs/factor-matrix.html",
      "source": "prime-power-factor-matrix-gap-boundary-lab_v2_5.html",
      "version": "2.5",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact",
        "empirical",
        "open"
      ],
      "description": "The fixed coordinate grid built through N. Integer fingerprints, consecutive-integer stepping, completed gap skeletons, gap balance against shuffle controls, and the simplest reduced-coordinate boundary rollout. Flagship lab.",
      "bytes": 179163,
      "sha256": "37ad43eae8ec2c44a68c2ad59735b5274ea183c87ac26f4c1186acd419a97374"
    },
    {
      "slug": "factor-power-certificate",
      "title": "Factor-Power Certificate and Gap Half-Balance",
      "page": "labs/factor-power-certificate.html",
      "source": "prime-factor-power-certificate-half-balance-lab_v1.html",
      "version": "1.0",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact",
        "empirical",
        "open"
      ],
      "description": "Row-level certificates that factor occurrences and active nested prime-power coordinates correspond one-to-one, tamper demonstrations, gap certificates, half-balance and coordinate decomposition, bulk scan through ten million.",
      "bytes": 57552,
      "sha256": "100271bd06659b5e36756101d0e05ad9a589e066b517a74f3c1325745e0151fb"
    },
    {
      "slug": "wavefield-zeta",
      "title": "Wavefield and Finite Zeta Reconstruction",
      "page": "labs/wavefield-zeta.html",
      "source": "prime-composite-wavefield-lab_RESEARCH-EXPORTS_v3_1M-ZERO-LOADER.html",
      "version": "3",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact",
        "empirical",
        "open"
      ],
      "description": "Prime-power strike field from a frozen seed, factor skeletons, gap clumps, spectra, finite zeta-zero reconstruction, and research exports with a pre-reveal / post-reveal boundary. Loads a local zero table in the browser.",
      "bytes": 1877345,
      "sha256": "cf92e20c602c5d75c07a5dd23bbda7aca421e6e63d958681135b5538b43f6fb9"
    }
  ],
  "secondary": [
    {
      "slug": "branch-space-3d",
      "title": "3D Branch Space",
      "page": "labs/branch-space-3d.html",
      "source": "prime-branch-space-3d-labV3.html",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact",
        "empirical"
      ],
      "description": "Three rotatable 3D views: complete branch layers, long-segment comparison on one scale, lane-by-lane prime-power wavefield.",
      "bytes": 3189503,
      "sha256": "5008694294b8a76080a2425cc04059ea9ddf85d9fc3c8b5ca53d567873c8ded1"
    },
    {
      "slug": "branch-rays",
      "title": "Prime Branch Rays",
      "page": "labs/branch-rays.html",
      "source": "prime-branch-ray-lab.html",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact",
        "empirical"
      ],
      "description": "Complete terminal branch of a seed prime with parent edges and direct rays; selectable horizontal coordinate; within-branch gap fingerprint.",
      "bytes": 21369,
      "sha256": "7c1c778d15c72f8aae11a3bac91582db5f6f9a6107ac71b559bf60b4c938c8f2"
    },
    {
      "slug": "branch-clumps",
      "title": "Prime Branch Clumps",
      "page": "labs/branch-clumps.html",
      "source": "prime-branch-clump-wave-lab.html",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact",
        "empirical"
      ],
      "description": "Growth of largest-prime-factor branch-layer clumps: Omega gives the layer, log LPF the column, log n the height.",
      "bytes": 27960,
      "sha256": "c82c610d9deba8c6f6f8a70d9b596349d04b2fc502db310e9bb77a3463a04791"
    },
    {
      "slug": "branch-envelope",
      "title": "Branch Envelope Law",
      "page": "labs/branch-envelope.html",
      "source": "prime-branch-envelope-geometric-law.html",
      "date": "2026-09-10",
      "current": true,
      "status": [
        "exact"
      ],
      "description": "The terminal-branch envelope law drawn for a chosen terminal prime: layer k runs from p*2^(k-1) to p^k.",
      "bytes": 48645,
      "sha256": "2dfa08bfe0c2d531ff6529c68c6e767c6a8797d4dc9479bbd2e0eea2a7b8345a"
    }
  ],
  "archive": [
    {
      "slug": "archive-layer-states",
      "title": "Layer States & Ordered Groups (report 3)",
      "page": "labs/archive-layer-states.html",
      "source": "prime-layer-states-and-clumps-report3.html",
      "expected_path": "source-originals/archive/prime-layer-states-and-clumps-report3.html",
      "current": false,
      "included_in_bundle": false,
      "description": "About 43 MB. Loaded only when a visitor opens it from the archive page."
    }
  ],
  "playground_labs": [
    {
      "title": "s-Plane Lab",
      "file": "labs/s_plane_lab.html",
      "group": "The zeta function",
      "description": "Every picture of the zeta function starts here. Pick an input s on the left and see where zeta sends it on the right; find the \u00bd line and the first zeros.",
      "sha256": "5d4c1a5c22c86883f473faeb8e8568eb367c7d744b391855ee2af1a03b6e2099",
      "added": "2026-10-10"
    },
    {
      "title": "Zeta Landscape Lab",
      "file": "labs/zeta-landscape-lab.html",
      "group": "The zeta function",
      "description": "Zeta drawn as a field over the plane: terrain, phase, and the curves whose crossings are the zeros, plus the zero waves and prime-power packets as interference fields.",
      "sha256": "a7cfaab1371c0427c7a3a29075f8a1e8803713577252eb5865478c4c8bf95f9d",
      "added": "2026-10-10"
    },
    {
      "title": "Zeta Sphere Lab",
      "file": "labs/sphere-Fest.html",
      "group": "The zeta function",
      "description": "The zeta function on a sphere: its values on the Riemann sphere, a walk steered by its phase, and the critical strip wrapped onto a ball.",
      "sha256": "69a5fef7b33e4448fc3d9b3dd5d3a71df2ba82c29fd65718ace27c0579c01584",
      "added": "2026-10-10"
    },
    {
      "title": "Dimension Lab",
      "file": "labs/dimension-lab.html",
      "group": "The zeta function",
      "description": "Spheres across dimensions: where a ball\u2019s volume peaks and vanishes, and how the sphere factor is what makes zeta mirror-symmetric.",
      "sha256": "4476d86c7d52958ca0ab499d5a87857a365bd182d914913ba77ed8e62bb79d0b",
      "added": "2026-10-10"
    },
    {
      "title": "Stretch Lab",
      "file": "labs/stretch-lab.html",
      "group": "The zeta function",
      "description": "The stretching system behind the zeros: position times momentum, hyperbolic flow, and the closed-off region whose area counts the zeros.",
      "sha256": "c8b99c417ab679306b5e4e42fa10995cb68b055cb63da2f6a5370879e3743a26",
      "added": "2026-10-10"
    },
    {
      "title": "Saddle Lab",
      "file": "labs/saddle-lab.html",
      "group": "The zeta function",
      "description": "The modular surface, where a zeta function\u2019s Riemann Hypothesis is a theorem: a path bouncing on it, its closed loops as primes, and its pitches next to the zeta zeros.",
      "sha256": "14d6b2ce255841db22110195e9613b16b956bcfc3e1c0717d900647e6c66f05b",
      "added": "2026-10-10"
    },
    {
      "title": "Weil\u2019s World Lab",
      "file": "labs/weil-world.html",
      "group": "The zeta function",
      "description": "The one place the Riemann Hypothesis is proven: curves counted in clock arithmetic. Count points mod every prime and watch every zero sit on its circle.",
      "sha256": "9f1de2e1e9e66ad3b520c0638fefe30b8e32ba8c2b70bbb9c8f545e923fc9433",
      "added": "2026-10-10"
    },
    {
      "title": "Zeta Worlds Lab",
      "file": "labs/zeta-worlds-lab.html",
      "group": "Networks",
      "description": "Network worlds with their own primes, zeros and hypothesis, with the real zeta on the same bench. The dictionary between the two, the census, the breaking experiment and the gap laws. Start here if you are new.",
      "sha256": "6fb0b20af47d281725eb3854b45a01e5735d0959596e05eea0444633e98c6d99",
      "added": "2026-10-10"
    },
    {
      "title": "Swing Lab",
      "file": "labs/swing_lab.html",
      "group": "Networks",
      "description": "Put an amount on every dot. A network only allows certain patterns, its modes, and each mode has one number, its swing. Check any dot by hand, paste in a world, or build one from a rule such as 1(primes).",
      "sha256": "83310402533e8c6dc8ae773af1df319acb52a59b5c2ccd5c9dbf2f2b00859a93",
      "added": "2026-10-10"
    },
    {
      "title": "Balance Lab",
      "file": "labs/Network-balance_lab.html",
      "group": "Networks",
      "description": "Feed energy into a network at some dots and drain it at others. While gain and loss balance, the zeros stay on the \u00bd line; push past the breaking point and they leave in mirror pairs.",
      "sha256": "c44b15f7e2aade444db207a84aa6eedd177935dced1c63563529099676422726",
      "added": "2026-10-10"
    },
    {
      "title": "Knot & Network Lab",
      "file": "labs/Torus-network-lab.html",
      "group": "Networks",
      "description": "Closed loops that never repeat, three ways: torus knots, a network of loops that rings, and prime cycles on graphs.",
      "sha256": "ababef9f9ce3aa28a9b1a359efdeccdf9b80eb37d7c511d8ff814a38f3881985",
      "added": "2026-10-10"
    },
    {
      "title": "String Lab",
      "file": "labs/string-lab.html",
      "group": "Waves and strings",
      "description": "Each zeta zero as a standing wave on the log-time string, tied down at x = 1, and the prime drift rebuilt from string modes with the right pitches and with the wrong ones.",
      "sha256": "7181e30d462726e09bda5f8d0bdcb9b36a472539f52957cb4dc0d3b143d54fec",
      "added": "2026-10-10"
    },
    {
      "title": "Comb Lab",
      "file": "labs/comb-lab.html",
      "group": "Waves and strings",
      "description": "One string with the primes as its medium: a bump at every prime. Its own pitches are computed exactly and scored against the zeta zeros, with a fake-prime control.",
      "sha256": "d7d877af3307c41d830e48ffccb533974f3505f304254797797ff77b9c30d86b",
      "added": "2026-10-10"
    },
    {
      "title": "Prime Well Lab",
      "file": "labs/well-lab.html",
      "group": "Waves and strings",
      "description": "A well of standing waves, one for every whole number. Add them up, hear what the well rings at, then switch to log spacing and watch its silences land on the zeros.",
      "sha256": "fd53a3f6363854b3d8df072589a47573eabf0050ee2365e8615a63fd0e7b2042",
      "added": "2026-10-10"
    },
    {
      "title": "Superposition Lab",
      "file": "labs/superposition-lab.html",
      "group": "Waves and strings",
      "description": "Add up windowed cosines for any list of frequencies, the zeta zeros, the integers, the primes or your own, at a resolution that never aliases.",
      "sha256": "8e0fdcbd38ec916ed5587407769bdf89b37dd7e0d9e1a2d9f0678002fd84dbbd",
      "added": "2026-10-10"
    },
    {
      "title": "Prime Overtones Lab",
      "file": "labs/prime-overtones.html",
      "group": "Waves and strings",
      "description": "Each prime\u2019s divisibility wave split into its overtones, and the mirror picture in which the primes are the overtones of one fundamental.",
      "sha256": "796c1290d8635b81fd0d1e5348d9009ee7c76da4a37dec1daed0ba8bf542c95f",
      "added": "2026-10-10"
    },
    {
      "title": "Prime-Power Wave Lab",
      "file": "labs/prime-wave-lab.html",
      "group": "Waves and strings",
      "description": "Four views of one interference: prime-power waves, prime holes by inclusion\u2013exclusion, zero waves that rebuild the prime-count drift, and the drift\u2019s spectrum in log-time.",
      "sha256": "bd86905064d68c37d863ac56593cec6b1ad141598fdd0499fcabeee0703ae045",
      "added": "2026-10-10"
    },
    {
      "title": "Balance Formula Lab",
      "file": "labs/Prime-balance-lab.html",
      "group": "Waves and strings",
      "description": "Weil\u2019s explicit formula as an energy balance driven by two sliders: prime echoes arriving at log-time delays, the mirror term, and the response summed over the zeros. Input minus echo equals the zero side, exactly.",
      "sha256": "d46ff668d2a32ab5b0f41a0aace188a6277cc454f3c8db325f784ba4d77b940e",
      "added": "2026-10-10"
    },
    {
      "title": "Ring Lab",
      "file": "labs/ring-lab.html",
      "group": "Waves and strings",
      "description": "A ring that breathes: waves going out and back between an inner and an outer rim, measured in log-radius. Only the round waves count, and then the ring is the log-time string in polar form.",
      "sha256": "187ae6aefe7581e033f420ee207b8fd709e58fde80baa23b6a03eccd88eb2a33",
      "added": "2026-10-10"
    },
    {
      "title": "Cymatics Lab",
      "file": "labs/cymatics-lab.html",
      "group": "Waves and strings",
      "description": "Sand patterns on a square drum. Its pitches are the numbers that are sums of two squares, so which patterns exist, and how many share a pitch, is decided by the primes.",
      "sha256": "5385d972d8f285de85a7ca026b9b7ed43ce9f14e28bf4d49d62ed42a3e6968c4",
      "added": "2026-10-10"
    },
    {
      "title": "Bounce Lab",
      "file": "labs/bounce-lab.html",
      "group": "Runners and games",
      "description": "The two-dot game at scale: up to a hundred thousand runners, the standing waves they form, a movable sensor, and the waveform written in real time.",
      "sha256": "5473ff530a0f620cd6d258f7e1e422cc12be94d87e64de35b267195aef3bd579",
      "added": "2026-10-10"
    },
    {
      "title": "Loop Lab",
      "file": "labs/loop-lab.html",
      "group": "Runners and games",
      "description": "The bounce game on circles: each number is a loop whose circumference is its length, all loops kiss at one point, and a dot runs around each. Watch who comes home when.",
      "sha256": "a96e343deac73859c5287be2e19785ae5021014d8e7bce8fbad53b90360ecdf2",
      "added": "2026-10-10"
    },
    {
      "title": "Terrain Lab",
      "file": "labs/terrain-lab.html",
      "group": "Runners and games",
      "description": "The bounce game with the line pushing back: hills at the primes, runners that slow and turn on them, and pitches read off from which round trips fit, scored against the zeros.",
      "sha256": "1a8169e22e721f8c558681a87a6f339a0c8c718f47579539a652bb0ffd473316",
      "added": "2026-10-10"
    },
    {
      "title": "Playground Lab",
      "file": "labs/playground-lab.html",
      "group": "Runners and games",
      "description": "The back-and-forth substrate with every rule exposed: speed, weight, phase, clock, fold and space are expressions you type. Ring any setup and read its spectrum against the zeros.",
      "sha256": "fd466f2dfa5a9bc94fdf35bec96bd409527026d33383bcc1adf46eb3b8612e2d",
      "added": "2026-10-10"
    },
    {
      "title": "Shape Lab",
      "file": "labs/shape-lab.html",
      "group": "Runners and games",
      "description": "Take any terrain setup and see it as a shape: the terrain and its pitches, every standing wave stacked in 3-D, the struck string over time, and the runners\u2019 swirl in position versus speed.",
      "sha256": "87dd5da7720bd748ff0d2a90b6403d72aa3a2d9066c640009f6ffa8c5b03359d",
      "added": "2026-10-10"
    },
    {
      "title": "Two-Unit Lab",
      "file": "labs/two-unit-lab.html",
      "group": "Runners and games",
      "description": "Numbers built from 2 and 3 alone: every power multiplied, added or subtracted, seen as a lattice, a set on the line and a waveform, and what a world with only two primes rings at.",
      "sha256": "aa728222c09fa200ccb1f6915cb55aa873c1bbc2b44c57c129849b77bc13d679",
      "added": "2026-10-10"
    },
    {
      "title": "Sphere Shell Lab",
      "file": "labs/sphere-shell-lab.html",
      "group": "Spheres, shells and domes",
      "description": "Every size \u03c3 as its own sphere: the paths of \u03b6 and its look-alike on nested shells, their touches at the south pole, the loops of the \u00bd shell measured one by one, and the primes heard in them.",
      "sha256": "0ee87f5b82dc88d686f6100123f696ed59c297d050aff458a228182d431afc90",
      "added": "2026-10-10"
    },
    {
      "title": "Shell Measurements",
      "file": "labs/prime-well-shell-measurements.html",
      "group": "Spheres, shells and domes",
      "description": "The same shells, measured instead of drawn. Every number is worked out for \u03b6 and for the Davenport\u2013Heilbronn look-alike over the same heights, so the two can be compared directly.",
      "sha256": "50e0edb7aa8916eb2b3e4dd68a41ccab07c85f3f4a8375d9e6856ad35d30f6bb",
      "added": "2026-10-10"
    },
    {
      "title": "Strings Globe",
      "file": "labs/prime-well-stringsGlobe.html",
      "group": "Spheres, shells and domes",
      "description": "\u03b6 built from the primes one string at a time. Each string runs once around the globe and bulges wherever the product of the first few primes comes close to zero.",
      "sha256": "1c23d6f4df712350415b39caad783a576b965cf81610bd5f86943773603786a7",
      "added": "2026-10-10"
    },
    {
      "title": "Layered Dome Lab",
      "file": "labs/dome-lab.html",
      "group": "Spheres, shells and domes",
      "description": "Build a dome or a fan of layered loops from a first and last prime, ring it, and test whether its pitches are the zeros.",
      "sha256": "a345e9cd2f75fa0ad13ed0de6ea6505b141b031785f353aa15ef7195506ff022",
      "added": "2026-10-10"
    },
    {
      "title": "Loop Growth Lab",
      "file": "labs/loop-growth-lab.html",
      "group": "Spheres, shells and domes",
      "description": "A sandbox for stacked loops that grow on a sphere and unfold: choose what each set of loops contains and how they grow, and see whether they all unfold at one moment.",
      "sha256": "893f316925a2bec11aa9c31efa563827e34ece51d6357f5b2852062a6d0aff17",
      "added": "2026-10-10"
    },
    {
      "title": "Projector Lab",
      "file": "labs/projector-lab.html",
      "group": "Spheres, shells and domes",
      "description": "The primes as a projector: each prime thrown from the centre onto a surrounding surface. On a ring this is exact, it is the Euler product; on a sphere or torus it is a sandbox.",
      "sha256": "b35d35c891dad33de1600bcc09447659a6cd258b2090b49e4b31dba54c7ed0e7",
      "added": "2026-10-10"
    },
    {
      "title": "Ball Shape Lab",
      "file": "labs/ball-lab.html",
      "group": "Spheres, shells and domes",
      "description": "Watch the n-dimensional ball and its sphere change shape as the dimension changes: the slice profile, where the volume lives, and how much of the cube the ball fills.",
      "sha256": "2998dfa940c7ad03f21d69dcaa148cf14f886ca6c237d23f2ae679fc81b95fe5",
      "added": "2026-10-10"
    },
    {
      "title": "Prime Triangle Lab",
      "file": "labs/prime_triangle_lab.html",
      "group": "Spheres, shells and domes",
      "description": "Three neighbouring primes make a triangle whose apex sits a hair left of the \u00bd line, and that hair is the prime gap. Add the gaps up triangle by triangle and the pen draws a wave whose tones are the zeta zeros.",
      "sha256": "f659c21dec3d70cade5dfc607f87a5a13fac90e46e7501d64c8a4764a4bb8b7b",
      "added": "2026-10-10"
    }
  ]
}