Transit Pulse

A live map of Rotterdam’s trams and buses built from the open transit feed, smooth even on a budget phone.

client

—

role

Author

year

2024

stack

TypeScript · MapLibre · Deno

Grey markers on a line-drawn city map

01 / problem

The public transit feed publishes every vehicle position, but the maps built on it stutter as soon as you zoom out and show a whole city. I wanted to see how far a browser map could be pushed.

02 / approach

A small Deno service turns the feed into compact binary tiles, and the front end draws them with MapLibre custom layers on the GPU. Positions are interpolated between updates, so vehicles glide instead of jumping.

03 / outcome

The map renders 1.2 million points over a day of history and holds 60 frames per second while panning on a budget phone. It started as a weekend experiment and turned into a talk at a local meetup.

1.2M

Points on the map

60 fps

While panning on a budget phone

City street with tram tracks and high-rise buildings
Aerial view of a city grid at night

© 2026 Teodor Halvik. Built in Rotterdam.

© 2026 Teodor Halvik. Built in Rotterdam.

Create a free website with Framer, the website builder loved by startups, designers and agencies.