# Spindexin task list

Updated: 2026-10-06. 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.

## 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

**41 delivered milestones · 37 planned milestones · 30 working tabs.** IX-40 delivered source reconciliation and the bounded XOR core; IX-41 adds the visual Schur Studio. IX-42–78 remain planned. 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. **Next suggested branch:** IX-55 Edge recurrence microscope; IX-42 adds assumptions and probes to the studio. **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: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

### IX-48 — Nullspace lantern forge

Status: planned. 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.

Done when: 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.

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

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

### IX-52 — Finite randomness evidence bench

Status: planned. 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.

Done when: 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.

### IX-53 — Choices without modulo bias

Status: planned. 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.

Done when: 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.

### IX-54 — Predictive edit compression studio

Status: planned. 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.

Done when: 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.

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

### IX-55 — Edge recurrence microscope

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

Sources: paired `edgelaw`, `rulerland` cone helpers, and prefix-law card. Show the finite Rule 30 edge triangle with a click-through recurrence: each output bit points to its inputs. Compare direct stepping with the supported edge lookup over a stated generation/depth window.

Done when: an independent small cellular-automaton simulation matches the displayed edge, indexing/orientation are explicit, and moving the viewing window preserves absolute generations. Edge lookup claims must not be extrapolated to the Rule 30 center column or beyond verified table coverage.

### IX-56 — Prefix determination explorer

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

Sources: `edgecert.determined_depth`, prefix periods and pattern coverage. Enter a generation prefix and inspect which depths it determines under the engine's stated rule, with the remaining ambiguity visible. Compare generation-prefix length with edge-pattern length instead of treating them as interchangeable.

Done when: small enumerated domains agree with all determination labels, boundary depths are tested, and unresolved cases remain unresolved. Results carry their generation, depth and table domain so an exported study cannot suggest unbounded prediction.

### IX-57 — Edge period certificate workbench

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

Sources: paired `edgecert` certificate creation, recurrence replay and verification. Build a modest-depth certificate, inspect its period witnesses, modify a field and see independent verification fail. Explain how this domain-specific certificate differs from a hash and from IX-27's finite selection observations.

Done when: supported certificates agree across languages, tampered recurrence/period witnesses are rejected, and table/work estimates are checked before allocation. Preserve the engine's verified depth boundary; unsupported depths must not be silently truncated or labeled certified.

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

Status: planned. Depends on IX-57.

Sources: `edgecert.certify_reach` and the certificate-wall pattern adapter. Search for a short desired edge pattern, show its matching residues or the first certified break, and jump to a witness generation. This is an edge-specific inverse tool, extending IX-35's selection-law search into a new domain.

Done when: exhaustive small periods agree with reachable/unreachable results, bit order is displayed, and no-match within a finite search is distinct from a certified impossibility. Enforce pattern-length and witness-count caps.

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

Status: planned. 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.

Done when: 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.

### IX-60 — Center versus edge experiments

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

## Track D — Primes, folds and square structure

### IX-62 — Prime certificate workshop

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

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

Status: planned. 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.

Done when: 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.

### IX-70 — Horizon and skylight studio

Status: planned. 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.

Done when: 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.

### IX-71 — Integer fluid conservation lab

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

## Track F — Creative experiments and reusable research paths

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

Status: planned 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.

Done when: 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.

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

Status: planned 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.

Done when: 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.

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

Status: planned. 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.

Done when: 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.

## 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.
