SYSTEM

Rail axon

Reading progress as one axon down the rail, a node per section.

Motion

The rail beside this page is the engine. Scroll, or jump between sections, and watch the axon fill and each node fire as its section turns current.

The rail shows from 1024px wide. On a narrower screen there is no rail.

Anatomy

Axon one dot wide down the rail’s node column, on one canvas at the 2px dot
Ahead and behind --rail-tissue ahead of the reader, --chip-fg behind; solid in both, never dithered
Nodes one per section, 2.5 dots plus 0.5 a minute of reading, up to 5 minutes
Front reaches a section’s node exactly as it turns current, following the scroll on a 90ms exponential
Current its node fires (a 280ms flare) and becomes a --state cell that breathes at ~15fps for as long as the page is open
The map rows spaced in proportion to their sections’ heights on the page, at most 60% of the bar and three rows a section
Reduced motion the front lands at once, nothing fires or breathes, and the current node is a still --state cell

From src/lib/exposure/rail-axon.ts and the guide’s Motion §6.

Which section is current

Reading line a section turns current when its heading passes a line 160px down the screen
The last screen over the last screen of scrolling the line slides down to 48px above the bottom, so a short last section still lights
Measured from the page headings are measured with their box on the page, never offsetTop, which counted from the reading veil and lit the wrong row (fixed Oct 2026)

Decisions

  • The writing index’s grammar

    Chosen because the rail then adds no new idea. A straight rule with section ticks and tissue growing down the field were studied in the same round.

  • Replaced the progress grain

    A tone fill rising behind a centred TOC, its edge shimmering with the retired Ambience wave. It read as a gauge, and rose with the page rather than the sections.

  • Mapped by height

    Gaps were sized by words first, but sections often have near-equal word counts and the map came out even; height is what the reader feels.

  • The current node breathes

    With no fill behind the TOC it is what keeps the rail alive at rest (Oct 2026).