Agent-based traffic simulation

Test a road change on Cork before it’s built.

Urbanetric runs a mesoscopic, agent-based model of Cork’s road network — every junction, signal and link straight from OpenStreetMap. Close a street or add a lane and watch the queues form before a cent is committed.

Cork city centre · live road network

Deterministic

Same seed, same result — every run is reproducible and auditable.

OpenStreetMap

The real network, lanes and turn restrictions — not a hand-drawn sketch.

Calibrated

Tuned against observed link counts before anyone trusts a forecast.

How the model works

From an OSM graph to a queue-by-queue forecast.

Three stages, each one inspectable. Nothing in the pipeline is a black box you have to take on faith.

  1. 01

    Build the network

    Ingest the OpenStreetMap graph — links, lane counts, speed limits, turn restrictions and signal phases all become part of the road model.

  2. 02

    Generate demand

    A synthetic population from census small-area statistics produces origin–destination trips across the day, so peaks emerge from demand rather than a dial.

  3. 03

    Run and compare

    Queue a scenario, watch agents route through the city second by second, then A/B it against the baseline on journey time, vehicle-kilometres and link flow.

Read the full methodology
The Cork network as the model sees it — junction nodes, links and turns.

The simulation

Every vehicle is an agent. Every junction, a decision.

Urbanetric is mesoscopic — sitting between a broad-brush flow model and a car-by-car microsimulation. Each trip is an agent that chooses a route and moves link by link; queues build on links and discharge through signals, second by second.

  • Link-level queuesCongestion forms where capacity runs out, not on an average.
  • Signals & turn bansPhases, splits and banned turns shape how junctions discharge.
  • Second-by-secondA live clock you can watch, scrub and record.
  • Whole-city routingClose one street and trips re-route across the network.
Agents queue along a link and discharge as the signal greens.

Why mesoscopic

One step finer than flow. One step coarser than the steering wheel.

Macroscopic models speak in city-wide flows and tell you the average. Microsimulation speaks in individual cars, lane by lane, and takes a month to calibrate. Mesoscopic sits between them — and the trade-off is the whole point.

  • Per agent, not per flowEvery trip is its own routing decision — not a smoothed-out demand curve.
  • Per link, not per laneQueues build on links and discharge at signals; no steering, no lane-change turbulence.
  • Whole city, fastRe-routes the whole network around your edit in minutes, not weeks.
  • One base, many runsCalibrated against observed counts on a shared OSM base — not rebuilt per project.
A whole city at the resolution that matters for planning, not for autopilot.

Anatomy of a run

What the engine does each simulated second.

Click Run, and the simulator ticks forward one second at a time. Each tick, four things happen — in this order, every time, deterministically.

  1. 01

    Route

    New departures pick their shortest-time path against the current network state — signals, queues, recent re-routes and all.

  2. 02

    Move

    Each on-link agent advances by the link’s free-flow speed minus the back-pressure of the queue ahead.

  3. 03

    Discharge

    Vehicles at signalised stop-lines release per the active phase; lane priorities and banned turns control who goes where.

  4. 04

    Record

    Per-link counts and per-agent positions land in the run log. Replay, scrub or compare them later — same seed, same answer to the byte.

Four stages, one tick. Loop, and the next second begins.

What you can model

Change one thing. Watch everything move.

The editor is the same map you see above. Draw an edit, queue a run, and the model re-routes every trip in the city around it — no rebuild, no waiting on a consultant.

  • Close a street

    Pedestrianise a block or shut a link entirely.

  • Add or remove a lane

    Widen, narrow or reverse a carriageway.

  • Retime a junctionPlanned

    Change signal phases, splits and offsets. A per-junction timing model and editor are on the roadmap; today signals run a calibrated city-wide cycle.

  • Bus & cycle lanesPlanned

    Reallocate road space to transit and bikes. Today this is expressed through lane-count edits; a dedicated bus/cycle primitive is on the roadmap.

  • Build a new link

    Add a junction or a whole new road.

  • Roadworks & weather

    Stress-test with closures, rain or events.

Draw edits straight onto the network — no model rebuild.

From edit to evidence

Five steps from a chalk-line edit to a planning submission.

The point isn’t the simulation; it’s the document you put in front of a committee. Here’s the path.

  1. 01

    Draw

    Draw the edit straight onto the live map — close a street, add a lane, build a new link.

  2. 02

    Queue

    Queue a scenario run against your saved do-nothing baseline. No model rebuild, no waiting.

  3. 03

    Watch

    Watch agents thread the change in real time; the network re-routes around it and queues land where they will.

  4. 04

    Compare

    Read journey time, link flow and queue length side by side against the do-nothing baseline.

  5. 05

    Export

    Drop the figures and the chart panel straight into your report.

Edit to evidence — no install, no model rebuild, no waiting.

Validation

We check the model against the road — not against itself.

A simulation is only worth its forecast if it matches reality. Before a scenario is trusted, the baseline run is compared link-by-link against observed traffic counts — the same screenline and turning-count data a transport assessment already relies on.

  • Ground-truth counts

    Modelled flows are scored against measured link counts, not eyeballed.

  • Reproducible runs

    A fixed seed gives the same result every time, so a review can re-run it.

  • Open network

    Built on OpenStreetMap, so the road model is inspectable by anyone.

  • Side-by-side

    Every scenario is read against the do-nothing baseline, never in isolation.

Read the full validation approach
Junction-level detail from OpenStreetMap

What you take away

Numbers you can put in front of a committee.

Every run hands back the metrics a transport case turns on — journey time, total vehicle-kilometres and link-by-link flow — each read against the do-nothing baseline. Export the figures and the charts straight into a report.

  • Journey timePeak and off-peak, per corridor and city-wide.
  • Link & screenline flowVehicles past any point across the day.
  • Queues & delayWhere it backs up, and by how long.
  • Before / afterScheme against baseline, side by side.
A peak-hour scheme read against the do-nothing baseline.Illustrative

Built to be trusted

Run it again. Get the same answer.

A forecast a review can’t reproduce isn’t evidence. Every Urbanetric run is deterministic — the same seed gives the same result, every time — and built on OpenStreetMap, so the network underneath is open and inspectable, not a proprietary black box.

  • Fixed seedIdentical inputs, identical run — bit for bit.
  • Auditable inputsEvery edit and assumption is recorded with the scenario.
  • Open networkOSM underneath — checkable by anyone.
  • Versioned scenariosCompare, share and re-run any saved scenario.
One seed in, two identical runs out.

Who it’s for

Built for the people who change roads.

  • Local authorities

    Make the case for a scheme to councillors and the public with evidence, not vibes.

  • Transport consultants

    Run a transport assessment without commissioning a six-figure bespoke model build.

  • Developers & planners

    Show a site’s traffic impact on the surrounding network before it goes to planning.

From the first sketch to the planning submission.

See Cork’s traffic before you change it.

No install. Open the live Cork model in the browser and run a scenario.

Open the model