# Spindexin task list

Updated: 2026-10-16. Scope: reusable Indexin laws, tools, building components, and usability.

**Creator and inventor: Lars Rocha.** Spindexin presents his original Indexin laws, ideas, tools and visual work. Claude, GPT and other AI assistants support implementation, testing and exploration; that assistance does not imply ownership of the project or its applications.

## Working agreement

- Develop reusable laws and tools in the Spindexin working copy.
- Treat the separate application working copy and reference repositories as read-only during Spindexin development.
- Claude is using the separate RangeBlends/Wander working copy for development on Lars Rocha’s behalf. We avoid editing it to prevent conflicting changes; this is a coordination boundary, not an ownership claim.
- Bring useful engine work into this workspace with its source revision, hashes, and attribution. Preserve Lars Rocha's credit and the existing provenance.
- Before starting an overlapping task, recheck the available source and task notes. Local notes establish recorded progress, not what Claude may currently be doing in another session.
- Deliver portable modules, fixtures, examples, and integration notes for integration. Never automatically sync changes into the separate application working copy.

## Rust engine core — moved

Moved out of this workspace on 2026-10-13 and now lives in the separate `ruseedition` repository, with
its own `AGENTS.md`, `README.md` and `TASKS.md`. Nothing here depends on it; it reads this
workspace's `editions/` tree as a read-only reference, resolved by its `tools/editions.cjs`.

## Baseline: reuse what already works

The workspace was empty when this list was created. Version 0.14.0 adds Schur Studio on the reconciled bounded XOR core and pinned Schur/Lars source audit to the existing kit. The kit contains a pinned Indexin/Foundry reference, additive query/recipe/composition/identity/streaming/temporal/structure/passage/chamber modules, portable experiments, variations, ranks, XOR, sieve, blueprint, evidence and exact arithmetic-study APIs, surface studies, stacked blueprints, modular seams, finite search, boundary experiments, typed pipelines, portable notebooks and guided journeys, prepared movement snapshots, a thirty-tab showcase, local tests, and CLI tools.

Reference: `sitoolz`, reviewed commit `b3b95559f82a881b0c2aa2def4f673c32d169ca8` (upgraded from `30f0d32`).
Planning reference: `INDEXIN_IDEAS.md` in the reference workspace.
API reference: `sitoolz/cards/indexin.md` and the original `INDEXIN_RANGE_STRIDE_SIEVE_LAW.md` in that repository.

Already present upstream:

- Python and JavaScript selection cores: range, independent stride origin, address stripes, XOR/residue sieve, candidate enumeration, valid joint period, survivor offsets, and structured explanations.
- JavaScript XOR handling through BigInt for larger values; fixtures exercise addresses through the vicinity of `2^52`. Audit the remaining arithmetic before promising a broader exact domain.
- Courtyard records, columns, windows, stairs, supported walking, settlement-derived recipes, and a finite 3 × 3 neighbourhood.
- Hunt and village-light adapters, plus application Rule panels. Their application integration stays with Claude.

Earlier review results, not rerun for this planning update: Python adapter 5,240 checks and law 29,935 checks passed; JavaScript adapter 23,090 checks passed, with 62,321 cumulative checks after its law section. Counts are comparisons, not independent proofs.

The original law document records an earlier prototype. Its ground-floor-only limits are historical; the current engine has stairs. Preserve that snapshot and document current behavior separately.

## First milestone: a portable law workbench

### IX-01 — Establish a reproducible local baseline

Status: complete (2026-10-03). Dependencies: none.

Import the smallest useful engine and fixture dependency set into this workspace. Keep a source manifest with repository revision and file hashes; include the existing law cards and provenance. Run local compatibility checks against the imported fixtures before changing behavior. Record where the authoritative code lives and how a later upstream update is reviewed.

Done when: both language implementations run from this workspace, baseline fixtures pass, and every imported file can be traced to its source. No fixture regeneration is used to conceal a mismatch.

Delivered: 11 unchanged source/fixture/document files, `reference/manifest.json`, a hash verifier, and compatibility harnesses covering 1,960 selection laws, three large-address cases, and eight courtyard recipes/solid records in both languages. This is a scoped snapshot, not the full sitoolz package; the optional prize-hunt dependency is not bundled. Upstream fixture bytes were preserved.

### IX-02 — Make large queries exact and bounded

Status: complete for the bounded selector API (2026-10-03). Depends on IX-01.

Add a query layer around the existing selector: clipped windows that retain origin and phase, lazy iteration or pagination, explicit result/work budgets, and bounded period-table caching. Preserve the current API through wrappers or clearly version changes. Validate the supported numeric domain, including intermediate subtraction, LCM, signed-coordinate encoding, and the last iteration step. A large valid period must not trigger an unbounded allocation or scan.

Done when: adjacent-window results concatenate to the whole-window result; empty/all-drop cases terminate; page boundaries neither skip nor duplicate results; limits give a clear diagnostic; Python and JavaScript agree on boundary cases. Benchmark direct stride enumeration against an independent scan. Use cached offsets only when measured size and reuse justify them.

The reported period is a valid repeat length, not necessarily the minimum period. The same formula does not automatically describe spatial geometry, ruler-rank composition, or whole worlds.

Delivered: `spindexin/query.py` and `js/query.cjs`; budgeted pages, cross-language cursors, clipped windows, exact intermediate arithmetic, and an opt-in cache capped at eight patterns/65,536 offsets each. Safe-integer inputs are checked; periods/counts use decimal strings. Pages use direct stride enumeration. Signed-coordinate encoders remain private upstream helpers and are not exposed or certified by this API; their generalization belongs to IX-05/IX-07.

Verified: upstream selection fixtures; independent scans over 120 generated laws; partition/pagination invariants; empty/all-drop cases; boundary arithmetic through `2^53−1`; invalid inputs and mismatched cursors; CLI behavior. Benchmark and integration details are in `README.md`.

### IX-03 — Make every decision understandable

Status: complete (2026-10-03). Depends on IX-02.

Build a standalone Indexin inspection tool: enter a range and law, see candidates and survivors, inspect why an address was kept or dropped, compare two recipes, and export JSON/CSV. Reuse the engine's explanation records. Clearly distinguish address stripes, coordinate stripes, and time stripes; keep/drop terminology must match the chosen channel.

Start with CLI/library examples, then a small visual workbench: one-dimensional address strip, square-shell grid, and selected feature view using the same results. Provide presets, reset/undo, accessible controls, and specific validation messages.

Done when: the worked example selects exactly `13, 16, 19, 25, 28` from `[10,30]` with stride 3, origin 10, mask 2, modulus 4, and dropped residue 0. Moving the viewing window retains the pattern; changing origin visibly shifts it. The exported selection and the displayed explanation agree.

Delivered: CLI plus standalone `workbench/dist` with bounded strip/grid/membership-column views, exact inspector, presets, comparison, Undo/reset, JSON/CSV exports, and code/link sharing. Grid viewport and address window are explicitly distinguished. The UI works with up to 256 viewed addresses; membership columns do not claim building geometry. Browser and integration validation details are in README.

### IX-04 — Share versioned recipes

Status: complete for selection recipes (2026-10-03). Depends on IX-02; IX-03 consumes it.

Define a portable recipe schema and deterministic JSON encoding, then a compact share code. Include law version, address convention, parameters, and adapter identity. Encode large integers without JSON precision loss. Validate unknown versions and malformed inputs with actionable errors. A checksum detects accidental corruption; it is not authentication.

Done when: Python and JavaScript exchange identical recipes and selections, canonical encoding is stable, corrupt codes are rejected, and the workbench can copy/paste a recipe. Do not promise every large recipe will fit in a short URL.

Delivered: strict versioned document and canonical `IX1` code, decimal-string integers, IEEE CRC32, safe-domain/size/version checks, Python/Node/browser APIs, CLI `--code`/`--encode`, and a fixed compatibility vector. Tests exchange 1,967 laws and cover corruption, unknown formats, canonical encoding, maximum drop lists and browser actions. World geometry, edit overlays and arbitrary adapters are intentionally outside selection schema v1.

## Second milestone: reusable building and streaming components

### IX-05 — Stable feature identity and edit overlays

Status: complete for semantic identities and metadata overlays (2026-10-03). Depends on IX-04.

Give features identities based on world, generation version, signed chunk, local cell, level, role, and part. Keep IDs independent of mesh emission order. Store edits separately from generated geometry. Specify what happens when a parameter change removes the edited feature: retain an orphaned edit with an explanation, rather than silently moving it to another object.

Done when: reordering geometry leaves IDs unchanged; a surviving feature retains its edit after a sieve change; removed features produce explicit conflicts; save/load and version migration behavior are covered by fixtures.

Delivered: paired identity and courtyard-feature modules, `IXC1`/`IXF1` keys, strict versioned overlay documents, canonical save/load, and explicit visible/hidden/orphan results. Semantic parts survive emission reordering; removed or relocated parts retain orphaned edits, which reattach if that identity returns. Unknown versions are rejected; migration is explicit application work. Tests cover geometry preservation, changing recipes, stair relocation, canonical encoding and input limits. Overlays store metadata/hide decisions; application mesh and collision integration stays with Claude.

### IX-06 — Generalize protected passages and support

Status: complete for bounded box protection and the additive courtyard adapter (2026-10-03). Depends on IX-01 and IX-05.

Reuse the existing stair and walker modules. Add reusable `P_open` passage volumes and `P_support` floor reservations, with body clearance and clipping/splitting of intersecting boxes. Keep visual and collision records derived from the same geometry. Add explicit origin to the courtyard adapter while preserving its legacy default of origin = start.

Done when: a large object intersecting a protected passage cannot block it merely because its center is outside the passage. Routes reach each floor and return, landings have headroom, default recipes remain compatible, and fractional stripe widths have defined geometric behavior.

Delivered: paired `passages` modules with whole-AABB subtraction, retained support volumes, explicit conflict errors, deterministic source/cut ordering, source-linked fragment IDs, and atomic work/piece caps. One output geometry list serves rendering and collision. The courtyard adapter adds exact signed stride origin (default=start), retains default geometry, and clips continuous fractional stripe clearance without narrowing existing wider portals. Shared route validation now serves both gallery and chamber adapters, with geometry/route/substep limits. This is bounded box geometry, not arbitrary mesh Boolean operations or automatic repair of unspecified routes.

Verified: hand-worked volume and width fixtures, 30 independent voxel-oracle cases, off-center obstacle removal followed by actual supported walking, support preservation/conflicts, budget/input rejection, twin records, default compatibility, safe-domain origin differences, and four-floor stair ascent/descent in all orientations with fractional stripes. Apply semantic overlays to sources before clipping; derived IXP1 fragments retain source_id and do not masquerade as IXF1 overlay targets.

### IX-07 — Independent chunks and a moving generation window

Status: complete for the new global town generator (2026-10-03). Depends on IX-05; general IX-06 passage editing is not required for the existing courtyard/street geometry.

Audit the finite neighbourhood before extending it. Its current ground recipe and coordinates depend on the neighbourhood center/frame; matching the twelve edges inside one neighbourhood does not establish consistency between independently recentered windows.

Define global signed chunk identities, collision-free address encoding, canonical boundary keys, and explicit face ownership. Generate a bounded moving window with cancellation and caching. Derive an edge record from its key without consulting a generated neighbour.

Done when: overlapping windows reproduce the same global chunks after recentering; different request orders and unload/reload produce identical records; each side independently derives the same opening and boundary geometry; collision crosses seams; memory remains bounded. Record lighting/normal and LOD seam limits separately from position agreement.

Delivered: paired `streaming` modules with exact signed-coordinate pairing, `World`, standalone `IXE1` edge reconstruction, global terrain samples, semantic feature records, and bounded incremental `ChunkStream` requests with cancellation and LRU caching. Geometry supports chunk coordinates ±32,767; identities support signed safe integers. Recentered overlapping chunks are unchanged, independent edges agree, and supported walking crosses loaded signed-coordinate seams and existing stair routes. Tests cover hand-worked fixtures, domain edges, request ordering/cancellation/reload, cache isolation, Python/JS records and browser-global loading. Caller-retained windows are outside the internal cache bound. Normals, lighting, LOD, application rendering and arbitrary edited geometry need application integration. The legacy finite neighbourhood remains unchanged; this is an explicit new generator, not a silent migration.

### IX-09 — Temporal selection kit

Status: complete for bounded integer-tick laws (2026-10-03). Depends on IX-02; developed alongside IX-05/IX-07.

Delivered: paired `TemporalLaw` modules with stateless sampling/explanation, selected-tick pages, bounded state-transition pages, cross-language cursors and strict versioned documents. Fixtures and independent scans cover seek/replay, partitioning, work budgets and range boundaries. Repeat behavior is guaranteed only when both compared ticks are inside the finite law range; no fairness or coverage claim is implied. The caller owns clock duration and playback. Lamp/ferry/hunt integration remains Claude's work. See the Python/JavaScript temporal examples and README.

### IX-08 — Sieved structure kit

Status: complete for the gallery-v1 adapter example (2026-10-03). Depends on IX-02, IX-05 and IX-07.

Delivered: paired `Structure` modules build 1–4 stacked gallery floors with eight stable room/terrace slots per floor, independently law-selected facade windows, fixed corridors, guardrails, individual top-room roofs, and the existing staircase/floor-hole geometry. Versioned documents round-trip across Python/JavaScript; semantic feature IDs support existing overlays. The adapter returns renderer/collision records and explanations for every bay. Lower terraces are covered by the next gallery slab; upper terraces are open to the sky. This is a bounded building example, not arbitrary architecture or a structural-engineering assessment.

Verified: hand-worked selection and geometry-count fixtures, 40 independent law scans, full record/document exchange, stable slots and orphaned edits, all four stair rotations through four floors, entry-to-every-bay routes and returns, rejected walls/low ceilings/missing floor support, input bounds, copy isolation and browser-global loading. Route checks use actual solids/slabs and the fixed upstream body. They certify named routes, not all possible motion. Examples and integration details are in README. `ChunkStream` retains its current generator; application selection/rendering of gallery chunks is explicit integration work for Claude.

### IX-10 — Connected 3D chambers

Status: complete for the bounded chambers-v1 adapter (2026-10-03). Depends on IX-06, IX-07 and IX-08.

Delivered: paired `Chambers` modules carve law-selected pockets and a protected circulation spine from a 2 × 2 × (1–4 levels) solid volume, restore floor support around actual stair holes, and reuse existing stair geometry. Entrance chamber zero and a chosen objective are explicitly required, including under an all-drop law. Records distinguish law selection from required openings. Canonical IXCP1 room-mouth contracts reconstruct from keys; active portal lists establish actual membership. Strict versioned documents, copied geometry/decision records, named routes, work statistics and matching examples are included.

Verified: hand-worked 3D addresses/forced-opening/portal fixtures, independent point occupancy, full twin records and documents, all stair orientations for dense/all-drop four-floor worlds, entrance-to-objective and return movement, negative chunks, domain-edge records, and deliberately blocked entrances/removed stairs. It has one south entrance, fixed body dimensions and bounded geometry; arbitrary volumetric grids, jumping/falling, physical structural stability and application rendering remain outside this adapter. Browser-global loading is checked in the VM harness.

## Visual inspection milestones

### IX-11 — Visual geometry inspection and reproducible diagnostics

Status: complete for the local Geometry Lab (2026-10-04). Depends on IX-06, IX-08 and IX-10.

Delivered: an independent `inspector` with floor plans, adjustable isometric cutaways, per-address law explanations, full-record geometry picking, gallery/chamber/all-drop presets, and a blocking-wall/protected-passage diagnostic. Worker checks validate actual geometry; a separate cancelable worker computes real supported route traces for playback, scrubbing and automatic floor changes. Recipe import/export, standalone SVG export, versioned inspection reports, responsive controls and source-hash manifests are included. Invalid input retains the last valid result; superseded workers cannot publish stale results.

Verified: the new inspector harness covers all preset/scenario combinations, trace completion/failure, section bounds, copy isolation, worker module loading and byte-for-byte vendor hashes. Real Chrome checks cover desktop/mobile rendering, cut height/picking, worker cancellation, obstruction/repair, trace playback, valid/invalid import and JSON/SVG export. The SVG renderer is a diagnostic view with painter ordering, not a game renderer. The hosted selection workbench and applications remain unchanged; local usage and browser-check commands are in README.

### IX-12 — Baseline law experiments and reproducible replay

Status: complete for the local diagnostic tooling (2026-10-04). Depends on IX-05 and IX-11.

Delivered: pinned baseline snapshots, restoration, identity-based box/slab differences, visible added/changed outlines, before/after room states and route regression/repair/removal classifications. Compatible comparisons preserve adapter/world/generation/chunk scope; removed routes and changed paths are explicit. A versioned comparison bundle includes both completed inspection reports. The bounded Node CLI regenerates and verifies geometry, decisions, routes and actual checks, with distinct passing, blocked and invalid-evidence exit statuses. It accepts existing completed inspection exports and rejects stale/altered evidence. Browser and headless modules use the same comparison implementation; the paired engine remains version 0.5.0.

Verified: hand-worked off-center wall fixture (one obstruction → three protected fragments, ten routes repaired), all-drop required-opening behavior and five removed optional routes, emission/key order independence, changed/duplicate identities, scope rejection, copied snapshots, corrupted reports/summary rejection, input limits and CLI statuses. Live Chrome covers baseline pin/restore, law edits, visible outlines, incompatible presets, route regression/repair, desktop/mobile layout, and replay of actual browser exports. This is a reproducibility check for built-in scenarios, not authentication, a world editor, or proof of all possible motion.

### IX-13 — Measured generation and diagnostic budgets

Status: complete for measured Node engine/tool workloads (2026-10-04). Depends on IX-07 through IX-12.

Measure generation, protected clipping, route checks and diagnostic exports separately on fixed gallery/chamber cases and streaming windows. Record runtime/environment, warm-up, sample count, work counts and output sizes. Keep performance artifacts separate from correctness fixtures; investigate measured bottlenecks before changing engine behavior. Keep paired engine behavior and stable identities intact. Application integration feedback should determine which measurements merit optimization.

Delivered: `tools/benchmark-geometry.cjs` measures 50 fixed workloads: six gallery/chamber configurations across construction, defensive copying, full route checks, walking traces, report snapshots, pretty JSON and comparison bundles; one/128-wall passage clipping; and cold/cached/recentered 3×3/5×5 streaming windows. Every repetition verifies deterministic output hashes, with independent clipping-volume and overlapping-chunk assertions. Raw samples include source hashes, complete case parameters, operation scopes, environment, counts and serialized output sizes. The Markdown summarizer renders the saved artifact without rerunning it.

Measured on Apple M1 Max / Node 22.23.2, five warm-ups then 25 samples per workload: four-floor gallery construction median 1.511 ms versus 79.981 ms for its 36 route checks; 5×5 window median 34.506 ms with an empty cache versus 14.674 ms with a populated cache. Cached results still include all chunk copies. These identify stages to investigate; they are not browser frame-rate, peak-memory, Python-runtime or universal-speed claims. No engine optimization was made under this measurement task. [Full measured report](benchmarks/geometry-2026-10-04.md), [raw evidence](benchmarks/geometry-2026-10-04.json).

Verified: timing-boundary/warm-up/nearest-rank percentile oracles, rejection of changing outputs, clipping volume and piece counts, streaming window sizes/shared records/cache bounds, all 50 measured workloads, existing inspector/comparison suites and reference hashes. Performance artifacts are separate from correctness fixtures; CI has no machine-dependent millisecond pass threshold.

## Expansion roadmap — from a building inspector to a law laboratory

IX-14 through IX-27 are now delivered within the scopes recorded below. These are reusable Spindexin tools; town/game integration stays with Claude. The read-only sitoolz cards were reviewed on 2026-10-04. They describe available modules, not Claude's live work queue. Any new import needs a reviewed revision, provenance, fixtures and dependency review; none of the proposed extra sitoolz modules has been imported by this roadmap.

### IX-14 — Faster verified movement checks

Status: complete for prepared collision snapshots (2026-10-04).

Depends on IX-13. Profile repeated geometry preparation, collision candidates and support queries inside the gallery's 36-route check. Prototype a conservative spatial index or reusable prepared collision snapshot only where the profile justifies it. Keep geometry copies and cache invalidation explicit.

Done when: prepared and existing walkers agree on actual body positions, failures and route results across existing twins, dense/all-drop cases, edited walls, missing floors and signed chunks. Publish before/after runs with identical cases and output hashes. Preserve an exact fallback; no speed target substitutes for correct movement.

Delivered in library 0.6.0: Python `World.prepare_walk` and JavaScript `World.prepareWalk` return detached, bounded collision snapshots with conservative two-unit candidate bins. Exact overlap/support tests and record order are retained. Named-route checking prepares once, with the original walker as a fallback; the visual trace also prepares once. Editing geometry requires a new snapshot. A 250,000-reference limit bounds the index; no global mutable cache is introduced. CPU sampling identified `walk` as the dominant route-check stage before this change. Before/after benchmark artifacts retain the same 50 cases and output evidence.

Verified: 960 body/movement probes against both original walkers and across Python/JS, all four stair orientations for dense/all-drop gallery/chamber cases, full route-result agreement, signed domain-edge bins, seam crossings/unloaded boundaries, detached edits, stats isolation, and explicit reference-budget fallback. The full Python suite now has 62 passing methods. [After measurements](benchmarks/geometry-2026-10-04-prepared.md).

### IX-15 — Living laws: a time axis in the Geometry Lab

Status: complete for bounded gallery light studies and the tabbed showcase (2026-10-04).

Depends on IX-09 and IX-12. Add an integer-tick scrubber, play/pause, address-versus-time matrix and lit-window preview. Pick a window and see why its address qualifies and why it is on at that tick. Begin with the already delivered temporal kit; a separate optional clock adapter can later draw on the sitoolz clocks module. That optional module and its documentation are not included in this showcase.

Done when: seek, reverse and replay give identical states; time laws save/load with the building experiment; reported periods respect the finite range and are labeled valid versus proven minimal. Rendering lights must not silently change collision geometry. This is the next visible feature after IX-14.

Delivered: a Time & lights page with 0–511 tick scrubbing/playback, per-address delays of 0–8 ticks, generated-window preview, a clickable 64-tick address/time matrix, exact explanations and strict versioned `indexin-light-study` JSON. A window is lit only when the gallery generated it and its nonnegative local tick passes the temporal law. Gallery recipes transfer between Geometry and Time; light changes do not alter geometry. Playback pauses when hidden. No additional clock engine was imported.

IX-15 introduced the first five working navigation tabs: Selection (an unchanged local copy of the existing workbench), Geometry, Time & lights, Measurements (saved before/after data with filters), and Roadmap (the actual task list with delivered/planned filters). Geometry, lights and measurement views share existing engine records. All published sites and the separately developed applications remain unchanged.

Verified: 49,152 independent address/tick oracle states, seeking/replay, unchanged geometry, round trips, malformed/oversized documents, and real Chrome controls including light playback, matrix picking, invalid input, exports, gallery transfer and desktop/mobile layout. The window grid is a schedule diagram, not a physically rendered facade or lighting simulation. Imported/saved light studies are gallery-only; chamber illumination and arbitrary time ranges in the preview are future extensions.

### IX-16 — Moving-window and seam laboratory

Status: complete for the bounded global courtyard inspector (2026-10-04).

Depends on IX-07, IX-12 and IX-13. Pan a bounded 3×3 or 5×5 inspection window across signed chunk coordinates. Color reused/new/unloaded chunks, expose cache counts and step budgets, and click a shared edge to compare records independently derived by its two neighbors.

Done when: overlapping chunks stay identical after recentering and reload, canceled jobs cannot appear, and a supported seam-crossing trace replays from an exported case. Explain final-copy cost separately from per-chunk work. Use the existing global generator; do not silently substitute gallery/chamber chunks into it.

Delivered: the sixth showcase tab, Moving window, with signed center coordinates, 3×3/5×5 windows, panning, a 64-chunk cache, clear/reload, shared/new/unloaded record comparison and worker progress. Generation steps are scheduled separately; superseded jobs cannot publish a stale completion. The map shows actual height-1 box sections and sparse terrain samples. Selecting a chunk/side compares independently reconstructed edges and checks the loaded flat-street crossing outward and back. Domain-edge and unloaded neighbors are explicit. Compact `indexin-window-study` version 1 exports replay by regenerating the window and checking edge/movement evidence (`tools/replay-window.cjs`). No game integration or different building generator is implied.

Verified: signed overlapping windows, identical shared records, all four seam directions, replay/tampered evidence, unloaded/domain-boundary cases, actual worker cancellation, browser rapid panning, cache reload, 5×5 generation, export replay and desktop/mobile layout. Worker timings separate the final step (including full-window copies); they exclude browser transfer/drawing and are observations, not performance guarantees.

### IX-17 — Persistent edit and orphan laboratory

Status: complete for gallery source annotations and hide previews (2026-10-04).

Depends on IX-05, IX-06 and IX-12. Pick semantic sources, save annotations/hide edits, change the law, and inspect retained, orphaned and restored edits. Make the effect on visible versus collision geometry explicit and recheck any collision-affecting preview.

Done when: a saved edit remains on its identity through reorder and recipe changes, missing targets remain visible as orphans, and reintroducing the target restores the edit. Apply overlays before clipping; never attach source edits to transient IXP1 fragments.

Delivered: the Persistent edits tab, a source floor plan and selector, ASCII annotations, hide/remove controls, explicit drawing-only versus drawing-and-collision modes, retained orphan lists, real worker route checks, JSON study import/export and opt-in browser save/restore. Version 1 edit studies carry the building, overlay, collision mode and selected view; browser storage is local to the site's origin. The model leaves generated originals untouched. One overlay operation is stored per identity: annotating replaces hiding and hiding replaces annotation. The lab supports gallery IXF1 sources; chamber clipping and application editing remain outside its scope.

Verified: source reordering, removed/restored rooms, note and geometry isolation, missing-stair route failures in collision mode, study round trips, invalid/oversized documents, actual worker execution and Chrome desktop/mobile controls, browser storage, imports and download replay.

### IX-18 — Compose laws with visible set operations

Status: complete for bounded binary law trees and the Compose laws lab (2026-10-04).

Depends on IX-02, IX-04 and IX-12. Build bounded union, intersection, XOR and difference of named law selections. Show the reason tree for each address and keep required passage/entrance reservations separate from mathematical selection.

Done when: Python/JavaScript results match independent finite-set oracles, pagination remains bounded, nested recipe documents reject unknown versions and cycles, and changing one branch reveals exactly which addresses changed. Composition must not imply an unproven minimal period or unbounded enumeration.

Delivered: paired `Composition` modules, strict `indexin-composition` version 1 documents embedding existing leaf recipes, full arithmetic reason trees and cross-language cursor pages. Trees are limited to 63 nodes/depth 8/262144 serialized characters. A page scans an explicit inclusive window, returns at most 10000 results and spends at most 100000 node evaluations; every node counts for each examined address. The new Compose laws tab provides nested presets, operator/leaf editing, synchronized membership strips, selectable address tiles, pinned-baseline added/removed comparisons and JSON import/export. The visual window is capped at 256 addresses. Passage/entrance reservations and geometry adapters are not folded into mathematical selection; no composition period is claimed.

Verified: hand-worked shared fixtures, 60 seeded random nested trees against independent finite sets, range/window partitions, Python/JavaScript explanations and cursor exchange, exact safe-domain boundaries, empty-result budget progress, cycle/depth/node/document limits, immutable public snapshots and actual browser-global modules. Chrome checks cover branch/operator changes, exact highlighted differences, restore, invalid input, JSON replay, large-address views and desktop/mobile layouts.

### IX-19 — Parameter sweeps and experiment galleries

Status: complete for bounded gallery/chamber law grids (2026-10-04).

Depends on IX-12 and IX-13; IX-18 is optional. Compare a capped grid of strides, origins, stripe widths or residue sets as small multiples. Show selected/open/required counts, geometry size and route outcomes; click a cell to load its reproducible case.

Done when: progress and cancellation work, invalid combinations are labeled, all displayed counts come from the same generated records, and exports recreate each cell. Separate law effects from measured runtime noise. Initial cap: at most 64 recipe variants per explicit run.

Delivered: Parameter sweeps, the ninth showcase tab, with two distinct law axes of 1–8 values each, gallery/chamber presets, original/blocked/protected entrance scenarios, progress, cancellation and small floor-plan multiples. Counts come from the generated target/geometry records and actual named-route checks. Invalid combinations are labeled per cell. Select a case to inspect its address decisions, export a one-cell report or open the exact recipe and diagnostic scenario in Geometry. Complete-grid reports include normalized inputs, target counts/decisions, geometry SHA-256 and route evidence; replay regenerates and compares every cell. Local per-cell timing is displayed separately and omitted from deterministic evidence. Cancellation leaves a labeled partial grid; it cannot be exported as complete. Report imports verify in a temporary grid before replacing visible results.

Verified: independent gallery/chamber count oracles, required versus forced openings, invalid stripe combinations, blocked/repaired routes, full regeneration with geometry hashes, tampered/reordered/missing evidence, input bounds, copy isolation, actual worker cancellation/supersession and CLI exit statuses. Chrome covers progress, cancellation, supersession, invalid input, complete/single-case export replay, report import failure retention, Geometry transfer with scenario, and desktop/mobile layouts. This lab reuses the paired building engines; no new Python geometry behavior or sweep performance guarantee is introduced.

### IX-20 — Explain the exact movement failure

Status: complete for bounded movement observation and four controlled gallery cases (2026-10-04).

Depends on IX-06, IX-10 and IX-12; coordinate with IX-14's collision representation. Highlight the failed segment and body footprint. Distinguish blocking solids, insufficient headroom, missing support and an unreached target, linking responsible geometry to its source where identifiable.

Done when: controlled fixtures demonstrate each failure class; ambiguous contacts remain labeled ambiguous; explanation generation does not change the movement result. A suggested repair is previewed and rechecked before being described as successful.

Delivered: Movement failures, the tenth tab, with controlled entrance obstruction, low ceiling, upper-floor support removal and incorrect-target scenarios. The diagnostic observer reproduces ordered x/z substeps and compares the final body/counters with the original authoritative walker before presenting a classification. Mixed causes and observer disagreements stay explicitly ambiguous. The view shows the failed segment, body footprint, side clearance and linked source records. Each fixed repair preview reruns all named routes. Study JSON and full replayable evidence exports are included, with a Node CLI verifier. The reusable JavaScript observer accepts one validated chunk, at most 2048 geometry records and the walker's 4096-substep move cap. It does not alter the paired movement engine or promise arbitrary automatic repairs.

Verified: all four failure classes and repairs, 135 successful/diagonal/step/contact probes against authoritative movement, unloaded boundaries, deliberately ambiguous contacts and observer mismatch, immutable geometry, source linkage, actual worker and CLI replay/tamper statuses. Chrome verifies scenario changes, repair checks, invalid study retention, evidence exports and responsive rendering.

### IX-21 — Portable experiment bundles and recipe shelf

Status: complete for bounded gallery/chamber experiments (2026-10-04). Depends on IX-04, IX-12 and IX-15.

Delivered: an Experiment shelf tab with up to 24 local saves (2 MiB), explicit save/replace/delete, geometry and lighting capture, baseline/scenario/view restoration, JSON export/import and separate IXB1 portable codes. Each bundle is capped at 128 KiB and uses canonical UTF-8 JSON with a corruption checksum; links use a fragment and an 8,000-character cap. Browser storage stays on its own origin. Existing IX1 codes are unchanged. Reopening reruns geometry checks; saved inputs do not certify results.

Verified: Python/JavaScript byte-identical Unicode bundles/codes, strict formats, identity scope and view bounds, corrupt imports, caps and isolated saves. Browser checks cover persistent reload, invalid-import retention, comparison baseline and time restoration, responsive layouts and every tab's Working IXs links. Every lab now states its law/constraint, working behavior and limits; milestone badges open the matching roadmap entry.

### IX-22 — Address-keyed variations

Status: complete for cosmetic identity-keyed choices (2026-10-04). Depends on IX-05 and IX-12.

Delivered: Addressed variations tab, paired `variation` APIs and IXV1 FNV-1a mapping of seed, semantic feature ID and named channel into 1–256 choices. The gallery preview compares seeds, changes channels and reverses emission order without altering geometry/collision. Every choice exposes its full key, 64-bit hash and palette index. This independent cosmetic mapping is inspired by Lars Rocha's indexed-randomness card; it is not the sitoolz RNG protocol and makes no uniformity/crypto promise.

Verified: shared authored fixtures, Python/JS exact outputs, independent byte-hash oracle, seed comparison, order/channel independence, strict bounds and unchanged geometry; browser invalid-input retention and responsive layouts.

### IX-23 — Ruler and stripe pattern studio

Status: complete for the bounded ruler-pattern studio (2026-10-04). Depends on IX-03; uses IX-07's signed address mapping.

Delivered: Ruler patterns tab with synchronized 16×16 column-rank, Gaussian-rank, flattened-address-stripe and coordinate-corridor views. Bases 2/3/5, signed origins, thresholds and periods are editable. Cell explanations include the column cofactor and exact Gaussian quotient chain. JSON and four-panel SVG exports are included. Paired arithmetic uses exact integer differences, including safe operands whose difference exceeds JavaScript's safe Number domain. Zero rank follows the reviewed toolkit convention.

Verified: signed/origin grids, Gaussian norm valuation oracle, hand cases, safe-domain boundaries, paired/shared fixtures, browser selection synchronization, invalid-input retention and valid SVG. The UI window/origins are capped at ±1,000,000; library rank operands cover safe integers. No terrain engine or new global theorem is claimed.

### IX-24 — XOR constraints and lamp networks

Status: complete for bounded GF(2) systems and lamp networks (2026-10-04).

Delivered: XOR lamps tab with square/ruler 3×3 presets, editable switch-to-lamp matrix, current-state lamps, forced variables, free parameters, rank, contradiction row witnesses and checked hints. Plain elimination is independently checked by enumerating every assignment for at most 12 variables and 24 equations. Minimum additional presses is claimed only within that exhaustive cap; ties use the smallest bitmask. JSON system import and evidence export/replay CLI are included. No upstream solver/application code was imported.

Verified: 50 seeded systems against an independent assignment oracle, Python/JS parity, contradiction-row XOR certificates, bounds, every hint reducing the verified minimum, invalid-input retention and replay/tamper rejection.

### IX-25 — Number-theory sieve observatory

Status: complete for bounded divisibility and trial-division studies (2026-10-04).

Delivered: Sieve observatory tab with cancellable worker runs of up to 1,024 candidates, integer intervals or k·2ⁿ±1 pairs, prime-divisor exclusions, survivor/verified-prime distinction, finite-window prime gaps and twins, and a separate Indexin stride/XOR/residue selection. Every integer is ≤1,000,000; exact trial division through floor(sqrt(n)) verifies displayed primality. Pair explanations include bad k residues and the prime-equals-divisor exemption. Replayable report export and CLI included. This is a bounded study inspired by the forge card, not the large-number Pocklington/Lucas forge.

Verified: independent Eratosthenes oracle through 10,000, twin parity, shared fixtures, the 121 survivor/composite distinction, bounds, browser progress/cancel/last-result retention and evidence replay/tamper rejection.

### IX-26 — Modular building blueprints

Status: complete for the separate single-level blueprint-v1 graph (2026-10-04).

Delivered: Modular blueprints tab and paired APIs for 1–16 room/landing/connector nodes on a 4×4 grid, 6×6 units each, at most 24 adjacent joins. Each portal key reconstructs its width, headroom, boundary and floor contract; both sides agree. The original walker checks entry-to-module routes and every join in both directions against emitted solids/support. Low clearance returns rejected walkability with a reproducible report. Non-adjacent, disconnected or duplicate graph inputs fail before replacing the valid view. Semantic IDs survive input reorder.

Verified: four-, eight- and sixteen-module presets, complete Python/JS geometry/check parity, every join deliberately lowered to fail, canonical reorder invariance, contract reconstruction, invalid graph cases and browser report rendering. A separate 3-warmup/15-repeat benchmark records this adapter's actual build-and-check workloads. Existing gallery/chamber adapters remain unchanged. Version 1 is one level; all three node kinds share a shell footprint. No multi-level or arbitrary-size guarantee is implied.

### IX-27 — Evidence cards and counterexample notebooks

Status: complete for finite selection-relation evidence cards (2026-10-04). Depends on IX-18's law trees.

Delivered: Evidence cards tab and local notebook, paired claim/create/verify APIs and Node replay CLI. Cards carry subset/equivalence/disjointness claims, two recipes, an explicit ≤4,096-address domain, checked results and the first counterexample with full explanations. Observations permit 1–32 distinct samples; exhaustive mode checks the whole finite domain. Imported cards rerun and compare all evidence. Counterexamples open in Compose laws with the other expression pinned as baseline. Notebook: 12 cards / 2 million characters per browser origin; JSON for portability.

Verified: all three evidence labels, observation versus exhaustive distinction, counterexample transport, exact safe-boundary addresses, paired results, local reload, witness tampering and CLI rejection. Mathematical proof is not an accepted mode; every artifact states its finite scope. Lars Rocha's edgecert card informed the explicit witness/replay discipline; no edge-certificate engine or proof protocol was copied.

IX-01 through IX-41 are delivered within their bounded scopes and represented in the thirty-tab inspector. Each lab identifies its working IXs, governing rule or constraint, behavior and limits. IX numbers identify capabilities; they do not establish additional mathematical laws. The separate application working copy is untouched. The user publishes https://spindexin.netlify.app; updated local bundles remain prepared for manual upload.

## Connected laws, geometry and reusable studies

All twelve milestones in the IX-28–39 wave now have working labs, inspectable engine results and reproducible exports. The two-level menu keeps the expanded collection reachable and the Roadmap visible. The geometry adapters remain deliberately small; the workflow tools operate on finite declared domains. Future expansion should follow evidence from these tools, rather than silently broadening their guarantees.

### IX-28 — Law Atlas and connected example browser

Status: complete for curated bounded examples (2026-10-05). Depends on IX-03, IX-18, IX-23 and the Working IXs guide.

Delivered tab: **Law Atlas**. Seven engine-backed examples cover range, stride, stripe, XOR/residue sieve, a base-two ruler and set intersection/difference. One selected address connects a 256-address number line, nonnegative square-shell map and exact explanation. Deep links preserve example/address; recipe and composition transfers open the same engine document in the destination lab. The ruler example uses the address as its column and explains its equivalence to a stride.

Navigation now has two levels: four lab groups and their pages, with a prominent gold Roadmap link always available. The Atlas directory links all labs; the public roadmap sorts IXs numerically and shows delivered/planned badges. Both creator-supplied graphics appear on the front page and Roadmap with Lars Rocha's credit. IXs are milestones; mathematical rules, geometry constraints and finite experiments are distinguished.

Verified: all 256 address-map round trips, every displayed decision against the engines, composition/recipe transfers, deep links, standard keyboard-accessible buttons, and desktop/mobile layouts. No external gallery, signed-coordinate remapping or arbitrary user code is included.

### IX-29 — Stride intersections and congruence joins

Status: complete for two-stride congruence joins (2026-10-05). Depends on IX-02, IX-18 and IX-27.

Delivered tab: **Stride intersections**. Paired exact arithmetic derives gcd compatibility, Bézout coefficients, normalized shared congruence, lcm spacing, first member and exact count in one inclusive finite window. Inputs are canonical decimal strings within the shared safe-integer domain; signed origins are supported. BigInt/Python intermediates and decimal outputs preserve periods larger than the recipe domain.

The address overlay and witnesses each show at most 128 values. Calculations download and replay as indexin-stride-study v1. Representable joins and incompatible/empty intersections can open finite equivalence checks in Evidence cards (at most 4,096 addresses); representable joined strides can open Period microscope. This first release provides an inspectable static overlay, not an animated clock. Stripes and sieves are not folded into the stride-only theorem.

Verified: 300 independent finite-scan cases, hand-worked shared fixtures, compatible/incompatible origins, compatible but empty windows, signed safe-boundary subtraction, oversized periods, paired Python/JS output, tamper rejection, and actual browser transfers.

### IX-30 — Period, residue and density microscope

Status: complete for bounded single-law period studies (2026-10-05). Depends on IX-02, IX-18, IX-19 and IX-27.

Delivered tab: **Period microscope**. Show stride, stripe, XOR/residue and finite-range decisions with residue inspection. Separate a justified valid repeat from a verified least period, underlying period density and finite-window counts. Pin a result to compare phase/filter changes on shared preview addresses. A finite range clips the predicate; it does not change the underlying period claim.

Full-word enumeration is capped at 65,536 addresses, divisor comparisons at 1,000,000, and preview cells at 128. The valid period includes the power-of-two XOR mask block. Least-period claims require exhaustive testing of smaller divisors of that complete valid-period word. Work-cap cases report least period as unestablished. A full word permits exact prefix-count arithmetic over the entire safe address range; an overlarge period falls back to at most 4,096 directly checked addresses and labels partial counts explicitly. No period is inferred for a composition tree.

Workers support cancellation and preserve the last complete result. indexin-period-study v1 exports replay in both languages and the CLI; imported claims are recomputed. Verified: 65 deterministic independent periodic-word oracles, constant/empty patterns, clipped and boundary windows, XOR cases that defeat a naive lcm, both budget limits, shared fixtures, Python/JS parity, browser replay/cancellation and cross-lab recipe transfer.

### IX-31 — Space-time weave studio

Status: complete for bounded address × tick diagrams and compatible gallery schedules (2026-10-05). Depends on IX-09, IX-15, IX-18 and IX-23.

Delivered tab: **Space-time weaves**. A synchronized address strip, selected-address timeline and address × global-tick matrix share one inspected cell. Spatial composition trees combine with a temporal predicate after either linear address-distance delay or a base-2/3/5 ruler-rank delay. Presets demonstrate traveling waves, simultaneous pulses, ruler echoes, composed cutouts and exact boundary arithmetic. Each cell explains its spatial decision, delay coefficient, exact local tick and temporal decision.

Paired Weave APIs preserve canonical decimal axes and signed delay steps. Inputs use the shared safe-integer domain; Python integers/BigInt handle larger intermediate products exactly. Local ticks below zero or above the supported domain are inactive, with an explicit reason; they are never wrapped or silently rounded. Ruler rank at zero follows the existing zero-rank convention. Preview caps are 32 addresses × 64 ticks (2,048 cells), with a cancelable worker and last-complete-result retention.

Playback derives an integer offset from elapsed time at five ticks per second, rather than counting frames; direct seek and replay agree. Recipe/report JSON preserve the spatial tree, time law, delay meaning and window. Reports replay in both languages and the CLI. The current playhead resets to the first cell on import; it is not part of the arithmetic report.

Time & lights transfer supports linear delay 0–8 with origin 0, selected address 0–31 and tick 0–511. Any spatial tree is compiled into an equivalent finite 32-address window recipe for a four-floor gallery with every room present. This preserves those selection decisions, not the original tree's explanation structure or a general world generator. Ruler and other unsupported delays stay in the weave studio with a clear explanation.

Verified: hand-worked shared fixtures, 12,288 independent phase/predicate cells, signed/beyond-safe intermediate products, zero-rank cases, order-independent sampling, strict schema/cap checks, Python/JS report/explanation parity, worker error handling, tamper rejection, 49,152 equivalent gallery light states, and browser playback/seek/keyboard/cancel/import/transfer plus desktop/mobile layouts. No application working-copy changes or deployment are included.

### IX-32 — Law-driven facade and floor patterns

Status: complete for cosmetic samples on existing blueprint faces (2026-10-05). Depends on IX-22, IX-23 and IX-26.

Delivered tab: **Surface patterns**. Floor grids and unfolded facade faces map a fixed quarter-unit coordinate lattice through row, column or square-shell address order. A composition tree selects addresses, a base-2/3/5 rank threshold filters them, and semantic feature identities choose materials through the existing variation engine. Select a panel to see its source solid, address, rank, selection explanation and material key. Mapping, seed and threshold changes compare against an aligned pinned baseline. JSON replays and SVG captures preserve the experiment and view.

Verified: floor/facade choices against direct arithmetic; identical original geometry and walker checks across every cosmetic change; stable IDs under node/edge reorder; replay/tamper rejection; keyboard inspection and desktop/mobile rendering. At most sixteen blueprint modules. JavaScript/browser API; original blueprint geometry remains paired. This does not carve windows, move walls or claim a physically simulated material or optical illusion.

### IX-33 — Multilevel modular blueprint kit

Status: complete for a separate two-level rectangular stack adapter (2026-10-05). Depends on IX-06, IX-20 and IX-26.

Delivered tab: **Stacked blueprints**. indexin-stack v1 keeps explicit elevations 4.2 and 8.2, 1–2 columns and 1–3 rows per floor (2–12 total modules), with a sixteen-tread open stair bay. Linked floor plans and a real tread section expose solids, keyed level-aware portal contracts, landings and route failures. Blueprint-v1 retains its original single-level meaning. The pinned walker checks every named module/join and the complete stair/landing route out and back against emitted geometry.

Verified: all six supported layouts; missing tread, blocked landing and mismatched-elevation controls fail the vertical route; source IDs are stable; Python/JavaScript geometry and route reports agree (floating records compared within 1e-12). Geometric endpoint tolerance is 1e-7. Generation stays below the declared 512-solid/50,000-substep caps. [Recorded measurements](benchmarks/building-labs-2026-10-05.md) include three warmups and fifteen measured runs per layout. Initial scope is a fixed rectangular graph and an exterior open stair bay, not arbitrary floor elevations, arbitrary stair placement or an all-movement certificate.

### IX-34 — Streaming modular boundaries

Status: complete for bounded single-level modular seam diagnostics (2026-10-05). Depends on IX-07, IX-16 and IX-26.

Delivered tab: **Building seams**. Independently emitted 24×24 module shells have four portal keys derived solely from world/generation and global signed boundary coordinates. Each side reconstructs the same floor, width and headroom contract. A moving window supports at most nine loaded chunks, with pending and absent neighbors visibly unavailable. Actual loaded joins are walked in both directions. Pin a window, recenter it and compare shared records. Cancel retains the last complete result; JSON replays the window and its checks.

Verified: global keys from opposite sides; identical shared chunks after recentering; emission independence; missing-neighbor rejection by the actual walker; Python/JavaScript geometry/check parity; partial-load states, browser cancellation infrastructure and replay. Center coordinates are limited to ±100; radius is 0 or 1; at most nine chunk records are retained per report, with no persistent cache. Full-window tests use 2,400 walker substeps, below the 7,200 cap. These are simple modular shells, not a streamed multilevel town or application integration.

### IX-35 — Inverse law search

Status: complete for finite declared-family search (2026-10-05). Depends on IX-18, IX-19 and IX-27.

Delivered tab: **Find a law**. Mark up to 32 selected/rejected training addresses and 32 disjoint holdouts inside 0–4,095. Declare finite lists of strides, signed origins, stripe choices and residue exclusions. Enumerate in declared order, minimize training mismatches, count all equally best candidates explored and retain the first sixteen for inspection. Holdouts never influence ranking. Every returned candidate is rechecked with direct arithmetic and can open in Selection.

The family has at most 65,536 combinations; each run checks at most 4,096. Complete and partial results are distinct. Cancellation preserves the explored count and a replayable partial result. A no-match statement applies only to the fully explored declared family. Verified: independent JavaScript/Python arithmetic, tied candidates, unseen holdouts, budgets, cancellation/replay and browser marks. The reusable search API is JavaScript; no continuous optimizer, uniqueness theorem, XOR-mask search or unlimited inverse solver is claimed.

### IX-36 — Boundary and invariance laboratory

Status: complete for five curated finite oracle experiments (2026-10-05). Depends on IX-05, IX-12, IX-20 and IX-27.

Delivered tab: **Boundary lab**. Inspect safe-integer signed-subtraction corners, the zero-rank convention, semantic identity under all permutations of three roles, independently derived global seam keys, and doorway headrooms adjacent to the 1.7-unit walker height. Each scenario declares its oracle/domain and runs a deliberately incorrect control alongside the unchanged real engine. Export a witnessed counterexample with its entire replayable experiment.

A 1–64-case budget performs deterministic finite reduction. The first failure is called smallest in the stated order only when that whole listed domain was searched. Exact integer cases have zero tolerance; geometry endpoints use 1e-7. Verified: every scenario passes the genuine engine and detects its broken control; Python integers independently check the large subtraction; partial reduction carries no minimality claim. This is a JavaScript experiment kit, not arbitrary fuzzing, a general failure minimizer or a proof beyond its named domains.

### IX-37 — Typed law pipeline workbench

Status: complete for closed, typed finite-address pipelines (2026-10-05). Depends on IX-18, IX-21, IX-23 and IX-27.

Delivered tab: **Law pipelines**. Connect one finite square-shell address domain to recipe filters, union/intersection/difference/XOR nodes, optional identity-keyed cosmetics and output sinks. The visual dependency graph exposes each stage count and an address trace through every stage. Versioned indexin-pipeline documents and replayable reports keep all recipes and connections. A pinned run provides count comparisons.

Caps: twelve nodes, 256 addresses and 4,096 address-stage evaluations. Input types, axis, versions, missing dependencies and cycles are validated. Only a sink may consume decorated output; sinks cannot feed other nodes. Independent input-node reorder is canonical. Each successful edit reruns the full graph, including every downstream node; rejected runs retain the last report. Verified: direct finite-set oracle, reorder, cycles, incompatible axes/links, downstream changes, worker execution and browser inspection. JavaScript runtime only. The sink exports a finite trace; it does not invent a theorem, run arbitrary code or access network nodes.

### IX-38 — Portable cross-lab notebooks

Status: complete for self-contained bounded study notebooks (2026-10-05). Depends on IX-21, IX-27 and participating versioned formats.

Delivered tab: **Study notebooks**. Eight named chapters, sixteen items and a 2 MB total cap include notes, creator attribution and item provenance. Embed selection/composition recipes, building comparisons, sweep/sieve reports, blueprint checks, evidence cards, arithmetic studies, weaves and the new wave's reports. A SHA-256 manifest covers item contents; a separate document hash covers chapter structure and notes. Imports replay supported artifacts through their own verifiers; unsupported formats/versions remain preserved and visibly unavailable. Supported items reopen as editable studies in the matching lab.

A single atomic browser-storage replacement preserves the previous notebook if saving fails. Portable JSON includes every artifact rather than origin-dependent references. Verified: content/notes tampering, unknown versions, native evidence replay, storage failure, browser reload and cross-lab reopening. JavaScript/browser workflow; existing IX1, IXB1 and study meanings are unchanged. Hashes detect changes, not ownership, authentication or mathematical proof. Localhost and Netlify have separate browser storage; export/import moves the data without an account or cloud service.

### IX-39 — Guided law journeys and teaching exports

Status: complete for four parameterized finite teaching journeys (2026-10-05). Depends on IX-28–32, IX-27 and IX-38.

Delivered tab: **Law journeys**. Predict a two-stride intersection, compare an address stripe with a coordinate corridor, expose a misleading equivalence sample, and repair a doorway's headroom. Optional predictions are followed by answers recomputed from the actual arithmetic/evidence/blueprint engines. Change parameters, reveal explanations, inspect the source, follow contextual IX links or open the embedded study for editing. JSON saves every step and its domains; notebook transfer and a print-all-lessons view preserve evidence.

Verified: regenerated answers after origin/headroom changes, finite observation versus counterexample labels, recipe/domain replay, actual geometry repair, keyboard controls, color-independent labels, reduced-motion styling and desktop/mobile layouts. The four lessons are curated examples, not an automated assessment of a person's ability. No observation is promoted to a proof. Surface selection in the mapping lesson reuses address semantics, not a trained recreation of the creator's floating-depth artwork.

## Library expansion — IX-40–78

**120 delivered milestones · 0 planned milestones · 109 working labs.** IX-01–84 retain their documented domains; IX-85–120 add bounded engine companions. Further engine integration needs separately scoped work. IX numbers identify tools and experiments, not newly established mathematical laws. Existing labs keep their delivered scopes.

The October 6 survey reviewed sitoolz's law cards, recovered pytoolz-family modules, Schur Logic and Lars Logic sources, and related reference notes. The current sitoolz checkout reports revision `66aab4b519cc5ae834afe9174e2c7a3961f56728`; the deployed Indexin snapshot remains pinned to its earlier reviewed revision. File hashes, source availability and the reproduced Schur discrepancy are recorded in the planning survey. Some original pytoolz files are missing from the recovered annex even where a newer sitoolz engine exists. Lars accepted the located Schur Logic and Lars Logic copies as the references for this wave; other checkouts can be revisited later.

Source names below are portable repository-relative identifiers, not links to private files. Existing paired engines are reuse candidates, not newly verified imports. Historical check counts in their cards were not rerun for this survey. Preserve Lars Rocha's authorship and each module's acknowledgments of established mathematics and numerical methods.

**Delivered:** IX-40 source reconciliation and IX-41 Schur Studio. **Delivered next branch:** IX-55 Edge recurrence microscope. **Delivered:** IX-57 Edge period certificate workbench. **Delivered:** IX-56 Prefix determination explorer. **Delivered:** IX-58 Reachable edge-pattern navigator. **Next suggested branch:** IX-59 Driver parity and antipodal laboratory; IX-42–44 deliver assumptions, equation lineage and topology. **Next visual branch:** IX-69 Ruler mesh, followed by IX-70 Skylight and IX-71 Integer fluids. IX-76 brings the creator's floating-depth artwork into an explicit experimental studio. Dependency order takes precedence over numbering; these branches need not wait for all earlier numbers.

Every new lab should expose its governing rule, working IXs, source/version, supported domain, work limit and replayable result. Add it to the appropriate existing menu group when it works. Reuse IX-27/38/39 for evidence, notebooks and teaching rather than building another storage system. A portable verification result is required before marking any plan complete. The separate application working copy remains outside this work.

## Track A — Schur, constraints and explainable decisions

### IX-40 — Reconcile the recovered library sources

Status: complete for the selected source audit and bounded XOR core (2026-10-06). Depends on IX-01. Later engines still need their own import review.

Sources: sitoolz cards, annex inventory, `experiments/LOGIC_FIXES.md`, Schur Logic 0.1.0 and Lars Logic 0.3.0. Build an availability/provenance matrix: existing paired engine, Python-only source, missing original, or new experiment. Resolve the recovered solver's stale pivot rows before porting it: the six-variable example in the survey reports x1=1 although all eight satisfying assignments require x1=0. Phase-one pivot accounting also reports -1. Keep reference files unchanged; fixes belong in a reviewed Spindexin adapter or separately reviewed upstream revision.

Done when: selected source bytes and licenses are pinned, the discrepancy has independent regression coverage, flat/two-phase/probe results agree on exhaustive small systems, and the public source map distinguishes reproduced results from historical claims. Inspect duplicate-variable cancellation and noncontiguous block numbering as additional audit cases. Never regenerate expected answers from the implementation under test.

Delivered: `spindexin/constraints.py` and `js/constraints.cjs`, a new paired implementation of validated XOR rows, flat/two-phase reduction, explicit noncontiguous blocks, exact connected components and immutable prepared probes. Fourteen original source/metadata/notice files are pinned separately in `reference/recovered-logic`; the existing upstream snapshot and reference repositories are unchanged. `tools/audit-recovered-logic.py` verifies their hashes and can reproduce the historical defects. The public source audit is linked from this milestone and Roadmap.

Verified: 1,149 exhaustive-small/seeded systems in three block layouts against independent assignment enumeration, both values of every probe, 1,152 cross-language documents, four historical pivot examples, contradiction retention, duplicate cancellation, immutable snapshots, invalid inputs and 64-variable boundaries. The historical audit executed both recovered Schur and Lars cores. The limits are 64 variables, 256 input rows and 128 occurrences per row, with one reserved probe row. No general SAT/circuit/Sudoku adapter or acceleration claim is imported. IX-41 remains the visual studio; this foundation adds no new tab.

### IX-41 — Schur Studio: watch two-phase elimination

Status: complete for the bounded visual elimination studio (2026-10-06). Depends on IX-40 and IX-24.

Sources: `annex/lars_logic/lars.py`, `annex/schur_logic/schur.py`, paired `logic` engine. Show local blocks, cross-block equations, residual elimination and back-substitution as selectable steps. Trace each forced bit to its final reduced equation. Extend the XOR lab with an actual decomposition view and a flat-solver comparison.

Done when: small systems agree with exhaustive assignment enumeration in Python and JavaScript; variable reordering preserves solutions; contradictory and unconstrained cases are explicit. Use classical GF(2) terminology. Measure time and row operations before claiming a speed advantage; the recovered `speedup=1.0` field is not a benchmark.

Delivered tab: **Schur Studio**. Edit up to 12 variables and 24 XOR equations; assign explicit blocks or detect connected components without renumbering. Step through input, local pivots, cross-row substitution, residual elimination, back-substitution and final equations. Inspect each forced variable's final transformed row. Five presets include the historical pivot bug, a contradiction, interleaved blocks and an unconstrained system. Row-XOR counts compare the two-phase route with flat elimination; no timing or acceleration claim is made.

Delivered reusable APIs: `constraints.study` / `verify_study` in Python and `study` / `verifyStudy` / `parseStudy` in JavaScript. Snapshots use shared elimination primitives and their result is checked against the prepared solver. Portable `indexin-schur-study` v1 carries inputs, steps, work counts and both results. JSON replay rejects altered traces/results; IX-38 notebooks verify and reopen the study. Invalid edits retain the previous valid result. Row identities refer to transformed rows; original-equation contradiction lineage belongs to IX-43.

Verified: 155 studies with every snapshot independently replayed as the stated row XOR, both-language trace parity, independent assignment checks and variable-renumbering cases. Includes trace bounds, malformed inputs, modified replay records, notebook native verification and browser interaction at desktop/mobile widths. IX-40's broader solver limits and API meanings remain unchanged.

### IX-42 — Assumptions and probes workbench

Status: complete. Depends on IX-41.

Sources: Lars/Schur solver probe methods. Pin a variable to 0 or 1, inspect resulting implications, then undo the assumption without altering the baseline system. Compare a one-shot rebuild with reuse of a prepared elimination state. Distinguish a baseline forced value, an implication under assumptions, and a still-free value.

Delivered and checked: every small-system probe matches enumeration, repeated probes cannot contaminate one another, contradictory assumptions return a witness, and saved experiments include the assumptions and baseline equations. Cap variables, rows and probe batches before execution.

Delivered in a separate Assumptions & probes tab. Paired Python/JavaScript reports and independent assignment/provenance oracles cover every two-variable augmented-row subset and seeded larger systems. JSON replay rejects altered studies and retains the previous valid browser state. Original systems are capped at 12 variables and 24 rows; probe assumptions at eight. See the shared constraint-labs notes for exact scope.

### IX-43 — Contradiction witnesses and equation lineage

Status: complete. Depends on IX-41 and IX-27.

Sources: GF(2) elimination; new row-lineage adapter. Track which original equations XOR together to yield each reduced row. On failure, show an independently replayable combination producing 0=1; let readers toggle the implicated equations and see the conflict disappear or persist.

Delivered and checked: a verifier recomputes the witness from original rows, rejects altered indices/RHS bits, and handles duplicate and empty equations. A witness is a contradictory subset, not necessarily the smallest such subset. Put an explicit memory limit on provenance bitsets.

Delivered in a separate Equation lineage tab. Paired Python/JavaScript reports and independent assignment/provenance oracles cover every two-variable augmented-row subset and seeded larger systems. JSON replay rejects altered studies and retains the previous valid browser state. Original systems are capped at 12 variables and 24 rows; probe assumptions at eight. See the shared constraint-labs notes for exact scope.

### IX-44 — Constraint topology and ordering microscope

Status: complete. Depends on IX-41.

Sources: paired `logic.components` and recovered `systems.detect_blocks`. Draw the variable/constraint graph, connected components and the permutation used to form blocks. Compare equivalent orderings by measured elimination work. Distinguish exact disconnected components from a heuristic block partition with cross-block rows.

Delivered and checked: graphs with interleaved variable indices map back correctly, isolated variables remain visible, solutions are unchanged by permutations, and counterexamples expose any invalid component shortcut. Benchmark fixtures include sparse, dense and connected systems; no universal acceleration claim.

Delivered in a separate Constraint topology tab. Paired Python/JavaScript reports and independent assignment/provenance oracles cover every two-variable augmented-row subset and seeded larger systems. JSON replay rejects altered studies and retains the previous valid browser state. Original systems are capped at 12 variables and 24 rows; probe assumptions at eight. See the shared constraint-labs notes for exact scope.

### IX-45 — Circuit truth-table and encoding audit

Status: complete. Depends on IX-41 and IX-43.

Sources: Lars/Schur `systems.py` and `gates.py`, paired XOR/CNOT helpers. Provide a tiny circuit editor with an exhaustive truth-table oracle. Clearly label gates fully represented by affine GF(2) equations, gates requiring additional Boolean machinery, and incomplete source encodings. Compare any proposed AND/OR/Toffoli extension with every input combination before enabling it.

Delivered and checked: all supported circuits match truth tables, unsupported encodings fail explicitly, and a clause example demonstrates why XOR parity is not general OR-SAT. Classical circuit simulation does not establish quantum execution or a general SAT solver.

The Circuit audit tab supports up to four wires and eight gates. NOT/CNOT/SWAP have complete stage-indexed affine encodings checked for every input; AND/OR/Toffoli have exhaustive classical simulation and explicit affine-encoding refusal. Actual pinned recovered AND/OR helpers are audited as partial relations.

Paired reports, independent truth-table/matrix enumeration, strict JSON replay and bounded browser controls are checked. Source files are separately pinned and unmodified; existing formats are unchanged.

### IX-46 — Syndrome and error-pattern laboratory

Status: complete. Depends on IX-41 and IX-43.

Sources: `annex/lars_logic/ldpc.py`, `systems.from_ldpc`, GF(2) matrix builder. Display a small parity-check matrix, codeword, injected errors and syndrome. Enumerate compatible error patterns within a stated weight/domain limit and explain ambiguity when several patterns fit.

Delivered and checked: syndromes match independent bit arithmetic, every returned correction satisfies the checks, and minimality is claimed only after exhaustive bounded search. Separate erasure solving, error detection and error correction; do not promise production communication performance or security.

The Syndrome lab accepts at most 12 code bits and 12 check rows, enumerates at most 4,096 candidates, displays 32 compatible corrections and 16 erasure completions, and distinguishes weight-limited absence from impossibility. Exact minimum weights include all candidates, not just displayed ones.

Paired reports, independent truth-table/matrix enumeration, strict JSON replay and bounded browser controls are checked. Source files are separately pinned and unmodified; existing formats are unchanged.

### IX-47 — Puzzle reasoning: ranked hints versus forced moves

Status: complete. Depends on IX-40, IX-27 and IX-38.

Sources: paired `puzzles`, `spn`, and recovered `lars_siro` ranking code. Show candidate counts and rival rankings beside naked/hidden-single reasoning and imported solve paths. A reader can inspect why the top-ranked candidate differs from a move established by a checked deduction.

Delivered and checked: replay preserves the original puzzle and every placement's reason, invalid paths are rejected, and heuristic scores are never displayed as proof or calibrated confidence. Advanced Larsdoku reasoning remains an optional Python integration until its dependency and proof-step contracts are reviewed; the browser does not pretend to contain that full solver.

Delivered as Puzzle reasoning: editable classic grids, per-cell rival rankings, checked naked/hidden singles, step replay, branching and canonical SPN import with independent deduction validation. The default example explicitly separates a top-ranked 1 from the checked solution digit 4. Unsupported techniques, unknown notation lines and invalid path claims are rejected.

### IX-48 — Nullspace lantern forge

Status: complete. Depends on IX-40 and IX-24; use IX-43 for failure explanations when available.

Sources: paired `lanterns`: neighbourhoods, null bases, Gray-code minimization and seeded forge. Extend the existing XOR lamps with square, hex and ruler neighbourhoods, a visible solution family and a fewest-press comparison. Generate solvable boards from press vectors and show how the ruler selects each Gray-code basis change.

Delivered and checked: all shown solutions extinguish the board, tiny boards agree with exhaustive search, hints reduce a proven minimum by one when within the exact solver's nullity cap, and over-budget boards are labeled rather than given an unproven minimum.

Delivered as Nullspace lanterns: square/hex/ruler neighbourhoods, deterministic salt-0 forging, inspect/press/edit modes, visible null basis and Gray-code family, exact minima within a user-selectable nullity cap and proven hint descent. Boards are at most 6×6; 4,096 solutions can be enumerated and 32 displayed. Every displayed solution is checked; above-budget minima are withheld.

## Track B — Indexed variation, sampling and portable data

### IX-49 — Indexed randomness and channel audit

Status: complete. Depends on IX-40 and IX-22.

Sources: paired `indexrng`, `qrand`, `gamerng`, and their indexed card. Compare seed, address, channel and backend separately. Visualize how random-access results remain stable when a view is reordered, partitioned or revisited. Include the periodic edge backend as an intentional control.

Delivered and checked: fixed vectors agree across languages, signed/address limits and channel separation are documented, and navigation cannot consume hidden shared state. Deterministic visual variation and a public Legendre construction are not cryptographic-security guarantees.

Delivered as Indexed sources: five reviewed backends, raw-byte seed contract, explicit nonnegative address bounds, reordered/partitioned lookup checks and visible channel comparisons. The depth-8 edge backend intentionally reveals its period and ignored channel. Square-tree sampling is delivered separately in IX-50.

### IX-50 — Square-tree sampling microscope

Status: complete. Depends on IX-49 and IX-66.

