Dustin Carlino
57feeada59
Allow vehicles to exit driveways onto the opposite side of the road. #555
...
- Adding an internal alt_start to PathRequest
- Using it for contraction hierarchy queries only (the Dijkstra
implementation now diverges!)
- Figuring out which start position was used
TODO:
- Fix the unparking position
- Make sure the simulation inserts static blockages
- Carefully check the same start/end road case
- Evaluate impact on gridlock / cancelled trips
2021-07-04 14:34:20 -07:00
Dustin Carlino
bf316fa99c
Fix a crash in the trip info panel. If you happen to open a trip of a
...
car waiting to spawn, its total path distance is briefly 0.
Also silence the lane-changing info for the moment, until work resumes
there.
2021-07-03 08:28:16 -07:00
Dustin Carlino
160d65ca28
Try loading a built-in proposal with --edits, if player data is missing.
2021-07-02 13:14:08 -07:00
Dustin Carlino
d36c2b2d40
Fix broken links on the github homepage
2021-07-02 12:53:54 -07:00
Dustin Carlino
6c1c6a3235
Fix crash when changing speed limit. At some point, we started changing lane IDs for every road edit and never updated this. Closes #685
2021-07-02 11:54:59 -07:00
Dustin Carlino
4fd86c8a41
Entering edit mode is slow on large maps, because clearing the simulation recreates parking state for every building. Parallelize it to speed it up at least a bit.
2021-07-02 11:47:05 -07:00
Dustin Carlino
866ecd5f88
Fix a bug in efaf6085e4
that was using walking paths for vehicles. Now prebaked data doesn't budge.
...
And add some more timing to demonstrate why editing a single lane in a
huge map is so slow...
2021-07-02 11:25:02 -07:00
Dustin Carlino
f4c8a508da
Keep a JSON file with a summary of prebaked simulations, to more easily detect regressions with broken trips.
2021-07-02 10:07:37 -07:00
Dustin Carlino
1b8d05b264
Upload data for Brooklyn. Also grabbed fresh NYC OSM data for the Manhattan maps too
2021-07-01 13:11:14 -07:00
Trevor Nederlof
3faf9893a9
Add downtown brooklyn as a nyc map
2021-07-01 12:27:58 -07:00
Dustin Carlino
9f4fac58a7
Workaround a crash trying to render building 4582 in Green Lake, which
...
has a short driveway that's crashing make_polygons.
This is more fallout from the f64 serialization change. I don't
understand the root cause yet...
2021-07-01 10:43:42 -07:00
Dustin Carlino
4f00c8d2bb
Phinney runs without gridlock again, so re-enable it. Pretty sure
...
f57278e9cd
fixed it.
2021-06-30 16:51:03 -07:00
Dustin Carlino
efaf6085e4
Prepare for exiting driveways on the off-side by switching to
...
specialized PathRequest constructors
2021-06-30 12:35:22 -07:00
Dustin Carlino
137e9a0c2c
Fix up some places affected by the f64 serialization:
...
- offstreet_parking_length in importer config
- backwards compatibility for map edits
- fixing up the baked-in proposals
- working around a few PolyLine bugs that happen with the new rounding
- Don't regenerate actdev scenarios yet -- the upstream JSON format is
out of date, will have to fix separately.
2021-06-30 06:35:42 -07:00
Dustin Carlino
057ac5d020
Serialize trimmed f64's in the geom crate as i32, since the f64's are
...
trimmed to 4 decimal places anyway. Do this for Pt2D, Distance,
Duration, Speed, Time.
Regenerating everything...
2021-06-30 06:35:42 -07:00
Dustin Carlino
70a9508415
Change the CityPicker to merge the list of maps and cities from the local filesystem and the manifest.
...
This fixes various problems when importing local maps (in new or
existing cities) and getting out of sync with the manifest.
2021-06-25 19:37:42 -07:00
Dustin Carlino
126c62d6ba
Simplify CityPicker logic: just use the optional city.bin to draw districts. Always use the filesystem to create the buttons.
2021-06-25 19:11:37 -07:00
Dustin Carlino
8546eb4b5f
Make the timer hierarchy for --regen_all or any city with many maps more easy to understand
2021-06-25 15:29:28 -07:00
Dustin Carlino
3cda1342ab
Fix nondeterminism in z-ordering for lanes, hopefully removing noise from the screenshot diff test.
...
(Ideally there'd be no overlapping lanes in the first place, but that's
quite hard)
2021-06-25 12:29:55 -07:00
Dustin Carlino
5161474955
Stop building huge_seattle twice in the importer workflow
...
I have some fuzzy vision of declaring all importer pieces as a dependency graph, with optional caching of some input, that would express this kind of thing better. But... in the meantime.
Now regenerating everything...
2021-06-25 12:18:04 -07:00
Dustin Carlino
f57278e9cd
Enable the new walking turn algorithm for consolidated intersections
...
only. It has much simpler logic and produces correct results for these
intersections, but it has degradations in some cases -- so limit where
we use it.
But in the meantime, this makes realistic crosswalks over Aurora,
fixing crazy walking detours there.
Not regenerating yet.
2021-06-24 12:41:38 -07:00
Dustin Carlino
c0ce76a92a
Two slight adjustments to speed up the map importer development
...
workflow.
2021-06-24 12:13:47 -07:00
Dustin Carlino
44171500b7
Get the Green Lake map to complete without gridlock!!!
...
- Allow blocking the box around two complex intersections in Green Lake.
This makes the vehicle behavior much more realistic there, by visual
inspection.
- Amp up offstreet parking to 10 per building. I noticed the simulation
completes easily with --infinite_parking. This is an approximation of
that. We make really bad guesses about carpooling and the amount of
parking available around here, so effectively just remove it from
consideration for now.
2021-06-23 13:56:42 -07:00
Dustin Carlino
1bfcba6165
Avoid crash:
...
1) Change the language in a map with lot of options
2) Switch to a map with less language options
3) Open settings panel, trying to create dropdown
2021-06-23 13:13:43 -07:00
Dustin Carlino
8c2b84c37c
Keep the trip info panel open when the user clicks before/after and has to initially load the unedited map. #684
2021-06-23 12:52:18 -07:00
Dustin Carlino
9f22d4893a
Fix a crash with time-warping to the past when the map is edited. See #684 for an explanation.
...
Verified working on native. It should also be fine on web -- loading the
unedited map has to be a whole separate state because of web IO in the
first place.
2021-06-23 10:29:10 -07:00
Michael Kirk
321c9d9c40
Label contingency matrix axes
2021-06-23 10:13:51 -07:00
Dustin Carlino
799fdfbbc0
Don't start lane-changing while still being a laggy head. Fixes the crash. #392
...
Now prebake data again, and upload everything
2021-06-22 18:36:35 -07:00
Dustin Carlino
190ee4b08f
Fix the path v2->v1 and opportunistic lane-changing costs to heavily penalize cars from using bus lanes.
...
This doesn't avoid the aforementioned lane-changing crash, but by manual
inspection, it's keeping cars out of bus lanes.
2021-06-22 17:47:05 -07:00
Dustin Carlino
48076a4c5b
Better stop sign placement -- degenerate roads shouldn't get them. Not
...
sure why this wasn't done before.
Regenerated all maps... but this happens to expose some lane-changing crashes.
2021-06-22 17:05:18 -07:00
Dustin Carlino
e08ddba241
Bring in fresh Seattle OSM data with the new cycletrack mapped around
...
Green Lake, and fix some missing support for bidi cycletracks.
2021-06-22 08:31:16 -07:00
Dustin Carlino
678ed84e4c
Fix a broken Dropbox link in the importer pipeline. The PSRC raw data is now just in S3.
2021-06-21 21:41:05 -07:00
Dustin Carlino
69152f00ad
Fix critical dynamic blockage math bug. Stops some crashes in some cases, including the tests -- which run again. Manually verified the turn goldenfile diff in the UI and regenerated prebaked data. #392
2021-06-21 20:37:11 -07:00
Dustin Carlino
8db88d0890
new release
2021-06-20 20:08:06 -07:00
Dustin Carlino
0f0639d67c
Tweak front page docs a bit, [rebuild] [release]
2021-06-20 18:34:02 -07:00
Dustin Carlino
03db0675cc
Add a Seattle map covering Green Lake
2021-06-20 10:51:30 -07:00
Dustin Carlino
786bb1159d
Fix the lane widths appearing the same in the dropdown due to rounding. #597
2021-06-20 10:30:07 -07:00
Dustin Carlino
ae3d4e2363
Fix loading edits that change the number of lanes in a road. We need to compare the old version of the road in the edits with the basemap, NOT the edited version of the road. #597
2021-06-20 10:06:38 -07:00
Dustin Carlino
d8cdfaba05
Make the multi-road editor only check and edit lanes_ltr, not speed limit. The Aurora cycletrack edit stopped matching because the speed limit happens to change along Aurora. We can think through a better UX to handle both, but I suspect most use cases will focus on lane configuration. #597
2021-06-20 10:00:05 -07:00
Dustin Carlino
e6e6fb267d
Reset current selection after editing multiple roads. This sometimes crashes if the selected lane gets deleted or assigned a new ID. Fixes a crash trying to make the West Green Lake cycletrack. #597
2021-06-20 09:50:33 -07:00
Dustin Carlino
3b748ee9fa
Implement dynamic blockages and use them for lane-changing. #392
...
This is conceptually simple and improves the behavior of vehicles
that're following a LCing leader.
Regenerate prebaked results -- no new gridlock!
2021-06-19 12:35:19 -07:00
Dustin Carlino
1e43d929e5
Implement dynamic lane-changing in a simple way:
...
- only triggered when a vehicle becomes Queued
- Only one adjacent lane, no contraflow (crossing the road's center
line)
- Don't return to the original lane after passing
- Using a static blockage in the old lane (so other vehicles will wait
too much)
- Only using the new lane to determine position (so visually a car will
clip a bike as they pass)
Haven't regenerated prebaked data. #382
2021-06-19 12:35:19 -07:00
Dustin Carlino
0bcf01fd05
Avoid crashing in recalculate_intersection_polygon due to polylines not
...
containing some points. Happens at i524 in Arboretum and in the West
Seattle proposal.
I don't understand yet why this is possible in the first place, but
crashing is pretty bad in the meantime.
2021-06-19 11:29:01 -07:00
Dustin Carlino
8f199177f5
Upgrade to Rust 1.53
...
- arrays are now iterable directly
- switch to using BTree{Set,Map}::retain!
- a round of clippy
- regenerate scenarios and prebaked data; not sure why, but there's a
diff
2021-06-17 23:04:35 -07:00
Dustin Carlino
0f7299f091
Found the bug with the previous commit. Keeping this separate to point out the issue. Reasoning using get_active_cars is super dangerous; likely going to remove it. #555
...
But finally, regenerate prebaked data successfully and commit all of
this. It's done. Blocking driveways on exit works now
2021-06-17 13:39:26 -07:00
Dustin Carlino
841336ad15
A grand finale: refactor logic to update follower vehicles, and call that new logic when clearing static blockages. #555
...
And previous commit was wrong about Unparking needing distances; it
needs distances OF ANOTHER QUEUE.
2021-06-17 13:01:00 -07:00
Dustin Carlino
1528b954c6
Carefully change the Unparking and IdlingAtStop states to require
...
distances... #555
Prebaked actually broke with the previous commit in Arboretum, because a
car waits behind a blockage, then suddenly warps ahead. But now we can
fix this...
2021-06-17 12:18:25 -07:00
Dustin Carlino
1dc973c7fa
And finally: enforce static blockages while a vehicle exits a driveway onto a far lane! #555
...
Vehicles now wait behind blockages, but one more little bug... after the
driveway is clear, the waiting vehicle jumps forward. Need to reset
their crossing state, same as waiting behind a bus.
2021-06-17 09:27:48 -07:00
Dustin Carlino
f5dc28900b
The big rip: change Queue to store more than just actively moving vehicles. Expose these in the API and update a few callers. #555
...
Still no behavioral change -- not inserting blockages into the queue
yet, just representing them. Verifying no prebaked changes still.
2021-06-17 08:51:07 -07:00
Dustin Carlino
ab539f1efd
Creeping towards #555 : make the queue of cars in Queue private, and start some proper APIs for managing it. We need to change this to model blockages, and this is a small step towards that.
...
No behavioral change; verified by regenerating prebaked data
2021-06-16 21:35:57 -07:00