The panels

Each card opens a live board. Press the signal a train starts from, then press the exit; the interlocking picks the points, proves every section, locks the route and clears the signal.

What every panel gives you

The same interlocking engine works all of them. Only the station changes.

Entrance–exit route setting Press the entrance signal, then the exit. The points are picked, proved and locked before the signal clears.
Sectional release The route releases behind the train, track circuit by track circuit, each release named in the log.
Individual point operation The secondary control — for shunting, and for degraded working when a route will not set.
Fault injection Stuck track circuits, signal and point failures, route-lock failure — injected, held and cleared from the desk.
Event log Every command, refusal and release in order, with the reason a signal would not clear.
Reference tables Signals, points, track circuits and routes for the station, laid out from its own configuration.

The track graph. Any of these boards can also be read as a graph — nodes, edges, track circuits, and the paths a train could actually run between two places. Open the track graph explorer.

These are teaching models, not approved interlockings. Nothing here authorises any real train movement, and no panel is a substitute for the station’s approved Signal Interlocking Plan, control table or Station Working Rules. The panels read their configuration with fetch, which browsers refuse for files opened straight from disk — serve this folder over HTTP (python -m http.server) and open it at http://localhost:8000/.