// project — computational social science
Using agent-based simulation to identify unsafe cycling infrastructure in Amsterdam — before accidents happen.
// 01 — the problem
Despite its reputation as a global cycling capital, Amsterdam identifies dangerous infrastructure only after harm has occurred. The current system relies on accident reports and citizen complaints — a location must accumulate enough injuries before it enters the improvement queue.
For every fatal accident, thousands of near-misses go unrecorded. Braking events, swerves, close calls — the daily friction of cycling — remain invisible to planners.
// 02 — the approach
Bike-mounted sensors collected GPS, acceleration, and speed every second across 110 trips through Amsterdam.
Each trip becomes an agent. Hard braking events trigger probabilistic state transitions from SAFE to AT_RISK to UNSAFE.
Braking events are mapped against traffic lights, road surface type, and facility type to isolate infrastructure-driven risk.
Clusters of unexpected braking away from signals point to structural failures before accidents occur.
// 03 — the model
Each of the 110 recorded cycling trips is initialised as an independent agent navigating the Amsterdam road network. The environment is built from GPS coordinates overlaid with municipal infrastructure data — traffic lights, road surfaces, facility types.
At every step, an agent occupies one of three states. Hard braking — defined as acceleration below −2.0g — triggers a probabilistic transition to a worse state. Recovery is possible only through a sustained window of smooth cycling.
// 04 — key findings
Unsafe trips accumulated on average 730 hard braking events compared to just 97 for safe trips. A 7x difference pointing to systemic, route-level risk rather than isolated incidents.
Unsafe avg: 730 braking events · Safe avg: 97
Traffic signals account for only 6.1% of all hard braking. The danger is in the infrastructure between stops — surfaces, lane width, mixed-use paths.
93.9% away from signals · 6.1% near signals
When normalised by distance, brick pavers produce 30 braking events per km versus 8-9.5 on asphalt. Amsterdam's historic surfaces are a structural safety hazard.
Brick: 30/km · Tiles: 28/km · Asphalt: 8-9.5/km
Braking clusters concentrate around Amsterdam Centraal even after removing signal-adjacent events, pointing to mixed infrastructure, high pedestrian density, and legacy surface materials.
// 05 — implications
"The model can highlight materials and design contexts correlated with cyclist stress before those problems become visible in accident statistics."
Roadmap for Change, Jan 2026The ABM establishes a reproducible, behaviour-based baseline for any city to assess cycling infrastructure. By monitoring hard braking patterns continuously, municipalities can identify danger hotspots before they accumulate injuries and evaluate whether infrastructure changes actually improve safety over time.
Identify which surfaces, crossings, and routes to repair first based on behavioural data, not waiting lists.
Compare braking frequency before and after a fix to measure whether it actually worked.
The sensor + ABM pipeline works for e-bikes, fatbikes, scooters, wheelchairs and for any city willing to collect data.
The complaints-based system favours those who know how to complain. Sensor data captures everyone's experience.