Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit
Go to file
Dustin Carlino 0eda6307cd Defer creating TripSpec until the trip actually starts. #258
This speeds up scenario instantiation (because picking a bus to use can
be spread out over time) and is a step towards simplifying the spawning
code. Starting downtown goes from 12.8s to 2.2s.

All vehicles spawning at a border now regress to using the 1st valid
lane, instead of random. Now that the choice is made when the trip
starts, this could later be improved to pick the least loaded lane.

Now regenerate everything.
2021-01-10 18:55:38 -08:00
.github/workflows Rename the experiment crate in preparation for a Monday release 2020-12-19 10:01:28 -08:00
abstio Make the game crate also start by asynchronously loading any map, in the common case of starting with a map as an argument. #344 2021-01-09 15:51:03 -08:00
abstutil Start all UI apps except for game by loading a map using the async interface. This lets someone on the web immediately start with any map based on URL params. And it's one step towards removing the montlake file from being hardcoded in the wasm. #344 2021-01-09 14:45:33 -08:00
book Defer creating TripSpec until the trip actually starts. #258 2021-01-10 18:55:38 -08:00
collisions Display tooltips in the collision viewer. #87 2020-11-10 12:49:08 -08:00
convert_osm Close a roundabout in lakeslice that keeps causing gridlock. Not regenerating yet. 2021-01-10 18:21:37 -08:00
data Defer creating TripSpec until the trip actually starts. #258 2021-01-10 18:55:38 -08:00
fifteen_min Start all UI apps except for game by loading a map using the async interface. This lets someone on the web immediately start with any map based on URL params. And it's one step towards removing the montlake file from being hardcoded in the wasm. #344 2021-01-09 14:45:33 -08:00
game Don't crash when a trip succeeds now, but not in the prebaked results. [rebuild] [release] 2021-01-10 12:13:02 -08:00
geom Import a SUMO network, transform it into an ABST map. So far, this gets 2021-01-05 12:44:38 -08:00
headless Switch all error handling to anyhow. Nothing consumes our code as a 2021-01-05 11:35:03 -08:00
importer Adjust Leeds import: #444 2021-01-08 09:29:45 -08:00
kml Use roxmltree/std to get an error implementation and make using it more ergonomic 2021-01-05 11:37:48 -08:00
map_editor Move CameraState to map_gui. Now widgetry has no dependency on abstio! #253 2021-01-04 10:39:15 -08:00
map_gui new release 2021-01-10 12:20:23 -08:00
map_model Woops, the include_dir change yesterday broke manually specified traffic 2021-01-10 18:19:12 -08:00
osm_viewer Start all UI apps except for game by loading a map using the async interface. This lets someone on the web immediately start with any map based on URL params. And it's one step towards removing the montlake file from being hardcoded in the wasm. #344 2021-01-09 14:45:33 -08:00
parking_mapper Start all UI apps except for game by loading a map using the async interface. This lets someone on the web immediately start with any map based on URL params. And it's one step towards removing the montlake file from being hardcoded in the wasm. #344 2021-01-09 14:45:33 -08:00
popdat Switch all error handling to anyhow. Nothing consumes our code as a 2021-01-05 11:35:03 -08:00
release new release (and finally add a little more automation for this step) 2021-01-03 12:23:47 -08:00
santa Start all UI apps except for game by loading a map using the async interface. This lets someone on the web immediately start with any map based on URL params. And it's one step towards removing the montlake file from being hardcoded in the wasm. #344 2021-01-09 14:45:33 -08:00
sim Defer creating TripSpec until the trip actually starts. #258 2021-01-10 18:55:38 -08:00
sumo Grab new Seattle OSM data with some junction=intersection tags in Montlake and along Aurora. #114 2021-01-07 11:11:59 -08:00
tests Switch all error handling to anyhow. Nothing consumes our code as a 2021-01-05 11:35:03 -08:00
traffic_seitan Upgrade usvg and rand 2021-01-04 09:19:54 -08:00
traffic_signal_data Woops, the include_dir change yesterday broke manually specified traffic 2021-01-10 18:19:12 -08:00
updater Switch all error handling to anyhow. Nothing consumes our code as a 2021-01-05 11:35:03 -08:00
widgetry Change the city picker UI to show cities on the left. After clicking one, open up the overview for that city. 2021-01-08 15:51:22 -08:00
widgetry_demo Fix web build after rand upgrade. Unfortunately I think this has to happen in all of the binary crates individually: https://docs.rs/getrandom/0.2.1/getrandom/#indirect-dependencies 2021-01-05 11:12:03 -08:00
.gitignore Start importing Bellevue. Treat it as a separate city from Seattle, and 2020-12-30 13:21:59 -08:00
Cargo.lock On the web, use URL query parameters as the command-line arguments. This 2021-01-09 13:02:39 -08:00
Cargo.toml Import a SUMO network, transform it into an ABST map. So far, this gets 2021-01-05 12:44:38 -08:00
clippy.sh round of clippy. not fixing everything. 2019-12-11 16:17:15 -08:00
format_md.sh Fix more broken links. Sadly can't enable linkcheck, because it has two false positives. 2020-09-24 19:37:16 -07:00
import.sh util to convert geojson to osmosis polygon (#309) 2020-09-02 15:29:25 -07:00
LICENSE Initial import of A/B Street prototype. 2018-03-13 08:06:03 -07:00
README.md new release 2021-01-10 12:20:23 -08:00
rgrep.sh Set up a test scenario for lane-changing to reproduce #382. The same 2020-11-11 11:33:47 -08:00
rustfmt.toml tweaking rustfmt options; the long literal string vecs in tutorial look awful 2020-01-21 15:20:02 -08:00

A/B Street

Ever been stuck in traffic on a bus, wondering why is there legal street parking instead of a dedicated 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.

Show, don't tell

Alpha release trailer

Find a problem:

exploring_traffic

Make some changes:

editing_map

Measure the effects:

evaluating_impacts

Documentation

Roadmap and contributing

See the roadmap for current work, including ways to help. If you want to bring this to your city or if you're skilled in design, traffic simulation, data visualization, or civic/government outreach, please contact Dustin Carlino at dabreegster@gmail.com. Follow r/abstreet for weekly updates or @CarlinoDustin for occasional videos of recent progress.

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 be highly accessible, by being a fun, engaging game. See here for more guiding principles.

Credits

Core team:

Others:

Data: