Skip to content
A traffic simulation game exploring how small changes affect cyclists, transit users, pedestrians, and drivers.
Branch: master
Clone or download
Pull request Compare This branch is 2184 commits ahead, 1 commit behind google:master.
Latest commit 525114f Jul 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
abstutil save and restore savestates for entire a/b tests. launching from scratch Jun 21, 2019
analyze_code upgrade all other deps, except for piston/winit stuff Jan 11, 2019
convert_osm some instructions to import a new .osm. don't require a clipping Jul 15, 2019
data use the turn restriction data to filter more turns Jul 5, 2019
docs roll a new release Jul 15, 2019
editor remove individual turn fiddling from stop sign editor, for simplified… Jul 14, 2019
ezgui user-defined shortcuts Jul 14, 2019
fix_map_geom parking lane overrides in hints. removing parking from much of 23rd. Jul 1, 2019
geom now actually plumbing data for scoreboard Jun 13, 2019
gtfs remove the single point associated with intersections, now that we're Jun 12, 2019
halloween round of clippy / unbreaking the build May 29, 2019
headless starting a blank scoreboard for sandbox mode. removing old defunct at… Jun 13, 2019
kml reading the PSRC parcels file, converting coordinates May 23, 2019
map_model some instructions to import a new .osm. don't require a clipping Jul 15, 2019
playground_gui fix up other ezgui apps, run clippy May 5, 2019
popdat consistently using file extensions of .json and .bin, merging duplica… Jun 11, 2019
precompute completely remove most traces of MapEdits. quietly disconnect some Mar 18, 2019
release expunge the concept of traffic signals being in overtime. not realist… Jun 19, 2019
sim very basic tool to explore an agent's full trip Jun 27, 2019
synthetic remove building_type and stop reading the residential permit shapefile Jun 18, 2019
tests parking lane overrides in hints. removing parking from much of 23rd. Jul 1, 2019
tmp_gfx upgrade some dependencies and list data source licenses in README Mar 11, 2019
viewer borrow text to draw, stop cloning everywhere Apr 22, 2019
.gitignore user-defined shortcuts Jul 14, 2019
Cargo.toml debug_initialmap: use loading screens, stop depicting half-roads, draw Jun 13, 2019
LICENSE Initial import of A/B Street prototype. Mar 13, 2018
README.md some instructions to import a new .osm. don't require a clipping Jul 15, 2019
clickable_links.py easily watch logs as a slow test runs Dec 9, 2018
clippy.sh remove the single point associated with intersections, now that we're Jun 12, 2019
color_scheme.json consistently using file extensions of .json and .bin, merging duplica… Jun 11, 2019
exec_tests.sh revive the other transit test Nov 26, 2018
format_md.sh load different maps from splash menu Apr 21, 2019
import.sh interpret lanes:forward and lanes:backward from OSM Jul 2, 2019
precompute.sh use a sparser, more obvious representation for walking_with_transit. Jun 17, 2019
quick_reconvert.sh remove elevation from map model. never been used, no anticipated need… Jun 12, 2019
rgrep.sh get halloween working with small lines. refactor a Line::maybe_new. Feb 1, 2019

README.md

A/B Street

Ever been on a bus stuck in traffic, wondering why there are cars parked on the road instead of a bus lane? A/B Street is a game exploring how small changes to a city affect the movement of drivers, cyclists, transit users, and pedestrians.

Play A/B Street on Windows, Mac, Linux

Removing dedicated left-turn cycles from a traffic signal:

fix_traffic_signal

Watching overall traffic patterns and zooming into a few slow areas:

exploring_traffic

Technical articles

Features

  • The map
    • A detailed rendering of Seattle from OpenStreetMap and King County GIS data, including sidewalks, on-street parking, bike lanes, bus-only lanes, turn lanes, buildings, and bus stops.
    • Intersections governed by stop signs and traffic signals, with default signal timings heuristically inferred. Hand-tuned geometry to reasonably model Seattle's strangest intersections.
    • You can adjust lane types, stop signs, and traffic signals.
  • The traffic
    • Individual cars, buses, bikes, and pedestrians move through the map.
    • Most trips are multi-modal -- for example, a pedestrian exits a building, walks a few blocks over to their parked car, drives somewhere, looks for parking, and walks to their final destination.
    • A realistic set of trips -- how many people go from building 1 to building 2 at some time using some form of transport -- comes from PSRC's Soundcast model.
  • The gameplay
    • Start in sandbox mode, exploring the map, watching traffic patterns, following individual agents, looking for problems.
    • Jump to edit mode, where you can convert some on-street parking to bus lanes and adjust traffic signals to try to fix some problem.
    • Try your change in A/B test mode, running two traffic simulations side-by-side. Explore how individual agents finish their trips faster or slower, and compare aggregate results about different groups of traffic.

Project mission

If you fix some traffic problem while playing A/B Street, my ultimate goal is for your changes to become a real proposal for adjusting Seattle's infrastructure. A/B Street is of course a game, using a simplified approach to traffic modeling, so city governments still have to evaluate proposals using their existing methods. A/B Street is intended as a conversation starter and tool to communicate ideas with interactive visualizations.

Why not leave city planning to professionals? People are local experts on the small slice of the city they interact with daily -- the one left turn lane that always backs up or a certain set of poorly timed walk signals. Laura Adler writes:

"Only with simple, accessible simulation programs can citizens become active generators of their own urban visions, not just passive recipients of options laid out by government officials."

Existing urban planning software is either proprietary or hard to use. A/B Street strives to set the accessibility bar high, by being a fun, engaging game.

Contributing

I'm a one-person team. If you want to bring this to your city or if you're skilled in user experience design, traffic simulation, data visualization, or civic/government outreach, please contact Dustin Carlino at dabreegster@gmail.com. I also welcome any contributions on Patreon.

You can’t perform that action at this time.