Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit
Go to file
2019-09-17 13:11:08 -07:00
abstutil get rid of unused globally-scoped notes 2019-09-14 19:19:35 -07:00
convert_osm stable IDs for buildings in raw layer too. stop futzing with ID problems there. 2019-09-17 13:11:08 -07:00
data actually, deferring remove_disconnected has problems.. still need to remove cul-de-sacs early. also, remove the two synthetic maps... will make them again from scratch once the raw_data format is stable. unused in the meantime. 2019-09-17 10:47:47 -07:00
docs remove disconnected roads from raw map later, not in convert_osm. that way, if MapFixes disconnect anything, it gets removed later 2019-09-17 09:41:38 -07:00
ezgui easy way to select and delete big chunk of stuff in synthetic 2019-09-16 10:16:56 -07:00
fix_map_geom store name in raw map; simplifies some plumbing elsewhere 2019-09-17 10:27:32 -07:00
game hop to debug mode from a/b test mode, and make it a proper pushed state 2019-09-15 13:28:38 -07:00
geom apply fixes to raw_data in synthetic crate and when creating the full map model. adjusting some LonLat matches to do approx_eq. not stable yet -- sometimes we leave a road connected to something missing. 2019-09-16 12:31:15 -07:00
gtfs upgrade rand, get rid of now unneeded serde1 feature, in hopes of fixing feature mismatch between deps 2019-08-15 12:14:35 -07:00
headless make savestate_every a flag again 2019-08-16 13:34:38 -07:00
kml upgrade rand, get rid of now unneeded serde1 feature, in hopes of fixing feature mismatch between deps 2019-08-15 12:14:35 -07:00
map_model stable IDs for buildings in raw layer too. stop futzing with ID problems there. 2019-09-17 13:11:08 -07:00
popdat rename the main editor crate to game -- map editing is just a tiny piece ;) 2019-09-07 13:09:09 -07:00
precompute stop serializing synthetic's model format, just save raw_data maps 2019-09-11 13:52:49 -07:00
release be able to flag off using textures, and sub a fallback color. also move texture loading into the loading screen. and fix the release script 2019-09-10 17:04:33 -07:00
sim fix an awesome parking contention bug 2019-09-15 14:10:54 -07:00
synthetic stable IDs for buildings in raw layer too. stop futzing with ID problems there. 2019-09-17 13:11:08 -07:00
tests actually, deferring remove_disconnected has problems.. still need to remove cul-de-sacs early. also, remove the two synthetic maps... will make them again from scratch once the raw_data format is stable. unused in the meantime. 2019-09-17 10:47:47 -07:00
.gitignore actually, deferring remove_disconnected has problems.. still need to remove cul-de-sacs early. also, remove the two synthetic maps... will make them again from scratch once the raw_data format is stable. unused in the meantime. 2019-09-17 10:47:47 -07:00
Cargo.toml folding viewer into ezgui crate 2019-09-11 15:27:12 -07:00
clickable_links.py rename the main editor crate to game -- map editing is just a tiny piece ;) 2019-09-07 13:09:09 -07:00
clippy.sh remove the single point associated with intersections, now that we're 2019-06-12 10:10:04 -07:00
exec_tests.sh revive the other transit test 2018-11-26 14:36:59 -08:00
format_md.sh adding a new hint for extra turn restrictions 2019-08-06 14:02:34 -07:00
import.sh actually, deferring remove_disconnected has problems.. still need to remove cul-de-sacs early. also, remove the two synthetic maps... will make them again from scratch once the raw_data format is stable. unused in the meantime. 2019-09-17 10:47:47 -07:00
LICENSE Initial import of A/B Street prototype. 2018-03-13 08:06:03 -07:00
precompute.sh stop serializing synthetic's model format, just save raw_data maps 2019-09-11 13:52:49 -07:00
quick_reconvert.sh stop importing traffic signal data from king county. OSM's data is higher-quality and already attached to specific nodes. 2019-08-15 14:19:11 -07:00
README.md easy way to select and delete big chunk of stuff in synthetic 2019-09-16 10:16:56 -07:00
rgrep.sh get halloween working with small lines. refactor a Line::maybe_new. 2019-02-01 12:12:40 -08:00

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 or post at r/abstreet. I also welcome any contributions on Patreon.