Michael Kirk
9afbe6031f
speed up texture loading minimize vector alloc
...
It's still kind of slow in --debug wasm builds, but seemingly much
faster in release or non-wasm.
2020-11-18 22:49:49 -08:00
Dustin Carlino
cb4b84873b
Refactor code into person_finished_trip for all trip transitions. #258
2020-11-18 19:05:44 -08:00
Dustin Carlino
37ae02352e
Just reorganize TripManager code a bit. #258
2020-11-18 18:30:03 -08:00
Dustin Carlino
e6e7ec42ff
Collapse two methods in TripSpawner. While we validate a TripSpec, also produce the TripLegs. Also get rid of the stateful TripSpawner entirely. #258
2020-11-18 15:08:06 -08:00
Dustin Carlino
37c132465f
Document how simulation spawning works, as a way to think through the next steps towards simplifying it. #258
2020-11-18 14:35:04 -08:00
Dustin Carlino
915e12ff7e
Remove PersonID from Scenario; the simulation will assign IDs sequentially. They're redundant. #258
...
Slightly reduces scenario file size, and simpler code to construct
scenarios.
2020-11-18 14:13:25 -08:00
Dustin Carlino
cc254d86ae
Fix bug with trip tables -- changing filters in the cancelled and unfinished tables would incorrectly jump back to the finished trip table.
2020-11-18 13:23:11 -08:00
Dustin Carlino
6a2c391b8b
Add a tool to convert maps from JSON back to binary, to enable experiments with modifying parking per buildings. Except... apparently we can't read back in JSON maps?!
2020-11-18 11:34:38 -08:00
Dustin Carlino
4ab98b1477
Compact the schedule in Scenario by just storing each TripEndpoint. #258
...
The schedule validation changes slightly. No-op trips between the same
origin/destination are now an error and get filtered out.
huge_seattle scenario goes from 129MB to 110MB with the redundant
endpoints removed.
2020-11-18 11:13:09 -08:00
Dustin Carlino
739e33ec3e
We do need to fill out trip legs for TripSpec::SpawningFailure; smoke tests in other maps hit it. #258
2020-11-17 18:02:48 -08:00
Dustin Carlino
82c7cd1e8f
At last, collapse the OD -> SpawnTrip -> TripSpec function into one thing. #258
2020-11-17 17:55:29 -08:00
Dustin Carlino
7741ea79b5
Refactor starting trips -- caller passes in TripInfo. Stop inferring
...
TripEndpoints from TripLegs. #258
NOW regenerate scenarios. I'm confident this sweeping refactor didn't
break behavior, because prebaked data didn't budge. huge_seattle
scenario went from 147MB to 129MB. Not bad!
2020-11-17 16:59:37 -08:00
Dustin Carlino
8d80668a56
The big cutover: a Scenario's trips are now just start/endpoints and mode, not the old SpawnTrip structure with a bunch of different cases and details picked out. #258
...
Not regenerating scenarios yet...
2020-11-17 16:28:52 -08:00
Dustin Carlino
8d28274736
Simplify the old ScenarioGenerator, mostly by removing OriginDestination
...
in favor of Option<TripEndpoint>. The bike/car contention tutorial stage
has to be tweaked manually, since there's no longer a nice way to spawn
vehicles at a non-border intersection and force them to use a certain
DirectedRoad. #258
2020-11-17 15:51:30 -08:00
Dustin Carlino
0599d4b47b
Whittle down places constructing SpawnTrip manually. #258
2020-11-17 14:10:47 -08:00
Dustin Carlino
7bb1d5b59c
Switch the UI's spawn_agents_around intersection to go through Scenarios instead of reaching into internal sim spawning gunk. Lock down visibility of some sim spawning things. #258
2020-11-17 11:13:42 -08:00
Dustin Carlino
2abeebc55e
Add a third TripEndpoint case to appear at an exact Position (lane + distance). This is a necessary step before simplifying Scenario's IndividTrip to use TripEndpoints and mode instead of SpawnTrip. #258
2020-11-17 10:50:42 -08:00
Dustin Carlino
5ea3c2ba6f
Remove support for remote trips, and stop plumbing off-map locations. A
...
remote trip goes between two locations off-map, specified just by a GPS
coordinate. The trips aren't simulated at all. They were originally
added to support Orestis's pandemic model, to handle transmission
off-map in shared buildings. This work has died off, there are no other
anticipated use cases for remote trips, and they complicate bigger
refactorings. #258
This also has the nice side effect of substantially reducing scenario
size -- huge_seattle from 177MB to 147MB. That unused metadata was
expensive!
2020-11-17 10:14:23 -08:00
Dustin Carlino
32dea68f5d
Measure how many simulation events actually result in something
...
changing. #368
2020-11-16 11:51:24 -08:00
Dustin Carlino
3433fd99e0
Smarter traffic recorder. Capture the exit point when the vehicle crosses the entry point. Otherwise, in the Krakow scenario of interest, the vehicles piling up and making poor LCing decisions actually get blocked by other gridlock and never make it to the exit. #382
2020-11-16 09:59:43 -08:00
Dustin Carlino
754749a578
Parallelize part of scenario spawning. One of the code paths calls
...
biking_connection, which does a slow graph floodfill.
Prolet robot in Krakow: from 22.6s to 10.1s
Because Krakow now uses separate sidewalks and they're not properly
connected to the road graph yet, biking_connection has to search very
far. The speedup isn't noticeable in other cases.
2020-11-16 09:36:48 -08:00
Dustin Carlino
b9ff94f275
Fix crash in krakow with a biking trip that should get converted to a walking trip, but isn't
2020-11-15 19:59:31 -08:00
Dustin Carlino
24e1a48d75
Generalize TripSpec::NoRoomToSpawn to handle trips that're impossible to instantiate. Hitting this with 'random traffic' in krakow. #258
2020-11-15 17:52:54 -08:00
Dustin Carlino
d3aa81d2d2
new tool to record a scenario consisting of all traffic around some intersections, to help with producing a better test case for #382
2020-11-15 16:57:33 -08:00
Dustin Carlino
a0daeb2f4b
new release
2020-11-15 10:59:36 -08:00
Dustin Carlino
1a0bd1848c
Prep for release [rebuild] [release]
2020-11-15 10:16:45 -08:00
Dustin Carlino
396b9b1969
Infer parking tags better for dual_carriageway=yes. Also stop inferring parking on trunk roads like Aurora. And pull in fresh Seattle OSM, with lots of dual_carriageways tagged. #230
2020-11-14 17:32:34 -08:00
Dustin Carlino
5107b0f6c2
Namespace data/player/{edits,camera_state,saves} by city name. #326
2020-11-14 14:29:49 -08:00
Dustin Carlino
8101c2a820
Add a favicon to the web deployment, mostly to stop an error in the devconsole
2020-11-14 10:51:33 -08:00
Dustin Carlino
b6be9c81d5
Generate city picker maps from a bunch of small maps, instead of one huge map. Use for Paris. One giant map covering everything there is going to be too large.
2020-11-13 18:22:46 -08:00
Dustin Carlino
d43bf2c869
Import Paris, for helping the OSM community visualize all the awesome pop-up bike lanes there
2020-11-13 17:23:36 -08:00
Dustin Carlino
6fe49ce0fa
Some preps for importing Paris: avoid crashing on some previously unseen
...
OSM things, and making geojson_to_osmosis handle multiple polygons in
one input file.
2020-11-13 16:31:22 -08:00
Dustin Carlino
2d928b7ecf
Little tweaks to the parking mapper mode to make it easier to tag dual
...
carriageways. #230
2020-11-12 22:00:57 -08:00
Dustin Carlino
c6b752d41b
Iterate on automatically finding medians for #230 . Still not ready, but
...
get fresh OSM data to test in both Krakow and Seattle. While I'm at it,
also grab fresh OSM for Krakow, since it's been ages.
2020-11-12 17:58:19 -08:00
Michael Kirk
65897d8fe2
FIX #379 : web client resizes with window
2020-11-12 16:51:05 -08:00
Michael Kirk
6b02048ce7
see logs in web
2020-11-12 16:51:05 -08:00
Dustin Carlino
69699600ea
Prototype filling in the gaps near one-way roads. Needs more filtering
...
out, but solid start. #230
Regenerate map data, since the Area object changed.
2020-11-12 14:21:08 -08:00
Dustin Carlino
c96f84341a
Incorporate intersection corners in the around-the-block polygon. #230
2020-11-12 13:41:47 -08:00
Dustin Carlino
1b6af3dfb1
Prototype a debug mode tool to trace a polygon on the interior of any "loop" of roads. Aka, find the polygon if you "walk around the block." This can be used to fill in the blank space between dual carriageways. #230
...
Algorithm needs some work -- it doesn't trace along sidewalk corners,
and it fails for some starting lanes.
2020-11-12 12:53:41 -08:00
Dustin Carlino
22cef74aec
Always allow blocking a degenerate intersection. Visually inspected on
...
the lane-changing test map. #382
Also abandon sim.run_until_done; the only caller was the LC test, and it
uses 30s steps inappropriately anyway.
2020-11-12 11:34:17 -08:00
Dustin Carlino
62135ffc26
Allow blocking the intersection at another Green lake case, and trigger a [rebuild]
2020-11-12 10:37:21 -08:00
Dustin Carlino
b9bf23e420
Downgrade tokio. aa966d7533
broke headless and updater. Blocked on https://github.com/seanmonstar/reqwest/issues/1060
2020-11-12 10:31:52 -08:00
Dustin Carlino
7854823c28
Change the to/from permanent map edits APIs to be a little more ergonomic
2020-11-12 10:13:32 -08:00
Dustin Carlino
c0e2401414
Put the headless API server in the binary release; at least one person wants to use it, but has trouble compiling [rebuild]
2020-11-12 10:01:45 -08:00
Dustin Carlino
4b557fa6de
Bring in fresh OSM for Seattle. Because it's so annoying to manually
...
repair proposals when roads change upstream, make the test dump a
repaired file before failing. Manually inspect/amend that.
2020-11-11 15:16:06 -08:00
Dustin Carlino
3583d068a6
Fix a bug introduced in e3b9c42506
on the proposal saver, and allow blocking-the-box on another Ballard intersection
2020-11-11 13:20:56 -08:00
Dustin Carlino
e5ff76e00c
Working on gridlock in the Ballard map. Allow blocking-the-box near the
...
famous Green Lake intersection, and add a little debug tool to see
current queue reservation length.
2020-11-11 12:43:28 -08:00
Dustin Carlino
aa966d7533
Upgrade a bunch of dependencies
2020-11-11 12:02:53 -08:00
Dustin Carlino
3e7c0e51c4
Set up a test scenario for lane-changing to reproduce #382 . The same
...
problems aren't quite captured, but it's a start.
2020-11-11 11:33:47 -08:00
Dustin Carlino
a3bcf5181c
Make the map editor be able to produce synthetic .osm, and use it to
...
create a map exemplifying the lane-changing problems of #382 .
2020-11-11 10:44:45 -08:00