Sources: recovered `square_frame.leaf_words`, paired `indexrng` square backend. Expose the actual input width, split tree, adjusted leaf floor, retained low bits and address-to-word mapping. Let readers compare the root and remainder branches and trace a displayed sample back to its source leaf.

Delivered and checked: tree metadata matches actual leaves rather than an estimated operating point, sample words match pinned vectors, and constant/repeating inputs remain available as controls. Imported material uses a bounded bytes/JSON format; do not deserialize arbitrary Python pickle uploads. Whitened appearance is not a proof of independence.

Delivered as Square sampling: paired bounded engines, exact record inspection, controls and strict data-only replay. See the published square-lab notes for supported domains and independent validation.

### IX-51 — Register jump and replay laboratory

Status: complete. Depends on IX-40 and IX-09.

Sources: paired `txs` linear bank, polynomial multiplication, synthesis and jump rules. Animate a short prefix, jump ahead, and compare the destination with ordinary stepping. Show the binary decomposition of a jump and the XOR operations it selects.

Delivered and checked: small jumps and composition of jumps match stepping, supported large jumps agree across languages, and nonlinear drivers cannot silently use the linear shortcut. Period-spectrum synthesis must disclose nonunique drivers and its finite search bound.

Delivered as Register jumps: exact truncated-polynomial binary jump factors, seed-included preview, stepping comparison through 1,024 ticks, and finite source-spectrum synthesis retaining every matching driver. Paired engines allow width 1–128 and exact 256-bit ticks. Nonlinear jump requests fail explicitly.

### IX-52 — Finite randomness evidence bench

Status: complete. Depends on IX-49, IX-27 and IX-19.

Sources: indexed backends and the recovered square-frame randomness-report interface; a new bounded diagnostic adapter, not an assumed available `randbattery` dependency. Plot bit balance, runs, serial correlations and short-word counts with explicit sample sizes and seed selection. Always include constant, alternating and periodic controls.

Delivered and checked: statistics match independent small arrays, shared samples reproduce results, and labels distinguish an observed anomaly, a chosen test threshold and an untested property. Passing this finite battery does not certify randomness, unpredictability or cryptographic suitability.

Delivered as Finite evidence: at most 4,096 exact sample bits, bit balance, runs, lag-1–4 serial correlation fractions and overlapping width-1–4 word counts, with same-size constant/alternating/periodic controls. Undefined correlation remains undefined; no randomness pass/fail certificate is assigned.

### IX-53 — Choices without modulo bias

Status: complete. Depends on IX-49.

Sources: `indexrng.roll`, `sample`, `shuffle`; the small `pytoolz-lite` adapter as a comparison reference. Visualize raw-word bins, rejection thresholds and accepted outcomes for awkward sizes. Add sampling without replacement and a step-by-step permutation trace.

Delivered and checked: exhaustive toy word spaces show balanced accepted bins, sample membership/uniqueness and shuffle validity are independently checked, and rejection retries have deterministic addresses and explicit limits. Explain that the rejection method removes mapping bias under uniform input words; it cannot make an arbitrary source uniform.

Delivered as Unbiased choices: exhaustive 2–8-bit toy bins, explicit rejection thresholds, addressed retry traces, bounded Fisher–Yates swaps and prefix samples. Retry exhaustion returns no choice rather than the source helpers' modulo fallback. Uniformity claims are conditional on uniform input words.

### IX-54 — Predictive edit compression studio

Status: complete. Depends on IX-40, IX-17 and IX-38.

Sources: paired `codec`, with provenance to Lars Rocha's lsrv. Show a small edit stream as sorted cells, zigzag deltas, runs and optional ground-relative residuals. Compare byte counts against the original representation, including tiny inputs where the header costs more than it saves.

Delivered and checked: bytes round-trip across languages, per-cell effect and significant edit order are preserved, malformed lengths and expansion bombs are rejected before allocation, and predictive decoding requires the matching generator/version. Use a separate versioned envelope; do not change IX1 or IXB1 meanings.

Delivered as Predictive edit codec: paired bounded engines, independent replay checks, visible controls and cancellable worker execution. See the published transport-lab notes for decoder limits, seed convention and measured quantities.

## Track C — Rule 30 edges, certificates and clocks

### IX-55 — Edge recurrence microscope

Status: complete. Depends on IX-40, IX-28 and IX-31.

Sources: the pinned recovered edgelaw module, Python/JavaScript rulerland cone helpers and edge/prefix law cards. Delivered as a separate Edge microscope tab with selectable cells, physical/edge-aligned views, backward input tracing, absolute-generation window controls and JSON inspection downloads.

Domain: single live seed, generations 0–8,191, windows of 1–64 rows, depth indices 0–31. The right-edge convention is x = g−j; each output uses the previous depths j, j−1 and j−2. Boundary zeros and the generation-zero seed are explicit. A 128-bit direct recurrence supplies bits and complete runs; per-depth source repeat tables are checked by return of the entire prefix state before lookup. Visible bits and measured runs are compared separately. Supplied repeat lengths are not labeled minimal.

Validation: an independent physical-coordinate Rule 30 truth-table simulation agrees through generation 256; recurrence/lookup and rung-run comparisons agree at every generation through 8,191. Tests cover window overlap, seed/exterior bits, witnesses, bounds, Python/JavaScript parity and pinned-source cone outputs. Browser coverage includes both coordinate views, keyboard inspection, backward tracing, window moves and failed-input retention. The 36-cell run at generation 8,191 is labeled as longer than the 32-depth view. This does not certify deeper tables, prove an infinite run law, or provide a center-column shortcut. Prefix determination and certificates are delivered separately in IX-56 and IX-57.

### IX-56 — Prefix determination explorer

Status: complete. Depends on IX-55 and IX-57.

Sources: verified edgecert prefix periods and exhaustive compatible-phase coverage. The source has no standalone `determined_depth` API; that earlier plan name is replaced by an explicit rule. Given k low generation bits, classify all phases congruent to g modulo 2^k in each certified period. Display the continuous determined edge prefix separately from later isolated fixed bits. Ambiguous bits retain both a zero and a one witness.

Delivered as the Prefix explorer tab, with selectable bit depths, keyboard inspection, compatible generation examples, exact-rung controls, high-rung presets, certificate-backed JSON download and strict replay. Inputs are 256-bit nonnegative generations, known low bits 0–256, certified maximum depths 0–31. Classification visits at most 21,609 phases; eight examples are displayed; JSON is capped at 150,000 characters. Missing deeper depths remain uncertified. The supplied run table remains unchanged at rung indices 0–48.

Validation: all 63 residue classes with 0–5 known bits agree with an independent physical-coordinate automaton over the 256-generation joint period for depths 0–16. Tests cover witnesses, isolated fixed bits, upper bounds, high rungs, strict replay/tampering and Python/JavaScript parity. The period-based result applies to all compatible nonnegative completions at the certified depths; it does not extend the run table or claim a center-column shortcut. Browser interaction and packaged-link checks accompany the release.

### IX-57 — Edge period certificate workbench

Status: complete. Depends on IX-55 and IX-27.

Sources: separately pinned, unmodified Python/JavaScript edgecert engines and their law card. Delivered in a Period certificates tab with spectrum selection, phase-by-phase recurrence inspection, wrap transitions, exact half-period witness pairs, JSON download/replay and deliberate tamper controls.

Domain: spectrum-only certificates, maximum depth 0–31, periods up to 4,096, at most 65,536 decoded table bits and 100,000 JSON characters. Construction estimates table/work bounds first; verification checks every entry and aggregate budget before decoding. No deeper source claims are silently truncated. The wrapper adds exact law/seed/rule headers and canonical encoding checks, then runs the unchanged source verifier and a separate full-transition replay. Verification does not call the generator.

Validation: an independent physical-coordinate automaton through generation 511 and enumerated candidate periods through 256 agree for depths 0–16; maximum supported depth and Python/JavaScript certificates/reports agree. Tampered recurrence/period witnesses, altered rule headers, malformed fields/padding, huge exponents, oversized JSON and aggregate-budget violations are rejected. Instrumented checks confirm preflight happens before decoding. Browser coverage exercises phase navigation, closure/witness inspection, tamper rejection, retained verified state and valid replay at desktop/mobile sizes. Certificates establish the stated edge-prefix recurrence and exact periods, not unrelated laws or a center-column shortcut. Prefix determination is delivered separately in IX-56 and pattern reach in IX-58; run interfaces remain separate plans.

### IX-58 — Reachable edge-pattern navigator

Status: complete. Depends on IX-57.

Sources: the already pinned edgecert period engine and `certify_reach`. A new wrapper verifies a spectrum certificate and exhaustively filters every joint-period residue by each requested bit. The Edge pattern reach tab provides editable depth-ordered target bits, a candidate-elimination trace, selectable generation matrix, witness jumps, exact large-generation seeking and strict portable replay. The original source verifier remains spectrum-only in IX-57; this separate format verifies reach claims itself.

Domain: 1–32 literal bits, depth 0 first; joint periods up to 4,096; at most 131,072 candidate-bit checks; 256-bit nonnegative start generations; preview windows of 1–32 rows. At most 16 witness generations and eight survivor samples per depth are shown. Study JSON is capped at 150,000 characters and carries every matching residue. A missing finite-window match remains distinct from full-period certified impossibility, and address-limit exhaustion remains distinct from mathematical unreachability.

Validation: all 2,046 patterns of lengths 1–10 agree with an independent physical-coordinate automaton through generation 255, including independently discovered joint periods, complete residues, first breaks, stage counts and preview matches. Source `certify_reach` agrees on witnesses and first failure depths. Tests cover maximum length, large exact seeking, end-of-domain cases, strict replay with generation disabled, tampering, bounds and Python/JavaScript parity. Browser controls, replay, retained state and desktop/mobile layouts are checked for the packaged page. No center-column search, deeper-bit prediction or rung-table extension is included.

### IX-59 — Driver parity and antipodal laboratory

Status: complete. Depends on IX-55 and IX-57.

Sources: parity-lab card, `edgecert`, `clocks` and `txs` drivers. Compare a supported driver's truth table, weight parity, first/second period halves and complement/identity checks. Let a user change the driver and watch which supported period-doubling conditions still apply.

Delivered and checked: all tiny driver tables and periods are enumerated independently, hypotheses appear beside each assertion, and arbitrary Boolean drivers are not assigned a formula outside its proven/verified class. Record counterexamples as finite evidence rather than hiding them in a failed animation.

Delivered as Driver parity: editable three-input Boolean masks, full-cycle closure at widths 1–8, exact driver/output periods and complement/identity half inspection. Independent tests enumerate all 128 drivers and all 16 four-bit seeds; claims stay within the checked coordinate domain.

### IX-60 — Center versus edge experiments

Status: complete. Depends on IX-55 and IX-52.

Sources: paired `fast30.center_bits` and edge lookup. Run the same finite seed for both columns, show the cellular-automaton light cone and compare sequences, computation cost and finite statistics. Make the seed-included indexing convention visible.

Delivered and checked: small runs match an independent uncompressed automaton, packed-word boundaries are covered, and worker cancellation/work caps function. State that center bits here come from bounded simulation; edge period formulas do not provide a center-column shortcut.

Delivered as Center versus edge: paired bounded engines, independent replay checks, visible controls and cancellable worker execution. See the published transport-lab notes for decoder limits, seed convention and measured quantities.

### IX-61 — Clock choir and generated schedules

Status: complete. Depends on IX-40, IX-09 and IX-31.

Sources: paired `clocks` and `txs`, including multi-tap generated weather schedules. Compose several integer-tick tracks for lamps and illustrative cloud/rain/wind channels. Solo a track, inspect its driver and phase, and compare the joint schedule with its constituent periods.

Delivered and checked: pause/seek/restart give the same tick values, clock recipes replay across languages, and large joint periods do not allocate full timelines. These are deterministic creative schedules, not predictions of real weather; audio is a later IX-77 adapter.

Delivered as Clock choir: up to four editable linear tracks, exact large-tick seeking, phase/tap inspection, complete-cycle period checks, solo and pause/restart. At most 64 ticks are displayed. The illustrative cloud/rain conjunction is labeled; these are not weather predictions.

## Track D — Primes, folds and square structure

### IX-62 — Prime certificate workshop

Status: complete. Depends on IX-40 and IX-27.

Sources: paired `primes` verifier and Python certificate constructors. Walk through a small Pocklington chain from its checked base case, showing factor-size and witness conditions. Separate candidate generation, probable-prime screening and certificate verification.

Delivered and checked: an independent small primality oracle agrees, corrupted factors/witnesses and incomplete chains are rejected, and imports have depth/size/work limits. Keep conventional theorem credit. Browser verification does not imply the full Python construction machinery has been ported.

Delivered as Prime certificates: paired bounded reports, independent finite oracles, selectable records and strict replay. See the published number-lab notes for exact bounds and conventional theorem credit.

### IX-63 — Prime rails, anchors and candidate gates

Status: complete. Depends on IX-40, IX-25 and IX-62.

Sources: paired `primerails` and `qnr2`, plus numtools' anchor/wrap descriptions. Visualize octave anchors, residue rails, twin/sexy-prime candidates and chain stopping conditions. Show the Euler-offset filter beside an independent primality result, including composite survivors.

Delivered and checked: bounded prime lists and rail membership agree with trial division/sieving, wrap boundaries are covered, and “passes the gate” never means “proved prime.” Include the QNR2 composite 9 and examples excluded by narrower optional gates.

Delivered as Prime rails: paired bounded reports, independent finite oracles, selectable records and strict replay. See the published number-lab notes for exact bounds and conventional theorem credit.

### IX-64 — Mersenne and exponent beacon atlas

Status: complete. Depends on IX-40, IX-23 and IX-25.

Sources: paired `octaves`, numtools/numtoolz Mersenne and exponent helpers. Relate `m XOR (m−1)`, ruler rank, powers of two and finite last-digit/digital-root cycles. Add a small Mersenne candidate panel with separate compositeness/certificate results.

Delivered and checked: exact BigInt results match hand-derived small cycles and Python vectors, exponent limits precede allocation, and an exponent pattern or prime exponent is not presented as sufficient for Mersenne primality. The atlas explains identities separately from empirical prime frequencies.

Delivered as Mersenne beacons: paired bounded reports, independent finite oracles, selectable records and strict replay. See the published number-lab notes for exact bounds and conventional theorem credit.

### IX-65 — XOR tables and the gap forge

Status: complete. Depends on IX-40, IX-25 and IX-63.

Sources: paired `forge`, numtoolz XOR-Cayley/prefix-XOR helpers and sixes-lattice notes. Connect an XOR table, selected residue lanes and a finite prime-gap view. Inspect a gap's endpoints, candidate bridge and most frequent gap for a chosen interval.

Delivered and checked: tables agree with independent bit arithmetic, gap endpoints are checked prime within the supported sieve, ties use an explicit rule, and moving an interval recomputes its local statistics. A local “jumping champion” is a bounded observation, not a universal assertion about prime gaps.

Delivered as Gap forge: paired bounded reports, independent finite oracles, selectable records and strict replay. See the published number-lab notes for exact bounds and conventional theorem credit.

### IX-66 — Reversible square-fold tree

Status: complete. Depends on IX-40 and IX-38.

Sources: paired `folds.walk/regrow`, recovered `square_frame`. Split an integer into root and remainder, inspect the tree shape and leaves, then rebuild it. Add nested square/XOR climb and peel as a separate mode with explicit mask and stopping rule.

Delivered and checked: arbitrary bounded byte strings including leading zeros round-trip with their length, every split satisfies n=r²+rem, and malformed trees/oversized integers are rejected. Keep a portable data-only format. Reversibility is not a claim of universal compression or encryption.

Delivered as Square-fold tree: paired bounded engines, exact record inspection, controls and strict data-only replay. See the published square-lab notes for supported domains and independent validation.

### IX-67 — Square-branch density microscope

Status: complete. Depends on IX-66 and IX-27.

Sources: `squaretheory` card and surviving square-split code. The original theory module is listed missing in the recovered annex; this task starts with a small independently derived reference, not a claimed imported implementation. Plot exact finite root/remainder residue counts against formulas with their divisibility and domain assumptions.

Delivered and checked: complete and partial square intervals are checked by enumeration, counterexamples reveal missing hypotheses, and the actual tree's widths/depths are used for any applicable bound. A documented operating-point estimate is not automatically a guarantee for observed leaves or full-word randomness.

Delivered as Square density: paired bounded engines, exact record inspection, controls and strict data-only replay. See the published square-lab notes for supported domains and independent validation.

### IX-68 — Joint square-bit census

Status: complete. Depends on IX-40, IX-30 and IX-27.

