Work the lever frame at Ashwell Junction. The locking table lets only safe combinations through; the driver of each steam train needs real braking distance to stop at a signal at danger. Virtual only: no collisions are shown.
A train at line speed passes the distant at caution and brakes at the service rate to stop before the home signal at danger. Each row runs the driver model.
The science
Interlocking as a finite-state machine. The ten levers form a state s ∈ {0,1}10. A move is allowed only if the locking table permits it: s′ = transition(s, event). Rules: a signal can be cleared only when its points are locked by the facing-point lock (FPL) and the platform is free; two signals that would send trains against each other into the same platform cannot be off together; points cannot move while their FPL is pulled, while a signal over them is off, or while a train is on them (detector locking); a replaced signal keeps its points locked while a train is still approaching (approach locking). The page explores all reachable states against all occupancy patterns and checks the safety invariants (see the checks below).
Braking distance. A train at speed v decelerating uniformly at a needs d = v² / (2a). A steam passenger train brakes at roughly 0.5 m/s², so 15 m/s (54 km/h) needs 225 m and 22 m/s needs 484 m. The distant signal repeats the home signal’s state at least that far before it; if it is nearer the driver cannot stop, passes the home at danger and uses the overlap beyond it (protection stops the train there; nothing is shown beyond that).
Block signalling and headway. A following train must not enter a block until the previous train has cleared it, so the minimum headway between trains is about h = d / v with d the block length plus braking distance. Shorter blocks and faster brakes pack more trains per hour.
Simplifications. One junction with two platforms, uniform braking, no gradients, no adhesion, drivers obey signals, a double-track line is drawn as one for clarity (opposing trains are kept apart by the locking), numbers are illustrative. This is a teaching toy, not a signalling design tool. Models built with Blender, scene by Three.js.