The slide rule — mechanics

The fork in this look

The fork is two printed verbs, each acting on the instrument. Slide ↓ moves the rule: scrolling carries the band to the top, where it sticks as the 64 px nav. Type → leaves the rule and draws on the map: any key typed on sheet 01 lands in the composer, replacing the selected specimen question.

The mind holds the first screen's right third and the drawing, and proves itself unasked: answer 01 is generated once per snapshot publish, served as static HTML and seeded into each session's history, so "and Wednesday?" follows on. The standard route holds everything below the fold.

View transitions: asking carries the typed words (view-transition-name: question) into the new heading as the last answer folds; between pages the band (rule) stays put while the sheet changes.

The standard route

Asking the mind

The model picks only components and ids; the renderer derives the drawing: pins from organisation geocodes, band ticks from start times, the runner from the earliest session on the records' shared day.

Thinking changes the material: the last answer's pins fade to 12 percent, like rubbed-out pencil, and the runner hunts along the tick strip in stepped jumps until the first component closes. Then ink goes down: say in the narrow axis, rows 120 ms apart, hairlines drawn row to city.

Fallbacks: off_topic is one unnumbered line; not_in_snapshot sits beside the nearest real thing (not_published for passes); dropped ids drop rows, then empty components. Errors keep the prototype's codes, park the runner and keep the question on the line. Proxy down: Enter scrolls to the section the mockup's keyword table names, and says so.

The assistant in the chrome

One composer, two placements: the notes hairline on sheet 01 (mode: "mind"), and the stuck band's readout line, which / or ↑ Ask turns into the input, so nobody scrolls up (mode: "standard", page path and on-screen ids in the surface note).

The edge-parked card is a drawing's detail: a 360 px slip in the title block's 1 px frame under the band's right end, holding "Detail 03", say, six rows and the footnote; records already on the page are numbered in place instead. Open, it owns the runner; Escape hands it back to the reading line.

The state line is the band's readout: "Drawing 03", "Drawn 03, 6 rows, 4 pins", "Not drawn: busy", or "Still drawing" after 8 s without words.

Data, performance and accessibility

The fixture gives ids, start times, day summaries, phased tiers, venue status, portraits and placeholder flags; it lacks coordinates for its 64 organisations, rooms and short titles. WordPress adds a reviewed organisation table with coordinates; the sync derives short titles with an override, reads Whova rooms and bakes 80/160 px one-ink thumbnails replacing 6.9 MB of originals. Real transmission geometry replaces the approximate drawing; the Grid readout reads ERCOT's published data or goes.

Motion: the ink draws once per visit (2.4 s); an answer gets at most 1.3 s after its first component; only the caret, countdown and slide arrow loop. Reduced motion and the Motion switch show final frames (the switch now pauses mid-stroke). Per-scroll row measuring becomes an IntersectionObserver.

Keyboard: /, type-to-ask, Escape, real links, aria-expanded headings. Screen readers: the readouts drop aria-live (coordinates would chatter), a status region announces "Drawn 03: 6 speakers, sample data", and pins stay hidden; rows carry their numbers. Below 900 px, without hairlines, each answer prints its own map crop.

Build plan

Carries over: server.py (SSE events, structured output, cached prefix, sanitizer, scanner, sessions, budget, mode, self-test), the fixture and its builder, the catalogue, and the renderer spine of mind.html and standard.html (dispatch, final-answer reconcile, stream reader, offline demo, merge map); from the concept: projection, hairline routing, runner, stuck band, answer numbering.

New: the contract pieces the prototype lacks (speaker_card, session_card, agenda_day, faq, sources, coverage), the drawings and runner derivation, band composer, detail slip, page surface notes, sheet pages, specimen generator, geocodes, thumbnails, real geometry. Three to four weeks for one front-end engineer beyond the shared engine.

Risks