Commit Graph

6800 Commits

Author SHA1 Message Date
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
Rémi Lauzier
1a4b997818 Fix some clippy warnings 2021-06-16 16:21:35 -07:00
Dustin Carlino
cbce654800 Prepare to have vehicles exiting driveways block any intermediate lanes. #555
This is just wiring together all of the state transitions. Haven't
decided how to internally implement this in Queue yet.
2021-06-16 16:02:17 -07:00
Rémi Lauzier
dd050ea425 Update some dependency 2021-06-16 15:51:03 -07:00
Dustin Carlino
321e7cd0ee Allow exiting a driveway onto any lane (in the same road direction). #555
- Support this at the pathfinding level, when transforming v2->v1
- Adjust how the vehicle's body is rendered as it exits a driveway onto
  a farther lane

No support yet for blocking any intermediate lanes; vehicles may clip
through each other without any conflict. Planning to add that
separately.

Regenerating all scenarios and prebaked data...
2021-06-16 15:46:09 -07:00
Dustin Carlino
d42c1310b0 CLI flag to start in the KML viewer for convenience 2021-06-16 11:14:17 -07:00
Dustin Carlino
01a2dfe215 Create a new panel to show how trips are distributed through the day.
Refactor some of the sliding window code along the way.
2021-06-14 17:32:18 -07:00
Dustin Carlino
484720d648 Add code to include pass-through trips (border->border) from Soundcast data. #665
... But leave it disabled, until we can handle such larger file sizes
and levels of traffic.

And although this should be a behavioral no-op, there's a diff in the
scenario files, so recalculate them.
2021-06-14 16:23:14 -07:00
Dustin Carlino
d272b745f2 Add a simple Python script to run grid2demand. I need to produce a scenario for Tempe, and it's also useful for #608 2021-06-14 11:00:02 -07:00
Dustin Carlino
6cafe017c6 new release 2021-06-13 18:33:11 -07:00
Dustin Carlino
3fd8615745 Slim down the github homepage, linking to some of the new site. [rebuild] [release] 2021-06-13 17:34:54 -07:00
Dustin Carlino
04a5327c3a Remove West Seattle proposal link; taking that page down from docs 2021-06-13 12:13:29 -07:00
Dustin Carlino
96aa09edd0 Small steps towards matching more GMNS signals: #626
- toss a loading screen around it
- allow jump to ID in edit mode
- break down failure types more
2021-06-13 11:59:37 -07:00
Dustin Carlino
59597708ec Draw polylines as arrows in the KML viewer; it's pretty much always useful to see the direction of the raw data 2021-06-13 11:32:02 -07:00
Dustin Carlino
500f14869f Le Fournil special: don't redraw KML text constantly; it was sluggish for signal timing. 2021-06-13 11:26:08 -07:00
Dustin Carlino
76aba75082 Update links to docs after some reorg in the other repo 2021-06-12 13:38:38 -07:00
Dustin Carlino
43d6ba80c5 Fix all_walking_costs_from by properly accounting for the distance between sidewalk endpoints and building paths. 2021-06-11 10:10:41 -07:00
Trevor Nederlof
4e150dcab0
Generalized connectivity to use Spot and added BorderIsochrone (#668) 2021-06-11 10:06:53 -07:00
Dustin Carlino
972f5b0187 Lower the priority of service roads when placing stop signs
Regenerate all data. Wallingford started gridlocking due to this change;
plowing ahead and will follow up and fix it.
2021-06-11 09:40:44 -07:00
Dustin Carlino
18ff0eefc0 Store Turns per Intersection, instead of a massive BTreeMap. #368
Minimal file size savings, but substantial runtime improvement!
2021-06-11 09:40:44 -07:00
Dustin Carlino
cabee219db Fix some crashing spinners; the rust compiler inferred the wrong numeric type. #674 2021-06-10 18:21:24 -07:00
Dustin Carlino
fc4f0a8c8e Some Tempe fixes:
- Stop importing rail in Tempe. Not simulating anything on it yet, and it complicates gridlock. #672
- Update the GMNS timing.csv import based on slight format change. #626
2021-06-09 16:35:46 -07:00
Dustin Carlino
d827673ace Periodically free memory in the middle of screenshot test, to avoid
running out on my current machine. Fixes #671.

Finally regenerate screenshots for the first time in ages... just
blindly accepting everything, because the slightly different screen size
means everything was slightly shifted down.
2021-06-09 14:31:40 -07:00
Dustin Carlino
60352747bf Get importer and game crates to share dependencies again, by enabling
some features for transitive deps in each crate.
2021-06-09 10:21:25 -07:00
Dustin Carlino
889c500eb1 Force geojson to use geo-types feature everywhere. This lets different
binaries properly share workspace dependencies.

See
https://www.reddit.com/r/rust/comments/nvd6y7/common_crates_in_cargo_workspace_recompiled_due/
for the full story behind this mess.

I'm going to keep repeating this process until I get game and importer
to share dependencies again.
2021-06-09 09:48:53 -07:00
Dustin Carlino
ecce96fd75 Grab new Tempe OSM data after lots of fixes upstream to 13th/Mill. #654 2021-06-07 19:10:02 -07:00
Dustin Carlino
f39a50a7e5 new release 2021-06-06 15:45:40 -07:00
Dustin Carlino
710e9152cd Just trigger [rebuild] [release] 2021-06-06 14:32:59 -07:00
Dustin Carlino
5192847e62 Dramatically speed up initial seeding for infinite parking. #329 2021-06-04 11:37:47 -07:00
Dustin Carlino
a38125ad2c Adjust multi road editor more -- custom cursor icons for select/unselect 2021-06-03 15:23:55 -07:00
Dustin Carlino
8721c4f6d9 When the desktop version is old, have a button to go directly to the releases page to grab a new one 2021-06-03 09:14:17 -07:00
Dustin Carlino
bf2e4be2a2 Adjust road editor based on real live coffeeshop feedback:
- "x/y similar segments" to relate to explanatory text about lane
  configurations below
- "edit multiple" -> "apply to multiple", since you have to change the
  road first
- start with all candidates selected
2021-06-03 09:02:12 -07:00
Dustin Carlino
b1150c9524 Export raw CSV data about problems per trip, for a data analyst to explore possible dataviz in their more familiar tools 2021-06-02 19:23:48 -07:00
Dustin Carlino
c9e4f754e1 Fix a crash in the problem map layer, caused by checkboxes getting out of sync 2021-06-02 16:26:04 -07:00
Dustin Carlino
ef4ea01c71 Add a button to import all traffic signals map-wide from a timing.csv file, reporting the total number of successes and failures. #626 2021-06-02 12:18:24 -07:00
Dustin Carlino
d2ecab44a7 Be sure to validate signals before committing the results, since GMNS imports aren't validated upfront. #626 2021-06-02 11:40:54 -07:00
Dustin Carlino
cd66d7209e Automatically fill out crosswalks to the GMNS signal import. #626 2021-06-02 11:13:30 -07:00