Key Facts
- ✓ The project visualizes 291 million Citi Bike rides.
- ✓ It runs without a backend, using DuckDB WASM and Cloudflare CDN.
- ✓ Users can search for rides using Cmd + K and receipt details.
- ✓ Routes are generated using OSRM for 2,400+ station pairs.
Quick Summary
A massive visualization project has been released, displaying the complete history of Citi Bike rides. The project tracks 291 million individual trips, allowing users to view the flow of bikes across the network.
The tool is entirely open source and runs in the browser without a backend. It utilizes DuckDB WASM to query data stored on a Cloudflare CDN, ensuring high performance and accessibility.
Users can search for their specific ride using the Cmd + K shortcut and details from their receipt. The visualization uses deck.gl with Mapbox for rendering thousands of concurrent animated bikes.
Visualizing 291 Million Rides
The project represents each bike ride as a moving arrow on a map, creating a dynamic view of the bike-share network's history. With a total of 291 million rides visualized, the tool offers a unique perspective on urban mobility.
Users can interact with the data directly. By pressing Cmd + K, they can search for their specific ride using details found on a Citi Bike receipt, specifically the time of the ride and the start and end station names.
Every moving arrow represents a real bike ride, meaning anyone who has used the service is included in the visualization. The project highlights the scale of the Citi Bike system in the USA.
Technical Architecture
The visualization achieves its performance through a specific technical stack designed for efficiency. A key feature is that there is no backend required for the application to function.
Data processing relies on parquet files stored on a Cloudflare CDN. These files are queried directly by DuckDB WASM, allowing complex data analysis to happen client-side.
For rendering, the project uses deck.gl combined with Mapbox. This combination enables GPU-accelerated rendering, which is necessary to handle thousands of concurrent animated bikes without lag.
Background processing is handled by Web Workers. These workers decode polyline routes and perform as much precomputation as possible off the main thread to maintain a smooth user experience.
Route Generation and Data
The visualization faces a specific data challenge: the source data only provides start and end station pairs, not the actual paths taken. To solve this, the project generates realistic routes.
Routes are created by querying OSRM (Open Source Routing Machine). The system calculates the shortest path between all 2,400+ station pairs to animate the bikes accurately.
The project is fully open source and available on GitHub. This allows developers to inspect the code, understand the implementation details, or contribute to the project.