Sources: paired `ntpar`, recovered `ntpar_joint`, folds' dead-zone rules. Select square bits and XOR masks, compare single-bit frequencies with joint residue counts, and inspect carry-free/add/subtract cases. Show where multiplying marginal frequencies gives the wrong answer.

Delivered and checked: complete small residue cycles match direct squaring, masks containing the square's always-zero bit are covered, and large-integer samples agree across languages. Keep exact cycle results separate from partial-window estimates; higher joint correlations need their own evidence.

Delivered as Square-bit census: paired bounded engines, exact record inspection, controls and strict data-only replay. See the published square-lab notes for supported domains and independent validation.

## Track E — Spatial rules, light and integer dynamics

### IX-69 — Ruler mesh and seam microscope

Status: complete. Depends on IX-40, IX-23 and IX-36.

Sources: paired `meshz`, Gaussian ruler rank and its closure condition. Build a standalone terrain patch whose refinement follows vertex rank and snapped camera position. Display parent dependencies, shared-edge splits, triangle counts and deliberate T-junction failures when the closure condition is broken.

Delivered and checked: adjacent independent tiles agree on edge subdivision, signed coordinates and snapping boundaries pass, triangle area/edge incidence are checked, and invalid refinement settings produce a clear diagnostic. This is a reusable mesh lab, not a modification of the separate game's renderer.

Delivered as Ruler mesh: selectable diagrams, bounded paired engines, independent geometric/numerical checks and cancellable replay. Domains and approximation conventions are documented in the spatial-lab notes.

### IX-70 — Horizon and skylight studio

Status: complete. Depends on IX-40 and IX-11; IX-69 is an optional later mesh adapter.

Sources: paired `skylight`, with its existing spherical-harmonic/PRT acknowledgments. Place a cliff and a surface normal, inspect the sampled horizon, then compare order-1/order-2 sky lighting with a bounded numerical reference integral. Separate sun visibility from diffuse sky illumination.

Delivered and checked: flat/open-sky cases and controlled occluders match reference checks within stated tolerances, bearing/normal conventions agree across languages, and UI reports approximation error and bake cost. Sampled horizons and low-order lighting do not imply exact global illumination.

Delivered as Horizon & skylight: selectable diagrams, bounded paired engines, independent geometric/numerical checks and cancellable replay. Domains and approximation conventions are documented in the spatial-lab notes.

### IX-71 — Integer fluid conservation lab

Status: complete. Depends on IX-40, IX-13 and IX-38.

Sources: paired `fluidz`, Lars Rocha's flux-before-differencing integer formulation and the credited Burgers schemes. Step a periodic one-dimensional profile, compare the available flux schemes and viscosity, and inspect every site's incoming/outgoing integer flux. Show exact lattice mass beside gradient and continuum-reference plots.

Delivered and checked: mass telescopes exactly for supported periodic updates, tiny flux calculations match an independent oracle, Python/BigInt states agree, and stability parameters/work limits are enforced. Label rounding and discretization error; a finite lattice is not a proof of continuum blow-up or a full Navier–Stokes solver.

Delivered as Integer fluid: selectable diagrams, bounded paired engines, independent geometric/numerical checks and cancellable replay. Domains and approximation conventions are documented in the spatial-lab notes.

### IX-72 — Cascade and vorticity budget observatory

Status: complete. Depends on IX-71 and IX-13.

Sources: paired `cascade` shell model and 2-D flow, from pytoolzx `dyadicz`/`flow2z`. Show shell energy transfers, accumulated dissipation and a small periodic vorticity field. Put exact integer totals next to the floating Poisson stage and numerical-reference error.

Delivered and checked: energy-plus-dissipation and vorticity totals satisfy their documented discrete invariants, small fixtures agree across languages, and fixed resource budgets/cancellation work. Distinguish modeled finite shell arrivals from any claim about the physical continuum or real weather.

Delivered as Cascade & vorticity: selectable diagrams, bounded paired engines, independent geometric/numerical checks and cancellable replay. Domains and approximation conventions are documented in the spatial-lab notes.

### IX-73 — Irregular region and puzzle-plan builder

Status: complete. Depends on IX-40, IX-47 and IX-26.

Sources: paired `jigsaw`: connected region maps, puzzle solving and SPN region tags. Draw and validate nine connected nine-cell regions, then turn a solved bounded grid into an inspectable arrangement of labelled floor tiles or room zones. Show region, row and column constraints independently of any geometry adapter.

Delivered and checked: cell coverage, sizes and connectivity are checked, puzzle search reports uniqueness/unknown distinctly when its node budget expires, and region notation round-trips. Valid Sudoku regions do not imply walkable architecture; any room adapter must separately pass geometry checks.

Delivered as Irregular region plans: bounded interactive records, portable JSON and explicit limits. Source copies remain unchanged; no application working copy was edited.

### IX-74 — Involution and reversible identity studio

Status: complete. Depends on IX-40, IX-05 and IX-66.

Sources: paired `machines`: local bit involutions, `machine/unmachine`, `object_id/decode_id` and leak profiles. Trace n=T(i²), apply T again, and recover the rank. Compare local transforms with fixed-width transforms at their stated horizon; show an optional identity mapping without replacing existing IXF1 keys.

Delivered and checked: bounded round trips and collision checks match exact arithmetic, finite-width failures are visible, and serialization preserves large integers. A successful decode under a seed is not authentication or proof of that seed's origin; “foreign seed” rejection needs adversarial testing before any stronger claim.

Delivered as Reversible identities: bounded interactive records, portable JSON and explicit limits. Source copies remain unchanged; no application working copy was edited.

### IX-75 — Dynamic shore and certificate relief studies

Status: complete. Depends on IX-71 and IX-57; prime-gap view also depends on IX-65.

Sources: paired `shores`: Burgers shore, forge bridges and certificate wall. Reuse each mathematical height adapter in a small standalone cross-section/height-map viewer with a clickable explanation. Scrub the fluid's finite step schedule, inspect a gap-derived bridge, or reveal a certificate break in the wall.

Delivered and checked: each displayed height replays from its domain record, out-of-range sieve/depth/time inputs fail clearly, and drawing does not silently add collision or walkability claims. The schedule is an illustrative mapping of model steps to an hour, not an astronomical tide simulation. No application-world edits.

Delivered as Dynamic relief: bounded interactive records, portable JSON and explicit limits. Source copies remain unchanged; no application working copy was edited.

## Track F — Creative experiments and reusable research paths

### IX-76 — Floating-depth creative pattern studio

Status: complete experimental. Depends on IX-32, IX-23 and IX-38; IX-49 may supply stable variation.

Sources: Lars Rocha's supplied Superintelligence logo/graphic and his proposed relationship to the showcased laws. Build a new experimental pattern editor with repeated motifs, rank-based scale/spacing, layer offsets and optional motion parallax. Retain creator attribution and compare each generated version with the original source image.

Delivered and checked: parameters replay the same generated pattern, static/reduced-motion and accessible controls work, and comparison notes distinguish measured image properties from viewers' perceived depth. The law-based floating effects should be recreatable with suitable source material and training; that expectation has not yet been tested. This milestone creates a reproducible study tool, not a claim that recreation or training has succeeded. Any later training phase needs its own dataset, method and outcome record.

Delivered as Floating-depth studio: bounded interactive records, portable JSON and explicit limits. Source copies remain unchanged; no application working copy was edited.

### IX-77 — Law sonification and rhythm canvas

Status: complete experimental. Depends on IX-61 and IX-38.

Sources: integer clocks, ruler ranks and register schedules; the audio adapter is new work. Map selected tick events to short tones, pitches and visual pulses, with a visible explanation of each mapping. Save the event recipe and render a bounded score/timeline.

Delivered and checked: exported event sequences are deterministic, pause/seek preserves tick alignment, audio starts only after a user's action, and mute, volume and visual-only modes are available. Wall-clock playback can vary with audio scheduling; distinguish an exact event sequence from sample-perfect playback across devices.

Delivered as experimental Rhythm canvas: an exact portable event score, native tick controls, optional user-enabled audio, mute, volume and solo. Pause/seek/restart retain tick identity. Audio playback is explicitly device-dependent; no autoplay or sample-perfect claim.

### IX-78 — Cross-library research expeditions

Status: complete. Depends on IX-38, IX-39 and at least three completed new labs, initially IX-41, IX-55 and IX-69.

Sources: the completed adapters in this wave and their recorded source manifests. Extend existing notebooks/journeys with a few connected investigations: a ruler from clock to mesh, an XOR equation from constraint to lamp, and a square split from reversible data to sampling. Each chapter states the relationship being tested and carries its own inputs, limits and verification result.

Delivered and checked: a portable expedition reopens all included studies with matching engine versions, missing adapters are reported honestly, and an altered chapter fails replay without discarding the rest. Use existing notebook storage and schemas through explicit versioning. A shared motif between libraries is an exploration path, not evidence that their different guarantees are interchangeable.

Delivered as Research expeditions: bounded interactive records, portable JSON and explicit limits. Source copies remain unchanged; no application working copy was edited.

## Mirror contributions — IX-79–84

Lars Rocha's mirror-as-generator exploration is an additive branch. Existing application models and identities remain unchanged. The branch separates rank addressing, address-order seams, spatial adjacency and orbit behavior. The supplied mirror card, checker and figures have a separate read-only reference snapshot and hash manifest. New working pages appear under Patterns & time.

### IX-79 — Reversible rung coordinates

Status: complete. Depends on IX-23. Delivered as a bounded experimental study.

Sources: Lars Rocha's supplied 49-entry edge ladder, sitoolz rank card and the existing Spindexin rung study. Formalizes the already delivered rung/slot decomposition, exact reconstruction, quotient/residue level folding, ordinal mirrors and square-coordinate XOR folds as a named milestone. This is not a replacement for signed world identity.

Delivered: separate Rung folds page and paired Python/JavaScript arithmetic for nonnegative generations below 2^256. Unknown edge values above rank 48 stay unknown; valid addressing does not prove the table. Round trips, legacy-rank agreement, square-shell compatibility, twin boundary/rejection cases and a finite recurrence check through generation 8,191 pass.

Compatibility: older rank APIs, world heights, recipes and immutable upstream files retain their behavior. The page remains an experiment rather than an automatic world migration. IX-55 now provides the separate bounded recurrence microscope.

### IX-80 — Mirror Beat and seam coincidence

Status: complete. Depends on IX-79.

Sources: sitoolz cards/mirrors.md, its checker and three figures; Lars Rocha's interpretation of misaligned mirrors as a pattern generator. The public Mirror Beat page states boundary b as the pair (b−1,b) and explains line, diagonal and shared seam sets.

Delivered: paired bounded seam reports, exact counts for arbitrary windows of 2–65,536 slots and widths 1–16, indexed shared-boundary formulas, a live three-trace view, shared-boundary selection and before/after slot gaps with planar-distance comparison. Dense line traces use labeled display bins; inspection remains exact. The source snapshot is unchanged, while a public review explains count endpoints, width pairs and coordinate-vs-slot composition.

Validation: direct transform oracles, incomplete-square windows, exact endpoint inclusion, width-pair behavior, planar distance invariance, Python/JavaScript parity and malformed-input rejection. The isolated browser check covers the packaged page and its desktop/mobile interactions. Cut locations are a selection tool, not a collision or connectivity certificate.

### IX-81 — Spatial neighbor lens

Status: complete. Depends on IX-79 and IX-80.

Sources: slot reflection, square-shell pairing and diagonal swap, extending the IX-80 source review. Delivered as a separate Neighbor lens page with selectable source identities in original/transformed diagrams, floor-plan and isometric projections, highlighted original neighbors, exact slot gaps and squared planar distances.

Delivered domain: 256 slots on a 16 × 16 nonnegative square, slot widths 0–8 and coordinate masks 0–15. Every one of the 480 original grid edges is checked for preserved adjacency. Keyboard arrows navigate each plane and Enter/Space selects A or B. A slot gap never alone labels physical geometry disconnected; no signed-world adapter or collision model is implied.

Validation: independent pair enumeration establishes the full edge set; the existing rung mapping confirms coordinates; transformed maps remain permutations; diagonal distance preservation, coordinate-block boundary separation, identical-point behavior and Python/JavaScript parity are checked. Desktop/mobile browser tests exercise source selection in both views, keyboard input, projections and invalid-input retention.

### IX-82 — Mirror orbit explorer

Status: complete. Depends on IX-79 and IX-80.

Sources: coordinate transform T(x,z)=(z XOR m,x), diagonal-plus-slot composition, and the reviewed twelve-step example starting at slot 1 with width 3. Delivered as a separate Mirror orbits page with explicit operation order, intermediate-step inspection, plane/isometric views, manual/playback controls and versioned JSON download/replay.

Delivered domain: slots 0–65,535; slot widths 0–16; coordinate masks 0–255; budgets 1–4,096 steps. Nonzero coordinate masks have exact period four; zero masks distinguish fixed points from two-cycles. Slot compositions retain their longer periods. A capped trace reports an unresolved period, never a guess. Each step applies both operations; a four-step permutation does not automatically imply a global rigid rotation.

Validation: both orders, nonzero/zero-mask cases, first-return uniqueness, inverse traversal, the twelve-step slot orbit, partial traces, Python/JavaScript parity and altered intermediate witnesses are checked. JSON replay recomputes all results; malformed inputs and tampered reports leave the current browser study intact. The new indexin-mirror-orbit version 1 format does not change existing recipes or claim notebook integration.

### IX-83 — Indexed shared-seam landmark fields

Status: complete. Depends on IX-80 and IX-05.

Sources: direct boundary index b(t)=(2^ceil(w/2) t)^2 and stable feature identity. Delivered in a separate Landmark field page with direct index seeking, exact half-open-window counts, capped pagination, explicit root-plane/boundary-plane placement and identity-keyed device-local notes.

Domain: widths 1–32, positive indices whose boundary fits 2^53−1, exclusive stops through 2^53, library pages up to 256 and browser pages up to 64. Reframing never changes semantic identity. The same boundary retains its key across widths in the same mapping. Off-page notes are distinguished from law/mapping orphans, which reattach when their selection returns. Mapping the boundary itself puts landmarks on an axis; the root-plane mapping is explicitly different. No uniform-density claim is made.

Validation: independent seam enumeration, select/rank/count agreement, pagination, endpoint exclusion, empty windows, millionth-landmark seeking, arithmetic bounds, semantic key stability, invalid inputs and Python/JavaScript parity. Browser coverage includes notes, orphan/reattachment states and direct seeking. See the published landmark/crossing notes for formulas and scope.

### IX-84 — Protected mirror crossings

Status: complete. Depends on IX-81, IX-83, IX-06 and IX-20.

Sources: the existing passage and walker modules, IX-20 movement diagnosis and mirror-selected neighbor pairs. Delivered in a separate Mirror crossings page: raw mirrored platforms beside constructed bridges, selectable emitted geometry, floor-plan/isometric projections, both-direction route checks, trace playback and an inspection JSON download.

The chosen boundary selects source pair (b−1,b), whose mirrored interval is explicitly scaled into one 24 × 24 fixture. IX-06 subtracts clearance and appends support; the renderer and walker use the same pieces. Connector identity depends on width and boundary, not the query window. Protected named routes pass out and back. Removing support, adding a one-unit step or lowering headroom to one unit produces visible failures. Excess step is correctly reported by the existing observer as an obstructing solid, with its known fixture height stated separately.

Validation: both directions of all controlled cases, multiple widths/indices, direct XOR mapping, stable keys, Python/JavaScript geometry and movement parity, and observer/authoritative agreement. Browser coverage checks projections, selected records, fault explanations and playback. This is an additive comparison adapter, not a streamed settlement, global metric claim or proof of all possible movement. JSON export is an inspection snapshot, not a new replay recipe.

## Engine showcase expansion — IX-85–120

Delivered 2026-10-16: all 36 milestones now have their own additive interactive page, following the request to give each one a working instrument. The 12 proposed upgrades are companion pages linked from the existing labs. Total: 120 delivered milestones and 109 interactive pages. IX numbers identify tools and experiments, not 120 mathematical theorems. The delivery scopes below supersede the broader survey examples; the original survey acceptance text is retained in plans/engine-expansion.json. Full-game traffic solids, full block-ring rendering and GPU timing remain integration work, not delivered inspector claims. ENGINE-EXPANSION-PLAN.md records these boundaries.

### IX-85 — Engine contract and parity bench

Status: complete. Dedicated page: engine-contract.html. Depends on: source review.

Sources: engine:crates/wlaw/examples/catalogue.rs; evidence: engine:crates/wlaw/tests/bits.rs.

Delivered: Exact words. Visible witnesses. UTF-16 name → FNV-1a → mix → indexed hash → unit bits. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: 299 preserved upstream rows are checked independently in JavaScript. The live word uses the pinned Rust kernel. A histogram is not a function fixture.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-86 — Car Law Garage

Status: complete. Dedicated page: car-garage.html. Depends on: IX-85.

Sources: engine:crates/wmodel/src/body.rs; evidence: engine:crates/wmodel/tests/body.rs.

Delivered: One address. A different silhouette. class = min(v₂(body + 1), 7); dimensions use named streams. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Addresses fold modulo 2⁴⁰. The rank ≥ 7 tail is 1/128. Independent coordinates reduce coupling; they do not prove statistical independence.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-87 — Ridge-to-roof experiment

Status: complete. Dedicated page: ridge-roof.html. Depends on: IX-85, IX-86.

Sources: engine:crates/wlaw/src/ridge.rs; evidence: engine:crates/wlaw/tests/ridge.rs.

Delivered: Let the mountain draw a roofline. roof = clearance + amplitude × ridge / max(ridge). Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Experimental profile overlay, not the current car generator. The lower bound is enforced on sampled roof heights; this does not certify a usable cabin or manufacture a new car mesh.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-88 — Paint and plate workshop

Status: complete. Dedicated page: car-plates.html. Depends on: IX-85, IX-86.

Sources: engine:crates/wmodel/src/body.rs; evidence: engine:crates/wmodel/tests/body.rs.

Delivered: Keep the body. Change its expression. body, paint and trim are separate recipe coordinates. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: The existing plate checksum is additive and can collide. Its checksum includes a version, but the text does not serialize a separate version field. Exported studies carry an explicit adapter version.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-89 — Word-to-range studio

Status: complete. Dedicated page: word-ranges.html. Depends on: IX-85.

Sources: engine:crates/wfield/src/wilds.rs; evidence: engine:crates/wfield/tests/wilds.rs.

Delivered: Type a word. Read its landscape. word → UTF-16 seed → family → ordered ridge parameters. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Three family choices: alpine, archipelago and rift. A 32-bit word hash can collide. No text normalization is applied. This bounded preview uses the pinned generator, not a promise about future versions.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-90 — Ridge composition bench

Status: complete. Dedicated page: ridge-composer.html. Depends on: IX-85, IX-89.

Sources: engine:crates/wfield/src/lib.rs; evidence: engine:crates/wfield/tests/field.rs.

Delivered: Compose peaks, passes and water. sample each ridge; the highest contribution wins. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: The preview samples a bounded field. Relief uses the source scale_height as an explicit post-sample adapter; water is a source world parameter; no continuous terrain outside the window is allocated.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-91 — Ruler fissure laboratory

Status: complete. Dedicated page: fissures.html. Depends on: IX-85.

Sources: engine:crates/wfield/src/rift.rs; evidence: engine:crates/wrange/tests/rift.rs.

Delivered: Find the deep cuts among shallow joints. cracks at multiples of 2ᵛ; deeper valuation gives deeper cuts. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: This study sets wander amplitude to zero so the ruler spacing is visible. Geometry depth and palette colour are separate. Sample step is a footprint: coarse fissure cells can differ from fine cells at the same origin. The source fissure valuation at zero is 99, not the hash kernel’s zero convention.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-92 — River order atlas

Status: complete. Dedicated page: river-orders.html. Depends on: IX-85.

Sources: engine:crates/wfield/src/river.rs; evidence: engine:crates/wfield/tests/river.rs.

Delivered: Follow the ruler upstream. a tributary joins at v₂(i + 1), capped below the trunk. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Network topology is deterministic; trigonometric coordinates are floating approximations. Order is capped at 8 and the source also has a segment budget. This is a network generator, not hydraulic flow.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-93 — Settlement address atlas

Status: complete. Dedicated page: settlements.html. Depends on: IX-85.

Sources: engine:crates/wbuild/src/city.rs; evidence: engine:crates/wbuild/tests/city.rs.

Delivered: Seek the next town without searching. next = ceil((g + 1) / 2ᵏ) × 2ᵏ − 1. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Direct seeking is compared with enumeration. The visible window is finite; “none here” does not mean no settlement exists. Global addresses stay fixed when the window moves.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-94 — City plot forge

Status: complete. Dedicated page: city-plots.html. Depends on: IX-85, IX-93.

Sources: engine:crates/wbuild/src/city.rs; evidence: engine:crates/wbuild/tests/city.rs.

Delivered: A skyline you can visit in any order. level = min(v₂(|cx|+1), v₂(|cz|+1)); plot area = square + remainder. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: This is the source city plot kernel: signed chunks, streets, lots and edge keys. Building heights use its measured ladder and caps; no ladder recurrence is inferred.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-95 — Traffic and junction lens

Status: complete. Dedicated page: traffic.html. Depends on: IX-85, IX-94.

Sources: engine:crates/wgame/src/traffic.rs; evidence: engine:crates/wgame/tests/traffic.rs.

Delivered: Watch a lane become a journey. source lane coordinates + local driver + address-selected junction turns. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: A finite replay on flat ground and the source city street grid. No building solids are loaded in this study. Lane placement and car headway are visible; this is not a guarantee of collision-free traffic.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-96 — Sieve road builder

Status: complete. Dedicated page: sieve-roads.html. Depends on: IX-85.

Sources: engine:crates/wtd/src/road.rs; evidence: engine:crates/wtd/tests/road.rs.

Delivered: Let an address decide the next bend. kept(seed + 7i) chooses the swing; kept(a+1) chooses its width. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: The source switchback has 12 segments including the keep run-in. This is wtd’s road, distinct from Silo Line’s straight playable road. Sampled points are checked against road.off.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-97 — Tower coverage on a line

Status: complete. Dedicated page: tower-coverage.html. Depends on: IX-85, IX-96.

Sources: engine:crates/wtd/src/lib.rs; evidence: engine:crates/wtd/tests/law.rs.

Delivered: Cover a line. Discover the gaps. coverage = [max(0, at − reach), min(path, at + reach)]. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Four source tower types are placed 40 metres apart, clipped to the path. Level 0 is base. This is the balance model’s interval abstraction, not projectile physics.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-98 — Wave economy laboratory

Status: complete. Dedicated page: wave-economy.html. Depends on: IX-85, IX-97.

Sources: engine:crates/wtd/src/lib.rs; evidence: engine:crates/wtd/tests/against_sitoolz.rs.

Delivered: Same opening. Three spending decisions. simulate the same waves with none, upgrade and build policies. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Actual wtd balance simulation. It differs from the playable game. Empty-opening selection has a known Python/JavaScript tie disagreement; the Rust branch and first-wins order are preserved here.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-99 — Spotter influence studio

Status: complete. Dedicated page: spotter.html. Depends on: IX-85, IX-97.

Sources: games:silo/src/lib.rs; evidence: games:silo/tests/line.rs.

Delivered: Your position becomes a tower’s advantage. distance ≤ 42: reach × 1.25, reload × 0.78. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Browser extraction of Silo Line constants and tower equations. A mark boosts reach and reload before the spotter factor. The mast has no firing interval. This page does not run the whole battle.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-100 — Distance-addressed race courses

Status: complete. Dedicated page: race-courses.html. Depends on: IX-85.

Sources: engine:crates/wcraft/src/course.rs; evidence: games:pod/tests/race.rs.

Delivered: Every metre has an address. distance s → sampled arc-length segment → point and heading. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Source course interpolation wraps distance around the lap. These gates show distance addresses; crossing a gate still requires gameplay checks and is not implied by the visualization.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-101 — Flight envelope explorer

Status: complete. Dedicated page: flight-envelope.html. Depends on: IX-85.

Sources: engine:crates/wcraft/src/air.rs; evidence: engine:crates/wcraft/tests/air.rs.

Delivered: Feel the boundary between climb and stall. speed > 13 enables climb; otherwise the source stall sink applies. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Tuned arcade dynamics at 120 Hz over a flat floor. This is not an aerodynamic prediction. The source world-relative ceiling, hard landing and drag remain in the replay.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-102 — Arena contact laboratory

Status: complete. Dedicated page: arena-contacts.html. Depends on: IX-85.

Sources: engine:crates/wcraft/src/arena.rs; evidence: engine:crates/wcraft/tests/arena.rs.

Delivered: Drop it. Bounce it. Find the goal mouth. gravity 20; floor bounce 0.55 above threshold; wall bounce 0.7. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Source ball step at 120 Hz for five seconds; strike mode tests the source contact at the chosen height, with boost optional. Goal escape depends on lateral and vertical bounds. Damping dissipates energy; no energy-conservation claim is made.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-103 — Trajectory and intercept bench

Status: complete. Dedicated page: trajectories.html. Depends on: IX-85.

Sources: engine:crates/wcraft/src/gun.rs; evidence: engine:crates/wcraft/tests/gun.rs.

Delivered: Aim beyond a straight line. discriminant = s⁴ − g(gd² + 2hs²), g = 24. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: The source aiming clamps and unreachable-target fallback are retained. The animated path uses source Euler steps and muzzle offset; the ideal aiming equation is not exact discrete impact. Ground is −30 for this demonstration.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-104 — Terrain material composer

Status: complete. Dedicated page: terrain-materials.html. Depends on: IX-85.

Sources: engine:crates/wfield/src/palette.rs; evidence: engine:crates/wfield/tests/palette.rs.

Delivered: One sample. Height, water, colour. height and colour channel → source palette swatch. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Colours come from the source Alpine palette. Land-only mean excludes wet samples; the full-window count remains visible. This is material selection, not a new GPU shader.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-105 — Sampling blind-spot microscope

Status: complete. Dedicated page: sampling-alias.html. Depends on: IX-85.

Sources: engine:crates/wfield/tests/wilds.rs; evidence: engine:crates/wfield/tests/wilds.rs.

Delivered: The sample can miss the whole law. hit iff (origin + i × step) mod period = 0. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: An exact lattice experiment. Odd stepping defeats this power-of-two alias but is not a universal anti-aliasing method. The page reports distinct residues and exact hit fractions.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-106 — Moving flight and bake timeline

Status: complete. Dedicated page: bake-timeline.html. Depends on: IX-85.

Sources: engine:crates/wgame/src/region.rs; evidence: engine:crates/wgame/tests/reuse.rs.

Delivered: Fly the window. Watch the work arrive. request → coarse field → fine field; newest request wins. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: A real bounded Rust field is baked in one worker. Camera motion changes the requested global window. Cancellation terminates the old worker; late output cannot replace the new window. This is an inspector scheduler, not a port of the whole game renderer.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-107 — Fleet detail and frame budget

Status: complete. Dedicated page: fleet-detail.html. Depends on: IX-85, IX-86.

Sources: engine:crates/wmodel/src/hd.rs; evidence: engine:crates/wmodel/tests/model.rs.

Delivered: Spend detail where you can see it. source distance → HD level → generated mesh vertices and indices. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Actual source mesh construction and CPU transforms run in the worker. Buffers are reused per car; total generated bytes and resident bytes differ. Canvas offers a silhouette or sampled source-mesh triangles. GPU upload is not performed; no inferred GPU time or 120 fps claim is displayed.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-108 — Fixed-step replay workbench

Status: complete. Dedicated page: replay.html. Depends on: IX-85, IX-101, IX-102.

Sources: engine:crates/wgame/src/clock.rs; evidence: engine:crates/wcraft/tests/against_wander.rs.

Delivered: Change the display rate. Keep the tick. clock.advance(frame time) → fixed 1/120 s steps. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Replays compare equal completed simulation ticks. The source clamps frame deltas to 50 ms and caps catch-up work. Fixed stepping alone is not a cross-platform floating-point lockstep guarantee.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-109 — Law Atlas engine connections

Status: complete. Dedicated page: engine-atlas.html. Depends on: IX-85.

Sources: engine:README.md; evidence: engine:crates/wlaw/tests/bits.rs.

Delivered: Trace an idea into a working instrument. law → source file → inspector → separate application. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: An evidence directory. Milestone numbers identify delivered tools, not a claim that every page is a newly discovered mathematical theorem.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-110 — Indexed fields and named-stream parity

Status: complete. Dedicated page: engine-indexed.html. Depends on: IX-85.

Sources: engine:crates/wlaw/src/hash.rs; evidence: engine:crates/wlaw/tests/bits.rs.

Delivered: Reorder your visits. Keep the answers. at(seed, x, z, stream) reads an address, not a mutable sequence. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Rust-compatible 32-bit operations and UTF-16 stream hashing. Visit-order equality is tested on a finite set; statistical independence is not established by separate names.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-111 — Selection-law Rust edge cases

Status: complete. Dedicated page: engine-selection.html. Depends on: IX-85.

Sources: engine:crates/wlaw/src/sieve.rs; evidence: engine:crates/wlaw/tests/sieve.rs.

Delivered: Read every keep and rejection. range ∩ stride ∩ stripe; XOR precedes residue rejection. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Bounded source sieve on [0,256). Stripe settings are fixed open, modulus 4 drops residue 1. Individual stride and XOR residue witnesses are shown separately.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-112 — Rung consumers and measured height tables

Status: complete. Dedicated page: engine-ranks.html. Depends on: IX-85.

Sources: engine:crates/wlaw/src/lib.rs; evidence: engine:crates/wlaw/tests/rulerland.rs.

Delivered: A car, a settlement, a measured height. g → v₂(g+1) → class / settlement / measured run. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: These are different interpretations of one coordinate. The measured ladder has a finite table and source cap; arithmetic rank identities do not prove its recurrence.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-113 — Ruler mesh and block LOD comparison

Status: complete. Dedicated page: engine-mesh.html. Depends on: IX-85.

Sources: engine:crates/wmesh/src/blocks.rs; evidence: engine:crates/wmesh/tests/seams.rs.

Delivered: Change detail. Inspect the common boundary. two global tiles read the same snapped camera and keep-grid law. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Two 32-cell source mesh tiles. Shared-edge vertex sets are compared. Block view shows the source sampling grid; this canvas is not the complete game mesher or its GPU shading.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-114 — Baked horizon and early-exit evidence

Status: complete. Dedicated page: engine-horizons.html. Depends on: IX-85.

Sources: engine:crates/wmesh/src/horizon.rs; evidence: engine:crates/wmesh/tests/horizon.rs.

Delivered: A gully sees a different sky. stop a bearing when (top − h₀)/distance ≤ best tangent. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: The source early-exit bake is compared with all 18 rings on an analytic bounded gully. Eight bearings are sampled; this is not global illumination. The bound is valid because the declared top is a true ceiling.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-115 — Walker and vehicle support diagnostics

Status: complete. Dedicated page: engine-support.html. Depends on: IX-85.

Sources: engine:crates/wbuild/src/walk.rs; evidence: engine:crates/wbuild/tests/walk.rs.

Delivered: Give the same step two different bodies. substep movement → obstacle overlap → support height. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Source walker kernel with adjustable dimensions, including a wider vehicle-style probe. This is a support diagnostic, not the full car suspension model. Passing this route is not universal reachability.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-116 — Streaming identities and tile arrival

Status: complete. Dedicated page: engine-streaming.html. Depends on: IX-85, IX-106.

Sources: engine:crates/wgame/src/region.rs; evidence: engine:crates/wgame/tests/coarse.rs.

Delivered: Move the window. Keep the ground. global coordinates + recipe revision identify a field sample. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Coarse/fine arrivals are resampled by the same source field. Shared samples are compared directly; cache speedups are not assumed. This additive adapter does not change existing chunk identities.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-117 — Valley song and synthesized voices

Status: complete. Dedicated page: engine-song.html. Depends on: IX-85.

Sources: engine:crates/wlaw/src/song.rs; evidence: engine:crates/wsound/tests/synth.rs.

Delivered: Hear the columns you cross. rank ≥ 2 → measured run → scale degree; rank ≥ 6 rings. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Source f32 note events use a browser oscillator envelope; the vehicle comparison plays one second of source 48 kHz synthesis. The source low-pass is first order. Audio starts only after you enable it. Stop always silences playback. The finite window and repeated notes do not establish endless nonrepetition.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-118 — Cross-engine evidence and fixture provenance

Status: complete. Dedicated page: engine-evidence.html. Depends on: IX-85.

Sources: engine:crates/wlaw/examples/catalogue.rs; evidence: engine:crates/wtd/tests/against_sitoolz.rs.

Delivered: Make the claim inspectable. input + pinned source + actual output + digest. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: The preserved fixture and compiled-binary hashes are verified before use. A corrupted witness must fail. Integrity detects change, not mathematical correctness; source tests and independent checks are different evidence.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-119 — Browser generation and memory budgets

Status: complete. Dedicated page: engine-budgets.html. Depends on: IX-85, IX-106.

