I built this because MetroBoard was $200, had a months-long waitlist, and only does one city. This one does 17, runs in the browser, and costs nothing beyond hardware I already had.

    Every dot is a live train pulled from GTFS-RT feeds that transit agencies publish publicly. I process the static feed once into route geometry. The server polls the realtime feed every 12 seconds, matches vehicles to shapes, and returns positions. The frontend is a single SVG, no mapping library, no tiles.

    SF, NYC, Chicago, Boston, DC, Seattle, Denver, Portland, Minneapolis, Toronto, Brisbane, and more. Some cities publish vehicle positions directly; others (NYC) only publish trip updates so I estimate location from upcoming stop sequences.

    Live at transit.henryratterman.com

    by Garyofspokane

    Share.

    3 Comments

    1. Garyofspokane on

      I built this because MetroBoard was $200, had a months-long waitlist, and only does one city. This one does 17, runs in the browser, and costs nothing beyond hardware I already had.

      Every dot is a live train pulled from GTFS-RT feeds that transit agencies publish publicly. I process the static feed once into route geometry. The server polls the realtime feed every 12 seconds, matches vehicles to shapes, and returns positions. The frontend is a single SVG, no mapping library, no tiles.

      SF, NYC, Chicago, Boston, DC, Seattle, Denver, Portland, Minneapolis, Toronto, Brisbane, and more. Some cities publish vehicle positions directly; others (NYC) only publish trip updates so I estimate location from upcoming stop sequences.

      Live at [transit.henryratterman.com](http://transit.henryratterman.com)

    2. This is great!! Feature requests:

      * ~~Infer velocity so the dots move (or do something to indicate direction at least!)~~ UPDATE: looks like some dots move… sometimes?
      * Mouse-over for station names
      * Option to superimpose on openstreetmaps
      * Add the MBTA commuter rail!

      Bug report: No trains on the MBTA green line, B branch?

    Leave A Reply