Classroom build — resume point (2026-08-20)
[redacted: category] — 1 operator path. Nothing else was altered. The document is otherwise exactly as it is written in the repository, and the sha256 below is of the original, so what was ingested stays checkable.How to read this page
A laboratory built around the bacterial flagellar motor. It holds a deterministic reduced model of the motor, analysis of recorded single-motor events, and a cross-study parity programme. Alongside those sit the scientific gates the work has to clear, and independent audits of both the model and the repository around it. The framing throughout is hierarchical active inference.
It is for a reader with a scientific interest, and especially for one who has come to check whether a model fit has quietly become a claim about biology. The laboratory's central discipline is a labelling one: every visible layer carries exactly one class — recorded observation, structural reconstruction, reduced model, or physical teaching analogue — and those classes may not be blended. Behavioural observations of one species are held apart from structural work on another, so that nothing on the page can read as a single measured specimen.
Start with the Living Science Walkthrough, which sets out those classes and the truth contract they belong to. Then the scientific and mathematical contract, then the parity gates, which state what would have to hold before a parity claim could stand.
What it is not: a claim of biological parity. The walkthrough is explicit that the release does not turn a model fit into a biological identity claim, and full biological parity is recorded as false and printed as false. Passing this repository's software tests is necessary here and is not the same thing as agreement with a living motor.
A Plain and a Clear version of this page have not been written yet. What follows is the document itself.
Precise — the source document
This is the document. Rendered from the repository at the commit above, with nothing rewritten for the web. A gate re-renders it on every deploy and fails the build if a single byte differs.
Where this stands when the QA interrupt began. Plan of record:
[redacted: operator-path]\.claude\plans\peppy-doodling-dewdrop.md (approved by the operator 2026-08-20).
Done and verified (gate viewer/verify_classroom_assets.cjs = PASS, 15/15)
viewer/bio_view.cjs— static routes (/assets/classroom/,/assets/media/) with flat-segment sanitization + single-Range mp4 streaming (206 verified) +/classroom+/api/classroom.viewer/render_structure_svg.cjs— zero-dep mmCIF→SVG: 14 SVGs from the two deposited structures (6YSL 1,324 CA · 7E82 13,700 CA), deterministic (two runs byte-identical), source sha256 cross-checked againstpublic/walkthrough-evidence-manifest.v1.json.- Room background via ChatGPT in Chrome (operator-directed),
docs/classroom-assets/room-bg.webp, provenance indocs/classroom-assets/MANIFEST.json(truthClass ILLUSTRATION, prompt verbatim). viewer/extract_timescales.cjs→docs/classroom-assets/timescales.v1.json— 38 rows, values read programmatically, 3 rows hand-traced to source (all MATCH), epistemics vocabulary enforced.docs/classroom.htmlat/classroom— hero room + hotspots, specimen bench (10 entity parts + 2 composites + anatomy map + 2 videos), whiteboard (D-L-T with measured rates, B0–B8 ladder, statistical-vs-mechanistic finding), frequency wall (38 rows live), mind–body wall (BODY MEASURED / MIND NOT_ESTABLISHED / THIRD MIND OPERATOR-HYPOTHESIS + conjecture board).docs/models.html— §0 parity map installed (MISNAMED/NEUTERED/ABSENT per layer, blanket a=∅, UNSOURCED kernel-constants callout).docs/architecture.html— classroom link + UNSOURCED flag.viewer/verify_classroom_assets.cjs— the gate, PASS.
QA interrupt — SERVED and closed (2026-08-20)
Defects found by measurement and fixed, gate re-run PASS: portrait video capped (was 868px); anatomy label collisions zeroed (bbox test); 7E82 flipped hook-up, verified in SVG bytes (mean-y hook 116 < rod 247 < MS ring 386); drawer closes on backdrop; no horizontal overflow on any of the four pages. Committed 6bcb28c + e8fd781.
Second operator direction — SERVED (2026-08-20): navigation drawn ON the room
"make the navigation appear on the image so it looks drawn on the boards and is clickable." Done: always-visible labels rendered as part of each surface — marker ink on the whiteboard (title, underline, subtitle, a small hand-drawn D-L-T sketch), chalk on both dark side boards set in each board's perspective (rotateY ±30°), a brass plaque on the bench front. All are the click targets (whole-zone anchors, aria-labels); sizes in container-query units so they scale with the room; hover brightens. Top nav upgraded from bare links to visible buttons. Iterated against screenshots three times (tap-line off the board edge; sketch on the bench top; chalk overhang) — each fixed and re-shot.
Third operator direction — SERVED (2026-08-20): durable anchors for the room
"black boards need adjusting and this needs to be durable... anchors or some point that allows
better placement and pinning of overlays so it is easy to update."
Done, measured not eyeballed: viewer/measure_room_anchors.cjs measures the four surfaces FROM
THE IMAGE PIXELS (whiteboard by brightness; the black boards by neutral-darkness with a chroma
cut that excludes the brown door/wood; bench edge by the strongest horizontal gradient;
largest-contiguous-run banding so shadows cannot stretch a box) and freezes them in
docs/classroom-assets/room-anchors.v1.json, BOUND to the background by sha256. The page
positions every overlay from that file; ?debug=anchors draws the measured boxes for the eye.
TO ADJUST PLACEMENT: edit room-anchors.v1.json (anchors = measured geometry; tuning = hand
parameters: per-board rotateY, insets, plaque offset). TO CHANGE THE BACKGROUND: replace
room-bg.webp, update MANIFEST.json, re-run measure_room_anchors.cjs — the gate FAILS on a
sha mismatch until you do. Gate extended with the anchors contract; PASS.
To resume — the remaining plan
node viewer/verify_classroom_assets.cjsmust PASS (last run: PASS 15/15).- Operator walk-through of /classroom — the eye test is his (M8). His verdict may add tuning.
- Standing open items displayed in-room, awaiting HIS rulings (agents must not resolve): layer-naming ruling · kernel rewiring to sourced constants · Antani workbook acquisition (the estate's first candidate two-rung join — recommended FIRST door) · Johnson/Singh DOI conflict.
- "Stable and ready for more lab work" (his stated goal): the surfaces are committed and gate-covered; the science next-acts remain the acquisition doors above plus the two no-new-data acts already specified on /architecture: re-run the frozen competition to a NEW path (never bare — phase-b overwrite hazard), and the state-pooled ablation that would let occupancy influence a verdict for the first time.
Known black-screen episode, accounted
Mid-scroll screenshots without waits captured unpainted compositor frames on the 13,000-px page. Re-walked the identical path with 2 s waits: every frame painted; DOM complete throughout; no console errors. Not a page defect — but it is exactly why the QA pass below re-checks by measurement, not by trust.
sha256 044737150a93e069 — of the original file, so what was ingested stays checkable.