Sources: engine:crates/wgame/src/worker.rs; evidence: engine:crates/wgame/tests/cost.rs.

Delivered: Measure the work before raising the limit. bounded request + real timer + output bytes + cancellation. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Benchmark the same field on main thread and worker, including cold startup and warm calls. Timings describe this browser and grid only. The worker has a 128 MiB linear-memory ceiling; JS and browser overhead are additional.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

### IX-120 — Portable engine study notebooks

Status: complete. Dedicated page: engine-notebooks.html. Depends on: IX-85, IX-86, IX-89, IX-96.

Sources: engine:crates/wmodel/src/body.rs; evidence: engine:crates/wmodel/tests/body.rs.

Delivered: Keep a car, range or road as a recipe. versioned inputs + pinned binary hash → replayed result. Controls, a visual trace, inspectable records, replay checks and versioned study export are available on this page.

Scope: Data-only schema, strict fields and size caps. Imports validate adapter and binary revision before replacing a study. Earlier notebook formats are unchanged; migration is explicit rather than automatic.

Validation: tests/engine-labs.cjs checks the compiled adapter and independent oracles; tools/check-engine-browser.cjs checks live edits, replay, tamper rejection, controls and mobile layout. Source tests are separate from browser checks.

## Delivery checklist for each completed task

- [ ] State the supported domain, invariants, and limitations.
- [ ] Keep Python/JavaScript behavior aligned; use hand-worked or independent-oracle checks as well as twin fixtures.
- [ ] Include a small runnable example and human-readable failure messages.
- [ ] Record only measured performance claims, with parameters and environment.
- [ ] Prepare a versioned change list, source manifest, fixture results, and compatibility notes for Claude to pull.

Validation on 2026-10-05: 100 Python test methods, all standalone Node regression suites, all 11 pinned source hashes, all 29 packaged clean-URL navigation pages and the eight new browser flows pass. The new wave covers independent arithmetic/set oracles, all bounded stack layouts and controlled faults, Python/JavaScript building parity, worker replay and eight-lab browser flows with desktop/mobile layouts. Version 0.12.0 adds IX-32–39. See README for runnable commands, exact domains and compatibility notes. The separate application working copy is untouched; deployment remains manual.

Planning validation on 2026-10-06: IX-01–78 are unique and contiguous, with 39 complete and 39 planned; all new plans contain sources, dependencies and acceptance criteria. The isolated browser check passes all 29 packaged clean-URL pages, 78 Roadmap entries, delivered/planned filters, planned milestone deep links and desktop/mobile navigation. Packaging validates 135 assets and 1,563 local HTML/Markdown references. One recovered Schur example was executed against independent enumeration and its discrepancy recorded in the survey. No full upstream engine suite was rerun for this planning-only update; the earlier release checks above remain dated historical results.

IX-40 delivery validation (2026-10-06): all 106 Python test methods pass, including six new constraint tests; the standalone constraint JavaScript regressions, cross-language batches and existing studios regression pass. All 14 newly pinned reference hashes and 11 existing Indexin/Foundry hashes verify. The packaged-site browser check passes all 29 navigation pages, 78 roadmap cards, 40 delivered/38 planned filters and desktop/mobile layouts. Packaging checks 139 assets and 1,571 local references. The source audit records both historical solvers and the corrected output. No new milestone is inferred from the other unimported engines.

IX-41 delivery validation (2026-10-06): all 110 Python test methods pass. The Schur and existing next-lab JavaScript regressions pass, including real worker execution and native notebook verification; IX-40 regressions remain passing. All 25 pinned reference hashes verify. The isolated browser check covers all 30 packaged pages, 41 delivered/37 planned Roadmap filters, Schur presets and final-equation inspection, failed-input retention, tampered import rejection and a notebook round trip. Desktop/mobile screenshots were reviewed. The refreshed bundle has 142 assets and 1,650 local HTML/Markdown references checked. Nothing was uploaded automatically.

IX-79–80 delivery validation (2026-10-06): IX-79 names the previously tested rung study without changing its arithmetic. Four new mirror test methods pass, including direct transform oracles, arbitrary-window and endpoint cases, planar-distance checks, and Python/JavaScript report/rejection parity. All 27 checks in the preserved source checker pass; all five imported source hashes and byte-identical rung/mirror browser modules verify. The isolated browser regression passes all 32 packaged navigation pages, all 84 roadmap cards (43 delivered/41 planned), existing rung and Schur interactions, and the new Mirror Beat desktop/mobile flow. Shared-boundary selection, dense display bins, empty shared sets, invalid-input retention and exact endpoints pass. Desktop/mobile screenshots were reviewed. Packaging verifies 156 assets and 1,750 local HTML/Markdown references. This is focused validation for an additive branch, not a new full-suite run. Version 0.15.0 is prepared for manual deployment; nothing was uploaded automatically.

IX-81–82 delivery validation (2026-10-06): nine focused Python mirror tests pass (five new neighbor/orbit methods and four existing seam methods), including independent grid-edge enumeration and cross-language batches. The standalone Node suite passes exact/partial replay, long-orbit replay, tampered intermediate witnesses, strict input fields and JSON size limits. The isolated browser regression passes all 34 pages and all 84 roadmap states (45 delivered/39 planned), plus transformed-plane selection, keyboard navigation, matching-scale pair focus, both projections, step/play controls, fixed/four/twelve-step presets, unresolved traces, failed-input retention and JSON replay/rejection. Desktop/mobile screenshots were reviewed. All five imported mirror source hashes and the three browser engine copies verify. Version 0.16.0 packages 163 assets with 1,845 local HTML/Markdown references checked. Earlier whole-project tests remain historical; this run validates the additive mirror branch and shared navigation. The separate source working copy is untouched and deployment remains manual.

IX-83–84 delivery validation (2026-10-06): 21 focused Python test methods pass (five landmark/crossing, nine mirror and seven passage tests). The new Node landmark/crossing suite, existing mirror replay suite and IX-20 movement suite pass, including both-direction controlled faults and authoritative observer agreement. The packaged-site browser regression passes all 36 pages, 84 roadmap cards (47 delivered/37 planned), exact seeking, endpoint/empty/paged windows, keyboard picking, saved-note reload, off-page/orphan reattachment, cross-lab transfer, projections, playback and failed-input retention. Desktop/mobile screenshots were reviewed. All 16 pinned Indexin/Foundry and mirror reference hashes verify, as do all 60 synchronized browser modules/notices. Version 0.17.0 packages 171 assets and validates 1,948 local HTML/Markdown references. This is focused additive-branch validation; earlier full-suite results remain historical. No edits were made to the separate source working copy, and nothing was uploaded automatically.

IX-55 delivery validation (2026-10-06): four focused Python test methods pass, including an independent physical-coordinate Rule 30 simulation through generation 256, all 8,192 bounded edge generations, exact recurrence witnesses, run-table comparisons, overlapping windows, rejected domains, pinned-source samples and Python/JavaScript parity. All 32 adapted source repeat lengths match the pinned JavaScript cone helper. The isolated packaged-site browser regression passes all 37 pages and 84 Roadmap cards (48 delivered/36 planned), with edge/physical projections, keyboard navigation, backward tracing, absolute windows, seed boundaries, full-run truncation labels and failed-input retention. Desktop/mobile screenshots were reviewed. Five new source hashes and all 62 synchronized browser modules/notices verify. Version 0.18.0 packages 177 assets with 1,997 local HTML/Markdown references checked. Prior full-suite counts remain historical; this is focused new-lab and shared-browser validation. The original Netlify logo was downloaded and confirmed byte-identical to the local asset. The separate source working copy remains untouched; deployment is manual.

IX-57 delivery validation (2026-10-06): eight focused Python edge test methods pass (four microscope and four certificate tests), including independent physical-coordinate simulation, candidate-period enumeration, paired certificates/reports, upper bounds, malformed JSON and tampered recurrence/header/witness rejection. The standalone Node certificate suite passes replay and budget checks. Instrumented Python tests establish that oversized claims are rejected before source decoding and that verification does not invoke the generator. The isolated browser regression passes all 38 pages, 84 Roadmap cards (49 delivered/35 planned), certificate/phase selection, closure inspection, keyboard navigation, deliberate tampering, retained verified state, JSON import and oversized-exponent preflight. Desktop/mobile screenshots were reviewed. All three new source hashes and 65 synchronized modules/notices verify. Version 0.19.0 packages 184 assets and checks 2,051 local HTML/Markdown references. Prior full-project results remain historical; this is focused certificate/edge and shared-browser validation. Source repositories were read only and nothing was uploaded automatically.

IX-56 delivery validation (2026-10-06): twelve focused Python methods pass across prefix determination, edge certificates and the edge microscope. The four new methods cover independent physical-coordinate enumeration of all 63 small residue classes, constructive ambiguity witnesses, isolated fixed bits, high-rung unknown-table labels, bounds, tampering and paired Python/JavaScript reports. The standalone Node prefix suite passes. The isolated packaged-site Chrome check passes all 39 pages, 84 Roadmap cards (50 delivered/34 planned), bit selection, keyboard inspection, witness navigation, rung 96, invalid-input retention, altered-report rejection, valid JSON replay and desktop/mobile layout. Both new-page screenshots were reviewed. The three existing certificate-source hashes and all 66 synchronized modules/notices verify. Version 0.20.0 packages 189 assets and validates 2,109 local HTML/Markdown references. Earlier full-project results remain historical. No run-table values were added, no source working copies were changed and nothing was uploaded automatically.

IX-58 delivery validation (2026-10-06): sixteen focused Python test methods pass across edge reach, prefix determination, certificates and the microscope. The four new reach methods exhaust all 2,046 patterns of lengths 1–10 against an independent physical-coordinate oracle and source reach outputs; cover maximum pattern length, exact 256-bit seeking and domain exhaustion; and reject malformed/tampered studies with Python/JavaScript parity. Instrumented replay succeeds with both certificate generators disabled. The standalone Node reach suite passes. The isolated Chrome regression passes all 40 packaged pages, 84 Roadmap cards (51 delivered/33 planned), target edits, stage/row selection, keyboard navigation, finite-window absence versus full-period impossibility, witness jumps, large addresses, retained valid state, JSON replay and actual export Blob comparison. Desktop/mobile screenshots were reviewed, including overflow checks for the maximum pattern length. Three pinned certificate-source hashes and 67 synchronized modules/notices verify. Version 0.21.0 packages 194 assets and validates 2,168 local HTML/Markdown references. Earlier full-project checks remain historical; no source working copies or rung-table entries were changed, and nothing was uploaded automatically.


IX-42–46 delivery validation (2026-10-06): eight focused Python methods pass for probes, lineage, topology, circuit encodings and syndrome enumeration, including independent small-system truth oracles, original-equation witnesses, partial-source nonlinear audits and paired JSON reports. The isolated Chrome regression passes all 45 packaged pages at this checkpoint, with pin/remove, contradiction, topology keyboard, circuit selection/refusal, error/erasure edits, strict replay and retained-state checks. Desktop/mobile screenshots were reviewed. Version 0.23.0 packaged 208 assets and checked 2,452 local references. No source working copy was changed or site uploaded.

IX-51/59/61/77 delivery validation (2026-10-06): four new clock test methods pass alongside the eight constraint methods. Independent checks cover every tiny three-input driver/seed pair, exact jump composition, finite synthesis, track periods, event sequences, source hashes, language parity and tamper limits. Isolated browser checks pass all 49 pages with exact large ticks, parity selection, phase edits, solo, pause/seek/restart, opt-in audio, mute/volume and responsive layouts. Desktop/mobile screenshots were reviewed. Version 0.24.0 packaged 218 assets and checked 2,697 local references. These are focused checks, not a new whole-project test claim; deployment remains manual.


IX-47–48 delivery validation (2026-10-06): four puzzle test methods pass, with all 64 boards for three 2×3 neighbourhoods, independent single deductions and rival counts, source vectors, hint descent, strict SPN/JSON checks and twin results. All 16 focused methods across the current constraint/clock/puzzle additions pass. The isolated browser regression passes all 51 pages and 84 roadmap states (62 delivered/22 planned), checked-path branching, notation rejection, lantern modes, minima and over-budget labels. Desktop/mobile screenshots were reviewed. Version 0.25.0 packages 231 assets and checks 2,836 local references. Source working copies remain untouched; no deployment was uploaded.


IX-49/52/53 delivery validation (2026-10-06): four indexed-source test methods pass, with exact statistics on every binary array of lengths 4–9, exhaustive toy bins, independently replayed shuffle swaps, retry exhaustion, known source vectors, pinned hashes and five-backend cross-language reports at low/high addresses. All 20 focused methods for the current additions pass. The isolated browser regression passes all 54 pages and Roadmap states (65 delivered/19 planned), reordering/partition visits, channel controls, zero-variance/alternating controls, bin inspection, exhaustion, strict replay and mobile layouts. Screenshots were reviewed. Version 0.26.0 packages 244 assets and checks 3,047 local references. Source working copies remain unchanged and deployment remains manual.

IX-50/66/67/68 delivery validation (2026-10-06): four new square test methods pass, including exact byte trees, source-leaf sampling, independent finite density enumeration and joint-bit oracles. The isolated browser regression passes all 58 pages and Roadmap states (69 delivered/15 planned), decoder and cycle controls, source mapping, incomplete inputs, missing formula hypotheses, replay rejection and responsive layouts. Desktop/mobile screenshots were reviewed. Version 0.27.0 packages 253 assets and validates 3,321 local references. Source working copies remain untouched; deployment remains manual.

IX-62–65 delivery validation (2026-10-06): four new number test methods pass, covering checked certificate bases/links and corruption, independent bounded sieves, gate counterexamples, exact digit cycles, large rulers, original source formulas and twin reports. The isolated browser regression passes all 62 pages, Roadmap states (73 delivered/11 planned), proof inspection, rejected bases, gate controls, Mersenne controls, moving/empty gap intervals and mobile layouts. Screenshots were reviewed. Version 0.28.0 packages 263 assets and checks 3,590 local references. No source working copy or deployed site was changed.

IX-54/60 delivery validation (2026-10-06): three focused transport test methods pass, including full action ordering/effects, decoder preflight before source calls, predictor matching, independent truth-table cones through generation 512, packed-word boundaries, the pinned 4096-generation fixture and paired reports. All 64 browser pages pass, with cancellation, retained-state rejection, envelope decoding, cone selection and responsive layouts. Screenshots were reviewed. Version 0.29.0 packages 272 assets and checks 3,731 local references. Deployment remains manual; no source working copy was changed.

IX-69–72 validation (2026-10-06): four paired spatial test methods and all 68 deployed-page browser checks pass, including independent seam faults, sky quadrature controls, periodic integer fluxes, exact shell energy, discrete Poisson residuals, worker cancellation and responsive layouts. Version 0.30.0 packaged 288 assets and checked 3,992 local references.

IX-73–76 and IX-78 final-wave validation (2026-10-06): paired applied studies pass their four focused methods; all 184 Python test methods pass. All 25 existing standalone JavaScript programs pass, plus the new packaging-dependency regression (26 programs total). The browser regression passes all 73 deployed pages and all 84 delivered Roadmap cards, including region painting and budget exhaustion, canonical region SPN, fixed-width identity refusals, exact relief records, original-art comparison, reduced-motion handling, worker cancellation, notebook v2 partial recovery, missing adapters and browser storage. Desktop/mobile screenshots were inspected. The pinned upstream reference's 11 files and 118 byte-identical browser copies verify. Version 0.31.0 prepares 314 assets and verifies 4,482 local page, document and worker references; no upload has been performed. All IX-01–84 milestones are now delivered within the documented bounds. Experimental creative recreation remains an untested expectation, not a completed training result.


IX-85–120 delivery validation (2026-10-16): 36 dedicated engine companions join the 73 existing labs (109 total), with 120 Roadmap milestones delivered within the revised inspector scopes. The seven pinned source crates pass 193 tests. The WASM adapter matches all 299 preserved function fixtures in both Rust and independent JavaScript; 517 domain assertions plus strict parameter checks and voice PCM checks pass. Source hashes cover 126 files. Thirty detailed cars reuse one buffer; the expanded tested workload reaches 9.25 MiB of WASM memory, under the 128 MiB ceiling. The isolated packaged browser check passes all 36 new pages with live edits, motion controls, JSON replay, tamper rejection and mobile layouts, plus cancellation, audio and worker/main fallback. The 73 existing-page navigation check passes, including 120 delivered Roadmap links and both reviewed source archive hashes. Desktop/mobile screenshots were inspected. The full older application suites were not rerun; their prior counts remain historical. No source working copy was edited and nothing was uploaded to Netlify.
