workshop

← all creations

Straphanger

games · created 2026-08-22

Race a randomly drawn Stop A → Stop B across the real NYC subway — read the arrivals board, ride the cars, shove through crowds, and run the stairs to make your transfer before the clock eats you.

simulationcanvaspathfindingmovement

Two stations are drawn from the whole system — all 25 weekday services, 432 station complexes, real transfers — and the clock starts. You are one rider: down the stairs, through the crowd, onto the right train, between the cars, off at the cross-platform, up the stairs, through the passageway, and out the green-globe exit at the far end. Time is scored in simulated minutes against a router-computed par, so a run reads like a commute (“made it in 27:40”) while playing in about five real minutes.

The daily run seeds the trip and the entire timetable from the date, so everyone gets the same A→B and the same trains — comparable times with no server. Best times live in localStorage.

What it actually simulates

Reuse

Seven framework-free ES modules in src/; the sim has no DOM and test/run.test.mjs proves it — network invariants, router sanity, and a scripted bot that plays complete trips through the same input API the keyboard uses.

Gotchas