Commit Graph

873 Commits

Author SHA1 Message Date
Dustin Carlino
77fcd04402 Different music per level 2020-12-18 16:26:39 -08:00
Dustin Carlino
2823c04338 Finalization flurry...
- Tune colors in the experiment
- Regenerate maps again -- I forgot that the parcel data gets joined in
  a later importer step.
- Add some of the new maps as levels
2020-12-18 14:24:45 -08:00
Dustin Carlino
0b8c86e2c8 Adjust the threshold for what counts as a straight vs right turn from 10
degrees to 30 degrees. It works around the issue in #428, but it doesn't
solve the root cause there, so the unit test is also adjusted to provide
a way to solve the harder problem.

Regenerated all maps accordingly. Many traffic signals tended to
improve, with a straight turn marked protected, instead of permitted as
a "right turn."
2020-12-18 12:06:16 -08:00
Dustin Carlino
ee0d73847e Add more small Seattle maps for the experiment -- and who knows, maybe also useful for traffic sim
And unbreak the importer, cargo check doesn't build with features! Argh.
2020-12-18 11:00:15 -08:00
Dustin Carlino
d4fa67ac87 Make the one-mode path guesses more precise in their start/end locations. Noticeable effect is in the freeform agent spawner, the paths actually go between buildings now, instead of lane starts. 2020-12-16 15:49:03 -08:00
Dustin Carlino
a5b62cd454 Simplify CreateCar, using the PathRequest embedded in the router's Path 2020-12-16 13:23:33 -08:00
Dustin Carlino
fccc98205c Refactor: Store the input PathRequest inside the resulting Path. This
saves lots of callers from cloning the request and separately plumbing
around the requested start/end distance. Also a step towards exposing
more granular distance crossed in a path for #392.

Still a few more places to simplify, but will do in a separate, smaller
change.
2020-12-16 12:55:57 -08:00
Dustin Carlino
54eee6d3e4 Clarify instructions on the level prep screen and mark the start. 2020-12-15 12:45:08 -08:00
Dustin Carlino
5aecff3b9e Regularly import Salzburg. #366 2020-12-15 06:02:06 -08:00
Dustin Carlino
7ffa7f73f8 - Tune sprite size
- Fix duplicate unlocked vehicles
- Tune the zoom in-game
- Distinguish goal for each level, vs max possible score
- New time left panel
2020-12-13 12:44:43 -08:00
Dustin Carlino
6c3bd13874 Get that title screen closer to Figma. 2020-12-11 14:15:28 -08:00
Dustin Carlino
607a8757dd Use widgetry to handle quitting things, so we don't just blow up on the
web.
2020-12-11 13:18:20 -08:00
Dustin Carlino
aa5010f2d0 Import part of Manhattan. Need to adjust the boundary to fix water
polygons, but this is a start.
2020-12-09 16:15:08 -08:00
Dustin Carlino
6e6e975923
There's no way it's this easy to add music... (#417) 2020-12-09 13:46:27 -08:00
Dustin Carlino
c8a37a27a0 Create 3 new small maps of Seattle for the experiment. Notably, 2 of
them simulate fully with --infinite_parking, and SLU makes it to about
4pm, so these might have some other interesting use...
2020-12-07 20:58:04 -08:00
Dustin Carlino
a88fef0874 Update minimap style and other bits from Figma, better snowflakes 2020-12-07 16:42:41 -08:00
Dustin Carlino
af9f9080a2 Some experiments to chop Seattle into some smaller pieces. Not used yet. 2020-12-06 21:25:22 -08:00
Dustin Carlino
139f442ba7 Flatten transforms in the Santa SVGs from Illustrator. The pitiful SVG
processing code in widgetry doesn't handle paths nested under groups
with transforms. To workaround, preprocess the SVGs:

1) Open in Inkscape
2) Click the problematic group
3) Menu "Path > Object to path"
4) Menu "Extensions > Modify path > Apply transform"

And scale down the two bike sprites
2020-12-05 17:57:46 -08:00
Dustin Carlino
8531c8c773 Pick different vehicles, animate the player a bit 2020-12-03 14:23:30 -08:00
Dustin Carlino
2aaa7e4dee Split into multiple panels, add a pause screen, fix switching maps 2020-12-03 12:38:28 -08:00
Dustin Carlino
60117a64e8 Handle starting/ending in a zone when pathfinding, regardless of Dijkstra/CH implementation. #411
The import bug in Münster is still happening though! Still digging in.
(But regardless, this change fixes some old technical debt)
2020-12-02 10:42:01 -08:00
Dustin Carlino
01737ea0c5 Update prebaked data after #412 2020-12-01 19:22:32 -08:00
Dustin Carlino
675427f940 Track the direction the player is facing when moving around. And...
hello, Santa.
2020-12-01 13:06:27 -08:00
Dustin Carlino
57963126fa Fold number of housing units into Building; ditch the extra file approach. 2020-12-01 12:43:19 -08:00
Dustin Carlino
aa4d848a0e Figure out the number of single family and multi-family units per OSM building, from parcel data. Just store it in an extra system file for now. 2020-11-30 10:58:47 -08:00
Dustin Carlino
72e54c68d8 Fix a bug with TripManager's spawn_ped -- it wasn't actually cancelling trips when pedestrians don't have a path for the second leg of their trip. #258 2020-11-25 10:34:53 -08:00
Dustin Carlino
ff829db8f1 Expanding the boundary of huge_seattle, and creating a new north_seattle map 2020-11-25 08:56:55 -08:00
Dustin Carlino
47d09d61f0 Plumb the intended TripMode for cancelled trips; instead make the trip duration optional. Breaking change for anyone using the API. Makes way more sense. [rebuild] [release] 2020-11-22 11:21:44 -08:00
Dustin Carlino
fb07e35200 Just download a KML file of Seattle zoning codes, for #393 2020-11-21 08:55:58 -08:00
Dustin Carlino
308eb90956 Bring in Seattle parcel data to experiment with filling the negative
space on maps with "private area around houses".

And a few tweaks to the KML viewer to make it more useful:

- optionally save the clipped file
- click an object to view all attributes in a scrollable popup
2020-11-20 10:30:13 -08:00
Dustin Carlino
f6565988c9 Let parking aisles span multiple parking lots. 2020-11-19 12:34:31 -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
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
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
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
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
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
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
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
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
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
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
104c987edd Import Seattle collision data and convert to the common format. #87 2020-11-06 13:16:50 -08:00
Dustin Carlino
e0a8d82b61 Reorganize polygon files to importer/config, instead of data/input.
Nothing in data/input should be under version control; all of it is
managed by the updater. #326
2020-11-06 10:10:03 -08:00
Dustin Carlino
ad7a25f7f2 Prototype a simple data format for collision data. Import data for Leeds and London. #87 2020-11-05 16:16:40 -08:00
Dustin Carlino
ac6eff31ef Rename some maps to remove the now-redundant city. #326 2020-11-05 15:24:02 -08:00
Dustin Carlino
e15efa9002 Organize raw maps by city. With this, data/input/ is totally namespaced by city! Nothing prevents us from having a map named "downtown" in multiple cities now. #326 2020-11-05 14:58:28 -08:00
Dustin Carlino
3d84defb71 Also organize screenshots by city. #326 2020-11-05 14:42:40 -08:00
Dustin Carlino
4f2cda8d53 Reorganize data/system/ files by city! The only interesting change is
abstutil::path_all_maps becoming abstutil::list_all_maps. #326
2020-11-05 14:05:48 -08:00
Dustin Carlino
576e64e246 Consolidate integration tests from the map_tests crate and some of the
stuff smushed into game for some reason
2020-11-05 12:42:52 -08:00
Dustin Carlino
89a4e5bdcd Disable output from the snapped cycleways experiment. The output is
nondeterministic (for still unknown reasons) and the spurious diff when
the importer is run is a distraction.
2020-11-05 11:43:50 -08:00
Dustin Carlino
67530bec07 Future-proof file organization by changing map_name from a string to a
struct. Whatever choices we make next about naming cities hierarchially
or not can be managed in just one place. #326

This is a pretty huge change, but the compiler gives reasonable
confidence it's correct. More bugs are likely to crop up in the next
step, when filenames start being namespaced by the city too.
2020-11-04 17:26:32 -08:00
Dustin Carlino
d0b26f56b4 Track file size of data files in the manifest too, to more easily notice when they change 2020-11-04 14:35:20 -08:00
Dustin Carlino
e99dd5bba7 Use inferred sidewalks for Leeds, after detecting another geometry bug
when building sidewalk corners. Raw sidewalks from OSM aren't suitable
for traffic simulation yet.
2020-11-04 08:46:06 -08:00
Dustin Carlino
21cd7a197d Run the experimental cycleway snapper phase for Leeds, after adding a
check to skip ways like https://www.openstreetmap.org/way/429285996,
which're unexpectedly loops.
2020-11-03 15:57:21 -08:00
Dustin Carlino
77979706c6 Upload the Leeds data to S3, for #375 2020-11-03 10:56:54 -08:00
Robin
edf5d0d8a9
Add Leeds (#375) 2020-11-03 10:53:14 -08:00
Dustin Carlino
c481567ebb Cut over from Dropbox to S3. #195, #326
Uploading files individually to Dropbox is flaky, and the unique URL per
file complicates data/MANIFEST.

While we're at it, start carving aside a directory structure for keeping
data for the last few releases.

[rebuild] to make sure github actions can download everything
2020-11-02 17:36:02 -08:00
Dustin Carlino
b2519e3050 Add an extra check for polyline intersection endpoints. I found an
intersection polygon in Krakow that has really bad geometry, and this
improves it. The extra check absolutely shouldn't be necessary, but of
course, all the core line intersection code is quite suspect! #161
2020-11-02 15:10:45 -08:00
Dustin Carlino
6e417340e4 Generate turns much more simply for intersections of footpaths. #161
Also gets rid of some annoying warnings about roads with missing names.
I could continue to skip the warning for more situations, but I think
this sort of data quality check could be done better in the OSM viewer.
2020-11-01 18:20:32 -08:00
Dustin Carlino
8920c2c0b8 Store gzipped files in S3 and decompress upon loading. A few basic tests
showed this is faster than downloading the uncompressed files, but of
course it probably depends on network speed vs CPU. #326

Also cut over the updater to use gzipped files using flate, instead of
single-file .zip's. [rebuild]
2020-10-31 18:09:48 -07:00
Dustin Carlino
b46c3d26eb Don't infer sidewalks for the plethora of demo maps 2020-10-31 17:06:48 -07:00
Dustin Carlino
4624baad0b Woops, binary format of MapConfig changed, so regenerate all maps 2020-10-31 10:08:05 -07:00
Dustin Carlino
04b9eef24a When using OSM footpaths, don't stick sidewalks on the road when sidewalks=separate and also bring in cycleways and paths allowing foot traffic. #161 2020-10-30 15:16:19 -07:00
Dustin Carlino
ca2ff08d71 Don't render intersections between footways with a special color. Also
cut Kraków over to using the new experimental footpath support. #161
2020-10-30 14:11:00 -07:00
Dustin Carlino
3ed7e73aa8 Use a u64 RNG seed, not a u8 2020-10-29 09:25:07 -07:00
Dustin Carlino
0ddfb201d9 Get some parts of Tokyo to import, by adjusting the filter for city-like
boundaries and by preferring English filenames. #326
2020-10-27 14:10:42 -07:00
Dustin Carlino
b4c39a0850 An initial script to mass import cities. #326 2020-10-26 17:46:53 -07:00
Dustin Carlino
47fa997f72 Refactor a proper Amenity struct. Leave room for optional raw OSM tags.
Don't expose the tags in the UI yet. [rebuild]
2020-10-25 11:49:46 -07:00
Dustin Carlino
34b41a909e Optionally keep building OSM tags. Display in info panels and the new viewer, when present.
Don't keep the tags by default. File size increase from the empty map is
negligible.
2020-10-24 14:19:22 -07:00
Dustin Carlino
8b0d6c6e92 Fix thought bubble svg; for some reason, it had cyan in one of the bubbles instead of white 2020-10-22 21:06:55 -07:00
Dustin Carlino
ad41303e5c After making live map edits, indicate that results aren't finalized. #312 2020-10-22 11:05:07 -07:00
Dustin Carlino
e38858129b Cleanups after https://github.com/dabreegster/abstreet/pull/363:
- cargo +nightly fmt
- upload new prebaked data
2020-10-10 12:24:42 -07:00
Dustin Carlino
2cd59ead37 Remove the special handling for synthetic maps, which were JSON RawMaps
that could directly be loaded. The few examples have been long broken
and unused. They complicate map loading, because they have a weird path.
2020-10-09 16:08:11 -07:00
Dustin Carlino
fd004a59bf Fix a few broken dropbox links caused by doing the cutover in the previous commit 2020-10-08 13:57:49 -07:00
Dustin Carlino
d09ead3672 Use serde for data/MANIFEST 2020-10-08 13:14:40 -07:00
Dustin Carlino
536429f37f Fix lakeslice again. Some manually fixed traffic signals weren't
imported, because they referenced way IDs from before the service road
import. That happened after a bad Cargo.lock merge undid the effects of
pinning to the latest seattle_traffic_signals.
2020-10-07 15:06:03 -07:00
Michael Kirk
2ed916e89f
show parking intent (#362) 2020-10-07 14:16:58 -07:00
Dustin Carlino
d844646cb9 Implement per-road caps for #325, necessitating a tiny map edits version
bump.
2020-10-06 14:17:55 -07:00
Dustin Carlino
fa45590041 Tag E 24th as narrow and assign it narrower width. This still doesn't
quite fix the wacky geometry at Madison/24th, but it gets closer.

Also redo two outdated traffic signals, speeding up lakeslice more.
2020-10-03 18:17:35 -07:00
Dustin Carlino
ffdedcb0a7 When multiple source lanes can turn left* to multiple destination lanes,
only allow the leftmost source lane to turn to any destination lane. As
a future improvment, need to handle multiple explicitly tagged left turn
lanes, but this gets closer to reality, particularly helping some crazy
maneuvers along Mercer in downtown.

*or right

Also had to update lanes along Madison and fiddle a bit to keep
lakeslice running. Spotted some major traffic signal bottlenecks due to
stage generation falling back, will iterate on that separately.
2020-10-03 09:40:15 -07:00
Dustin Carlino
ac5aa927db Test turn generation via goldenfiles instead. Revert the "import from a
raw string" stuff from the previous commit.

Add tests of a few interesting intersections. The results right now
aren't ideal, but this sets things up for fast iteraton.
2020-10-01 15:34:43 -07:00
Dustin Carlino
2b87736dd4 Pull in fresh OSM, with fixed turn lanes near the notorious Madison / Lake Wash Blvd. NOW it runs without gridlock again! 2020-09-30 10:30:01 -07:00
Dustin Carlino
e8d6525c59 Trim out unrealistic left and right turns. Find cases where multiple
lanes all lead to a single lane via left/right turn, and just keep the
left/rightmost lane.

Sanity checked at Rainier / S Massachusetts, and 23rd / S Massachusetts.
2020-09-30 10:30:01 -07:00
Dustin Carlino
5813603594 Include multipolygon parking lots from OSM 2020-09-28 11:39:34 -07:00
Dustin Carlino
4ceb190f6c Add a polygon for Redmond/Kirkland 2020-09-27 12:49:21 -07:00
Dustin Carlino
371d26f707
Bring in alleyways from OSM! [rebuild] (#351) 2020-09-27 12:20:27 -07:00
Dustin Carlino
84891f8b96 Some map fixes to prepare for alleyways:
- Temporarily workaround snap_cycleways crash in Xi'an
- Fix interpretation of blank turn restrictions. https://www.openstreetmap.org/way/739621435 was missing a right turn, which was causing vehicles to do this crazy loop to go from Madison EB to Lake Wash SB.
- Ignore turn restrictions when they don't match the number of lanes. https://www.openstreetmap.org/way/428090702 and similar need some updating.

Regenerate all data, but give up on lakeslice running fully. Going to
sacrifice that one for a bit to get new roads imported.
2020-09-27 11:21:35 -07:00
Michael Kirk
00fb0ef8cd Cleanup dropdown - stop using unicode "down arrow"
We were drawing "pop-up" style buttons in several places, using
copy/pasted logic - which was simple enough when using a unicode glyph.

But we want to use a different glyph which isn't in our font. Further,
using an svg like this gives us finer grained control around the layout
around the button "handle" than we could get with just space characters.
2020-09-24 19:12:39 -07:00
Michael Kirk
8ad32c5cee separate widgetry assets
might be helpful for packing separate widgetry crate
2020-09-24 19:12:39 -07:00
Dustin Carlino
938dab8e94 Determine border intersections exclusively from roads that cross the
clipping boundary. I don't remember why the more complicated thing came
about. This fixes a weird incoming border in SLU into an unreachable
intersection (which is more accurate) and doesn't seem to cause any
problems to normal or oneshot maps, with or without explicit clips.
2020-09-22 16:06:39 -07:00
Dustin Carlino
eecd933c2f upload new data for #340 2020-09-22 12:00:16 -07:00
Dustin Carlino
3eb51d75a5 Sketch a polygon for bellevue 2020-09-19 13:52:09 -07:00
Dustin Carlino
4a07164394 Add the concept of trip purpose. Seed it from Soundcast data, or assign
it for the prolet robot model. Expose it in the trip info panel.

Total scenario size from 385MB to 412MB, but that's not so bad, and this
seems worth it.
2020-09-19 13:02:36 -07:00
Dustin Carlino
15af3846b1 Round driving costs for pathfinding more carefully. When we create
uber-turns (sequences of turns through a few intersections) due to OSM
turn restrictions, we have to be a little careful how we sum up the cost
for the entire sequence, only rounding at the end.
2020-09-18 15:39:35 -07:00
Michael Kirk
c0e2a611a0
introduce textures to rendering pipeline (#333) 2020-09-17 18:38:55 -07:00
Dustin Carlino
9f8dfdd699 Fresh OSM again, to pull in better data for cycleways 2020-09-16 17:38:45 -07:00
Dustin Carlino
10a074f84f Update map data for #332 2020-09-16 16:43:44 -07:00
Dustin Carlino
6e10f40801 Overhaul lane editor UI. #331 2020-09-16 12:32:11 -07:00
Dustin Carlino
da287ae68f Discard changes from traffic signal editor. #331 2020-09-16 11:50:57 -07:00
Dustin Carlino
3dcdb9ec02 Update OSM data (and fix the stage icon) 2020-09-16 10:29:51 -07:00
Dustin Carlino
7bd1d937f9 Some of Yuwen's cosmetic traffic signal editor changes 2020-09-15 09:32:46 -07:00
Dustin Carlino
ac3bc51af2 Restore the traffic signal stage indicator 2020-09-14 18:02:53 -07:00
Dustin Carlino
2895d50a1e
Add tooltips to the agent meters, and stop showing both buses and passengers. Fixes #239 (#323) 2020-09-11 11:08:26 -07:00
Dustin Carlino
edbc674970 Fix stop sign placement for left-handed maps. #311 2020-09-11 11:03:59 -07:00
Dustin Carlino
70d2d1115e Store polygon indices as u16, not u64. Maps from 743MB total down to
620MB!
2020-09-04 13:12:06 -07:00
Dustin Carlino
568a64df91 Don't store Rings for Polygons without any holes. Total map size from 751MB to 743MB 2020-09-04 12:18:53 -07:00
Dustin Carlino
38ba8d55f3 Produce proper lanes for left-hand driving by intervening at the LaneSpec layer for #311. Since London looks reasonable, opt it into the screenshot tests 2020-09-04 10:01:06 -07:00
Dustin Carlino
4576e9c1d0 Start importing a tiny slice of London, to start working on left-hand driving again 2020-09-03 16:09:17 -07:00
Dustin Carlino
86958f2e2f Upgrade the old lane-based edit commands when importing edit JSON, for #113 and #224. When there are lane reversals and lane type changes in the original edits, we still can't safely do the upgrade. But this handles most other cases, notably the 3 proposals. 2020-09-03 15:43:21 -07:00
Dustin Carlino
6a9d55b7f5 Since the first line of the osmosis file doesn't matter, more clearly rename it 2020-09-02 22:12:43 -07:00
Michael Kirk
6482f8b0a4
util to convert geojson to osmosis polygon (#309) 2020-09-02 15:29:25 -07:00
Dustin Carlino
d8d2877c14 Fix bike lane importing on Bell St. To prevent this from gridlocking
lakeslice (which is still quite sensitive to tiny changes in demand
data), manually retime a signal.
2020-08-27 20:51:49 -07:00
Dustin Carlino
59b14426bb Improve shared left turn lane markings and reorg some docs 2020-08-26 12:35:29 -07:00
Dustin Carlino
a5430f04ce Er, forgot to upload the regenerated maps 2020-08-26 10:44:38 -07:00
Dustin Carlino
8b7ad86647 Regularly import Tel Aviv! 2020-08-26 10:25:45 -07:00
Dustin Carlino
75933f686d At last, powered by the tight feedback loop of unit tests, bring in some
two-way cycletracks from OSM!
2020-08-25 16:35:17 -07:00
Dustin Carlino
112a29625f Prepare get_lane_specs_ltr to support two-way cycletracks from OSM...
and bring in fresh OSM, with some of the cycletracks tagged properly
2020-08-25 14:02:17 -07:00
Dustin Carlino
95c43f8e1c Finally replace the underlying storage in Road 2020-08-25 12:08:54 -07:00
Dustin Carlino
4005adecf8 Refactor: create a Direction enum, in preparation for two-way cycletracks on one side of a road. 2020-08-24 13:30:13 -07:00
Dustin Carlino
20d81cd453 Start bringing in cycletracks as bike lanes. Stop interpreting :left to
mean the backwards direction. Not handling two-way cycletracks yet.
2020-08-24 11:20:41 -07:00
Dustin Carlino
0ee6bcbfcb Fix intersection geometry in cases where two road edges intersect at
multiple points. This was already handled when the roads went between
the same intersections, but I found a case in Ballard where the roads
are just really close to each other. Screenshot diff empty in Krakow,
but still related to #243
2020-08-24 10:25:08 -07:00
Dustin Carlino
6b7747c37a Overhaul lane markings:
- Cut off the one-way markings before the end of the road, to stop stomping over turn markings
- Draw turn arrows to every road, not each lane
- Only draw turn arrows when a lane is restricted from going to some
  outbound lane. At most intersections, all turns are legal, so don't draw
  anything.

[rebuild]
2020-08-23 12:00:25 -07:00
Dustin Carlino
0fd40bd04e Explicitly mark buildings with private off-street parking from OSM. 2ebf463635 added parking icons to all buildings with > 10 spots, but this makes the downtown map look ridiculous. The intention was to show the tagged buildings, so just go do that. 2020-08-23 11:09:00 -07:00
Dustin Carlino
8aff945bbf Manually fix the Burke Gilman proposal, broken by OSM IDs changing upstream. Give up on restoring the superblock one; I can't find an old release where it's working properly. I drew it originally from a few different sources that I didn't write down. Now that CHAZ/CHOP happened, maybe it could be redrawn later to document what that was like. 2020-08-23 10:40:30 -07:00
Dustin Carlino
ca8af784c7 Add an explicit version number to the edits schema 2020-08-23 09:22:41 -07:00
Dustin Carlino
66151e8aa4 Dump route goldenfiles during the smoke-test, so that it's run when all
data is regenerated. (Ideally screenshots would also be automated, but
that's a little trickier.)

_NOW_ regenerate all data! The only diff anywhere is the binary map
format, so there's confidence the last few commits haven't changed
anything.
2020-08-22 10:53:05 -07:00
Dustin Carlino
11832aa606 Record throughput through a traffic signal by direction, expose through
the API (#245), and beef up the Python example.

Impact to prebaked file size is tiny -- for lakeslice, the original
intersection_thruput is 2MB and the new traffic_signal_thruput is 435KB.

[rebuild]
2020-08-22 09:13:16 -07:00
Dustin Carlino
5b2a548c93 When regenerating all map data, make sure proposals still work. Lo and
behold, I've broken two of them by updating OSM!
2020-08-21 15:49:28 -07:00
Dustin Carlino
2783c3e180 Expose the granular delays through an API for reinforcement learning (#245). 2020-08-20 16:21:52 -07:00
Dustin Carlino
14c66c5528 A humble start to a Percent type for #274. There are so many places to
use it; just start a few in ezgui. Also a good time to object to the API
so far.
2020-08-20 11:01:59 -07:00
Dustin Carlino
2c5bbd3e7e Use alternate language building names and amenities, when available. Fixes #271.
Tested in Shinjuku. No substantial file size increase for any maps.
2020-08-20 10:39:28 -07:00
Dustin Carlino
24a8d4a836 Prepare to support capping the number of vehicles that can pass through
a zone per hour. This is part of support for some kind of congestion
charging experiments. This step just rearranges the data to define the
cap and makes a UI to edit it. Not enforcing the cap yet.
2020-08-19 17:46:40 -07:00
Dustin Carlino
2ebf463635 Handle buildings tagged as parking garages in OSM. 2020-08-19 17:19:54 -07:00
Dustin Carlino
d427893843 Model parking lots with extra un-renderable spots. This fixes #150, lots
without aisles, and #265, multi-story garages.
2020-08-19 17:19:54 -07:00
Dustin Carlino
2e93fdbf54 Fix parking aisle loops that cross the parking lot polygon. Closes #242 2020-08-18 15:12:12 -07:00
Dustin Carlino
2c0e77b1f5 Add a simplified Chinese font. Fixes #226 2020-08-17 20:30:07 -07:00
Dustin Carlino
9a350b7568 Regularly import Xi'an 2020-08-17 19:37:34 -07:00
Dustin Carlino
40ddd06194 Improving the on/off ramp geometry by preferring that the "thin" road is
one of the outbound roads. This was motivated by one particular example
in downtown, and per screenshot tests, doesn't have regressions
elsewhere. Also improves a few cases in montlake.
2020-08-17 17:31:21 -07:00
Dustin Carlino
c6a2ae8ded Fix community proposals -- the JSON format changed in
11cefb118a.

I attempted using the jq tool, but wound up with vim regex:

s#{$\n\s\+"osm_node_id": \(\d\+\)$\n\s\+}#\1#100000
2020-08-17 14:39:38 -07:00
Dustin Carlino
bef3434ac8 adjust the most egregious traffic signals downtown 2020-08-15 18:35:14 -07:00
Dustin Carlino
92d121ecd4 restore lakeslice to former glory, by allowing blocking-the-box at two intersections that're smushed together. had something like this a while ago, but I thought it became unnecessary when working on uber-turns a few weeks ago 2020-08-15 17:52:23 -07:00
Dustin Carlino
100d126d62 Also lazily render road center-lines. London from 42s down to 32s 2020-08-14 20:57:46 -07:00
Dustin Carlino
49ea9f2d54 Faster London:
- wire up the flag to skip building contraction hierarchies in one-shot
  importer. 406s to import london without, 230s by skipping CH
- lazily render zoomed parking lot details. 72s and laggy X11 mouse
  before, 42s and no GPU melting after
- add my script for stress-testing the importer
2020-08-14 20:50:22 -07:00
Dustin Carlino
25ee39af89 Prepare to flag-guard an experiment to handle uber-turns differently
when allowing a car to start a turn. It causes
https://github.com/dabreegster/abstreet/pull/276#discussion_r470269394
and also the lakeslice scenario to gridlock (a regression that began a
few weeks ago). But keep the flag on for now, to keep the montlake
scenaro running at least.

https://dabreegster.github.io/abstreet/trafficsim/gridlock.html has
notes about the many different causes and in-progress fixes for
gridlock. This experiment hasn't been explained very well yet, but
roughly it treats a cluster of traffic signals as one, so that once a
vehicle gains access through the first light, they guarantee immediate
access through the entire sequence. This interacts with the "don't block
the box" behavior (don't start a turn if you might get stuck in the
intersection) strangely.

While attempting to get this rollback to work, I also had to manually
redraw the traffic lights for a few manually specified intersections.
They became out-of-date a few weeks ago when I cleaned up the OSM
geometry upstream and the referenced IDs changed, and I hadn't bothered
to re-time the signals. Luckily, with the new multi-signal editor,
redrawing the timing was much easier than originally!

Regenerated all data and lots of bus routes vanished. Plan to get back
to that project soon.
2020-08-14 11:33:25 -07:00
Dustin Carlino
0749a2ac7b start keeping goldenfiles for bus routes, similar to the screenshot diff test. this will make it much easier to finish up bus matching without accidentally regressing somewhere 2020-08-10 16:03:04 -07:00
Dustin Carlino
43a6edbc28 regenerate everything, prep for release. [rebuild]
lakeslice still gridlocks and lots of bus routes cut out. not the
happiest release.
2020-08-08 21:33:11 -07:00
Dustin Carlino
d1e9e38e82 refactor for #231: use typed OSM IDs everywhere, dedupe URL code
have to regen, the binary format has changed
2020-08-08 16:09:36 -07:00
Dustin Carlino
128e649236 fix zordering of harbor island, broken in the osm reader refactor a few weeks back
fresh osm. breaks lakeslice, but I'll fix tomorrow. progress in
south/west seattle.
2020-08-06 18:11:09 -07:00
Dustin Carlino
5998afaea4 interpret some OSM turn restrictions as meaning no lane-changing on approach to turn lanes. deeply sanity-checked for monlake only, seems reasonable from spot checks elsewhere
closes #261 -- not sure it's worth actually handling changes:lanes yet,
but this fixes the original issue
2020-08-06 15:57:36 -07:00
Dustin Carlino
d2d9b7b092 finally fix the small border road geometry problem for krakow and west seattle 2020-08-06 11:23:00 -07:00
Dustin Carlino
a2bf0ee59f gather footways, service roads, and cyclepaths into kml side input files to start experimenting with snapping to roads. a small step towards #242, #169, #161, #139, etc 2020-08-05 15:19:52 -07:00
Dustin Carlino
3c24b7aa5a pull in spawn times for seattle from gtfs. looks wrong, but it's a
start.
2020-08-05 14:46:37 -07:00
Dustin Carlino
8f6a6d40e6 change the few places that copied an OSM ID to the clipboard to instead
open the browser. this is more useful, and it also lets us get rid of a
dependency on clipboard stuff, fixing #264
2020-08-05 11:24:51 -07:00
Dustin Carlino
9961b870b6 try to apply the new on/off ramp intersection geometry to all relevant
3-way intersections, for #131
2020-08-05 11:03:02 -07:00
Dustin Carlino
00e8b8a8c2 work around ballard map crashing from tiny border. i tried valiantly to
extend short borders, but it can't be done in convert_osm clip. has to
happen later when trimming and making intersection geometry. too much of
a headache right now.

west seattle and krakow still broken because of short borders.

also grab fresh osm
2020-08-04 15:25:49 -07:00
Dustin Carlino
75179f1400 fix uber turn viewer breakage. also discovered that we can't clip the
largest .osm while we update it without breaking water polygons
2020-08-04 10:30:07 -07:00
Dustin Carlino
bcbf229eb7 rip out all users of the old find_closest_lane for #176.
- this gives offside support to bus/sidewalk matching, getting 11 more
  routes working in krakow
2020-08-03 17:56:58 -07:00
Dustin Carlino
f73516d183 start representing bus spawn rates explicitly 2020-08-03 13:12:02 -07:00
Dustin Carlino
22afb60421 woops, parcels.bin wasnt deterministic. kept seeing a diff in data/MANIFEST. 2020-08-03 11:31:56 -07:00
Dustin Carlino
940d2265c0 spawning buses at 0.01m on a non-border lane can break, because other cars approach, and the buffer distance gets broken. instead, spawn the buses a few lanes away, if needed. fixes #260
now only ~400 agents left in lakeslice by end!
2020-08-03 11:08:21 -07:00
Dustin Carlino
b7ed2615b1 add a "smoke-test" to simulate 1 hr in all maps 2020-08-03 09:28:10 -07:00
Dustin Carlino
13402b7745 get xi'an to import. detect all geometry problems upfront. 2020-08-03 08:12:27 -07:00
Dustin Carlino
3cd28cb44f fix buses not starting at a border. they were skipping the first stop, that's why there were so many stranded agents in lakeslice. still some buses failing to spawn, causing some more stranded 2020-08-01 18:53:40 -07:00
Dustin Carlino
b4ad7400df stop drawing center lines for one-ways. while regenerating maps, also
bring in natural=scrub, and rename the krakow map
2020-07-31 20:48:26 -07:00
Dustin Carlino
2f76c7ac12 powered by a clear head and fresh blackberries, fix #64 2020-07-31 19:58:44 -07:00
Dustin Carlino
ae31739dea almost support off-side parking lanes. only remaining bug is cars
ignoring parking spots if the parking lane is in the opposite direction.
workaround is to reverse the lane. dealing with that bug next though.

part of #64 and #176. fixes #109
2020-07-31 16:23:58 -07:00
Dustin Carlino
d7968713fc don't need to explicitly store parking blackhole redirect, just a bit.
and have a separate bit for bikes. use that to handle bikes going to
borders. finally closes #221, progress on #176.
2020-07-31 15:43:15 -07:00
Dustin Carlino
d22aa87139 rearrange Building internals for #176. edits can affect building
connections to driving/biking. just store the immutable stuff -- whether
there's parking in the building, the connection to the sidewalk, and the
physical driveway line. compute all the rest dynamically, so it responds
to edits without effort.

shouldn't be major behavior changes yet (besides maybe fixing some bugs
involving edits)
2020-07-31 12:49:33 -07:00
Dustin Carlino
ec52adce77 dont infer parking on roads in krakow that dont allow pedestrians 2020-07-31 10:33:59 -07:00
Dustin Carlino
71b68cc639 don't assume off-side sidewalks on dual_carriageway=yes. don't infer
parking on tiny roads. fixes some geometry in krakow. #230

(unrelated: add a debug layer to show parking blackholes, to work on
bike connections)
(also unrelated: better error message for #256)
2020-07-31 10:07:29 -07:00
Dustin Carlino
03796fcd66 introduce the tiny walkable shoulder lane type. pathfinding penalty,
rendering adjustments. #176

the SharedSidewalkCorner geometry looks bad, but acceptable for now.
2020-07-30 13:42:36 -07:00
Dustin Carlino
b57f5081cf bit more, with pad. these hacks were put in before i understood you had
to wrap a widget in a container to make things like padding() work.
2020-07-29 18:51:28 -07:00
Dustin Carlino
de45fb5c07 better Checkbox::colored 2020-07-29 15:11:10 -07:00
Dustin Carlino
2b9123d261 fix border intersection geometry when the road is too short. closes #251
while regenerating, also pick up landuse=grass as a park area. noticed
missing in krakow.
2020-07-28 13:41:12 -07:00
Michael Kirk
5f9e94cfcc
use monospace font to avoid clock layout jitter (#250)
* use monospace font to avoid clock layout jitter

* conventional naming
2020-07-28 10:39:18 -07:00
Dustin Carlino
e1e265db14 tighten up Polygon constructors to enforce an outer ring... in most
cases now.
2020-07-27 14:03:55 -07:00
Dustin Carlino
6a11a13d36 fix the remainder?! of pathfinding bugs for #190. have to make sure the
candidate route has the stops in the correct order. now people correctly
ride a bus off-map!

regen everything now!
2020-07-27 12:36:46 -07:00
Dustin Carlino
e79e186784 ALMOST make people ride the bus off-map, for #190. the pathfinding
gymnastics isn't quite right. still want to commit this though, with it
disabled.

found a few bugs along the way...
2020-07-27 07:54:33 -07:00
Dustin Carlino
a1e1e51b10 obviate need for make_arrow_outline by just putting together a
reasonable make_arrow polygon in the first place
2020-07-26 20:25:38 -07:00
Dustin Carlino
2ec9c6620f get san jose to import [rebuild] 2020-07-26 15:58:14 -07:00
Dustin Carlino
90bb4ac020 change text checkboxes to instead use toggles 2020-07-26 12:06:43 -07:00
Dustin Carlino
fe41928cc8 explicitly allow osm highway types, instead of trying to deny stuff.
part of #231. handles construction much better.
2020-07-25 17:06:09 -07:00
Dustin Carlino
7a00839553 ditch osm-xml, make a new osm parser from scratch based on roxmltree.
skip unreferenced objects, make the output extremely easy to consume.
also fix timers in importer. this helps with #212, although the actual
problem there is weird.

regen everything. some parking lots change a bit, but not horribly, and
that code needs some attention anyway.
2020-07-25 13:52:41 -07:00
Dustin Carlino
fc761ae032 stop bringing in railway=rail for seattle. it's cosmetic only, and it messes up some geometry in south seattle and causes gridlock. not worth it yet. 2020-07-24 20:22:33 -07:00
Dustin Carlino
37630439d1 make the LC penalty understand when not all lanes go to the target road.
and bring in a few more osm fixes for marginal way. [rebuild]
2020-07-23 16:41:52 -07:00
Dustin Carlino
61b5441bd8 also apply some of the new lane choice penalties to CH pathfinding for #217. this is necessary, because we wont opportunistically LC around an uber turn. validated near montlake/520.
also bring in fresh osm with some south seattle fixes... [rebuild]
2020-07-23 14:42:20 -07:00
Dustin Carlino
adbbc8764a much smarter opportunistic lane-changing. almost got #217. but we don't
do opportunistic LCing when approaching an uber-turn, so we need to use
these costs when building the CH also...
2020-07-23 12:39:00 -07:00
Dustin Carlino
d278739f49 fix shameful bug introduced in f1ef02b907. regenerate all data, with fresh krakow osm 2020-07-23 11:51:19 -07:00
Dustin Carlino
38b8557c82 bring in living streets from OSM, interpreting them as normal roads with
access restrictions. makes old town in krakow look much better and
brings in stay healthy streets in seattle. also commit some code related
to footways that isn't exercised yet.
2020-07-21 17:18:56 -07:00
Dustin Carlino
94935f7ae8 radically simpler vehicle turn creation:
- just generate every combo of turns from incoming->outgoing
- stop doing all of the weird bike->bike restrictions. that gets handled
  anyway in later layers like pathfinding costs, opportunistic LCing,
  and picking valid starting lanes
- rely on OSM for filtering out left/right turns from multiple lanes
- why was it useful at all to distinguish Straight from LCing turns?
  scrap that

has the effect of eliminating a class of bugs where a driving lane is
sandwiched between lots of bus lanes and wasn't winding up with an
in/outbound turn
2020-07-21 13:04:34 -07:00
Dustin Carlino
435b4ce8fb track passengers boarding/alighting. further rearrange stop/bus/route
info panels
2020-07-21 08:55:07 -07:00
Dustin Carlino
35b761ec21 get sydney to import 2020-07-20 20:54:08 -07:00
Dustin Carlino
2279f2a873 filter out service roads and footways under construction. also grab
fresh osm. fixes #147
2020-07-20 15:55:27 -07:00
Dustin Carlino
db0b851659 use toggles instead of checkboxes in a few places 2020-07-20 15:02:05 -07:00
Michael Kirk
783f91ae0c
Commuter Patterns: to/from icon overlays current block (#214)
* Commuter Patterns: to/from icon overlays current block

Also, masks the current block

* Code Review: code structure, no behavior change
2020-07-20 14:40:09 -07:00
Dustin Carlino
2f2245e90f add service roads for buses. closes #203 [rebuild] 2020-07-19 15:29:13 -07:00
Dustin Carlino
68d3c5b340 intersection delay is broken down by agent type, not trip mode 2020-07-19 13:22:08 -07:00
Dustin Carlino
233b662bfa actually count transit passengers in throughput analytics 2020-07-19 13:10:24 -07:00
Dustin Carlino
db00c18536 use AgentType, not TripMode, in throughput 2020-07-17 16:39:16 -07:00
Dustin Carlino
c08fd4ae7e UsingBike trips always start at a building 2020-07-17 15:56:58 -07:00
Dustin Carlino
e06faa3c33 make an AgentType enum, stop abusing TripMode. a small first step,
showing agent meters properly
2020-07-17 15:13:36 -07:00
Dustin Carlino
aad5796e0b make sure polygon area is positive. the building classification was
multiplying negatives and winding up with quite a few people...
2020-07-16 21:15:44 -07:00
Dustin Carlino
1c39de50f7 use earcutr for polygon triangulation. this finally allows for
multipolygons with holes!
2020-07-16 15:33:01 -07:00
Dustin Carlino
ccf213ded9 fix pioneer square station snapping. rust-geo's FindClosest has a bug.
>_<
2020-07-16 13:22:05 -07:00
Dustin Carlino
1d89d4b85f tie population count to planning areas in berlin, for #119 [rebuild] 2020-07-16 11:34:46 -07:00
Dustin Carlino
e2d478340b bring in planning area KML for berlin, #119 2020-07-16 11:15:22 -07:00
Dustin Carlino
8a70e105e8 make buses actually start/end at borders [rebuild] 2020-07-16 10:11:43 -07:00
Dustin Carlino
f59ca734e2 also scrape stop->platform associations from stop_areas. fixes cap hill light rail stop finally for #190! the pioneer square south stop is seemingly still messed up 2020-07-15 22:17:45 -07:00
Dustin Carlino
7a1081971d pretty darn robust border matching: by path distance, not some VFD crow.
for #190
2020-07-15 19:04:24 -07:00
Dustin Carlino
891a1746d6 try to figure out border endpts for routes for #190. just visualize
them, dont enforce connectivity yet. so many problems...

regenerate stuff, to unbreak map binary format
2020-07-15 15:35:57 -07:00
Dustin Carlino
0ad14d17ac settle on american spelling of center 2020-07-15 11:37:37 -07:00
Dustin Carlino
ea9c523da4 detect buildings inside areas marked with amenities. picks up franklin high school, for example, which has a huge number of trips in soundcast but wasnt previously marked as an amenity 2020-07-15 10:35:01 -07:00
Dustin Carlino
969135d93b filter out structures inside the Holocaust-Mahnmal for #119; they're tagged as buildings 2020-07-15 09:51:57 -07:00
Dustin Carlino
4a118c8103 import berlin city centre for #119 2020-07-15 09:42:45 -07:00
Dustin Carlino
3f44a2c2af collapse signals with redundant phases, for #8. and fresh osm with a
flurry of fixes last night
2020-07-15 08:53:03 -07:00
Dustin Carlino
eeb70030c2 clean up old experiments from the intersection geometry code.
imperceptible changes to some (already broken) intersections.

also grab fresh osm and a new traffic signal
2020-07-14 17:41:56 -07:00
Dustin Carlino
e691545b63 accidentally uploaded a downtown map with who knows what temporary experiment 2020-07-14 14:51:50 -07:00
Dustin Carlino
7341c0189a plumb through which trips (and people) are affected by an experiment. no
UI exposure yet.
2020-07-14 14:49:04 -07:00
Dustin Carlino
33c5ffef4c first wave of character art from holly!!! 2020-07-13 21:09:36 -07:00
Dustin Carlino
b4b8556f46 just get a few new traffic signals and add parking to south seattle, to
try to make progress
2020-07-13 16:07:35 -07:00
Dustin Carlino
f76b40b8f7 remove old hacks that disabled different checks on certain intersections. new progress fixes the gridlock in a more general way 2020-07-13 15:33:32 -07:00
Dustin Carlino
46789847a7 offstreet parking blocks the road for less time. seeing unrealistic
gridlock near the huge parking lots downtown from this

and fix a bug with spawning bike trips. never OK to silently not
schedule a trip, because it breaks the schedule continuity
2020-07-13 15:17:14 -07:00
Dustin Carlino
0f82c21560 - manually fix a few crazy signals downtown.
- interpret tags to make 3rd Ave bus-only. cars technically allowed
  sometimes, but bus-only is more accurate for now.
- also remove austin from bundled maps. maintaining it has a cost, and
  the point was just to have at least one non-seattle city kept up to
  date.  krakow now satisfies that.
2020-07-13 13:40:46 -07:00
Dustin Carlino
b058d5d926 cargo fmt and regenerate map data 2020-07-13 10:11:48 -07:00
Dustin Carlino
3c816b206d grab fresh osm with some lane fixes downtown. adjust the release slightly to make it easier to use the one-shot importer. [rebuild] 2020-07-12 11:46:52 -07:00
Dustin Carlino
35a63af590 don't lane-change unnecessarily 2020-07-12 10:42:28 -07:00
Dustin Carlino
0c283d0da7 finish up the grand geom stabilization with ring and some docs.
regenerated everything from scratch. one effect is more parking
blockface gets matched onto border roads, but that's fine.
2020-07-11 16:05:26 -07:00
Dustin Carlino
f8ace3c0ab per-city config to let bikes use bus lanes, for #184
while I'm regenerating maps anyway, grab fresh seattle osm with more
lane fixes. and parallelize a slow point matching step -- 10x speedup
for austin
2020-07-11 11:08:23 -07:00
Dustin Carlino
c20e370139 parse OSM bus/psv lanes better. towards #168. need to handle
https://wiki.openstreetmap.org/wiki/Key:lanes:psv next
2020-07-10 20:31:49 -07:00
Dustin Carlino
4919fbf90f autodetect ICs across the whole map, not just when there are complex
turn restrictions

and... enable the new "run the red light" after starting an uber-turn. I
can get to 6am on downtown with a few simple edits now.
2020-07-10 17:39:25 -07:00
Dustin Carlino
4c8ad5a8da determine if a vehicle is currently performing an uber-turn, without
modifying the low-level PathSteps. also make sure to not try LCing when
going into one.

on the cusp of being able to treat complicated intersections as one...
2020-07-10 12:40:51 -07:00
Dustin Carlino
05c47852b0 color buildings with some amenity slightly differently. and grab fresh krakow osm data 2020-07-10 11:20:56 -07:00
Dustin Carlino
585ba4f137 when sidewalks=separate, don't put sidewalks on both sides of a one-way.
this is a complete guess, but seemingly a better one for some sample
cases in seattle and krakow. helps with #178.

also opt krakow into screenshot diff testing; it has enough different
things happening that it's worth watching more carefully how importing
changes affect it.
2020-07-09 18:53:15 -07:00
Dustin Carlino
3639379313 importer option to assume onstreet parking on some residential roads, if OSM doesnt say anything. give 50% of residential roads in krakow some parking. fixes #171
also clean up the seattle sidewalks dataset for now; the matching code
is quite bad, and not planning to use this anytime soon
2020-07-09 15:14:08 -07:00
Dustin Carlino
19409dfc8c add krakow as an optional city. need to specify more customization for #171, and given how much work is focused here, using the one-shot importer no longer makes sense 2020-07-09 14:33:39 -07:00
Dustin Carlino
4340ad585b convert the rest of usize IDs to u32. savings:
maps: 645mb -> 625mb
scenarios: 431mb -> 390mb (before all the u32 optimizations, this as
500mb!!!)
prebaked: 80mb -> 73mb

and while I'm at it, grab fresh OSM, with lots of manual lane fixes,
especially near divided highways
2020-07-09 11:43:34 -07:00
Dustin Carlino
438bc39b86 handle cycleway:both, for #168 2020-07-08 17:59:30 -07:00
Dustin Carlino
6304abdcc8 make updater handle new screenshots format, and rm accidentally uploaded krakow map 2020-07-08 14:55:00 -07:00
Dustin Carlino
7c0aaed370 the first link light rail has left the staton. #numtot 2020-07-08 14:29:02 -07:00
Dustin Carlino
b91d6365e0 dont put sidewalks on a roundabout that's explicitly tagged. fixes #165
this actually disconnects the boyer roundabout (which is tagged
correctly in OSM, but not using the separate sidewalks yet). fine for
now, might add a temporary override later
2020-07-08 09:36:35 -07:00
Dustin Carlino
94512d95b9 change LaneID from usize to u32. savings:
scenarios: 458MB -> 431MB
maps: 676MB -> 638MB
prebaked: 85MB -> 80MB

also fix #163
2020-07-08 08:47:02 -07:00
Dustin Carlino
4aaa41dd13 zip screenshots in dropbox, because managing individual files keeps crashing the daemon 2020-07-07 16:31:52 -07:00
Dustin Carlino
3eb8db3f75 interpret OSM center lines as the physical center of the road (excluding
sidewalks), not as the divider between the two directions. this
dramatically changes geometry everywhere for the better.

thanks to
https://wiki.openstreetmap.org/wiki/Proposed_features/placement for
clear explanations. will be looking next at interpreting this tag.

also temporarily removing screenshots, because uploading individual
files and waiting for dropbox to sync isn't sustainable
2020-07-07 15:52:51 -07:00
Dustin Carlino
476e0e101f easy wins: make BuildingID u32, not usize. maps from 680MB to 676MB.
scenarios from 500MB to 458MB.

considered going down to u16, but pretty sure there are already maps
with >65k buildings
2020-07-06 17:55:02 -07:00
Dustin Carlino
c1f752730c woops, needed to regenerate scenarios a few commits ago, the laneids are off 2020-07-06 16:47:41 -07:00
Dustin Carlino
d52a0e8a35 new scenario mod: force everyone to make a mode change 2020-07-06 16:29:51 -07:00
Dustin Carlino
cac35319b2 handle off-side bike lanes on oneway roads. fixes #140 2020-07-06 14:03:22 -07:00
Dustin Carlino
82345767c9 store a bitset of access restrictions per road. derive zones from this only for editing and pathfinding. this unblocks editing zones 2020-07-06 13:09:49 -07:00
Dustin Carlino
b701fcf114 also dedupe building points coming from a relation, for #130 2020-07-06 07:29:20 -07:00
Dustin Carlino
804896cfda relax some old requirements for bus stops not being on the same lane. i
dont remember what the old issue was. this fixes some light rail stops
downtown, because multiple stops are along a single light rail lane.
2020-07-05 12:34:46 -07:00
Dustin Carlino
f818b3877e fresh osm. was trying to fix some intersections along boren, but didnt make much progress 2020-07-04 18:59:17 -07:00
Dustin Carlino
505311a93f improve the signal synchronization a bit for #8. hardcode a few small
intersections to make the downtown map make more progress. make it
easier to copy OSM node IDs.
2020-07-04 08:53:13 -07:00
Dustin Carlino
628ee0fa86 dirt simple method to swap the order of pairs of two-phase signals to
try to synchronize them better. towards #8. not regenerating screenshots
because it's late and there'll be more screenshot churn tomorrow anyway
2020-07-03 21:55:54 -07:00
Dustin Carlino
3a7a75e011 for the heuristically generated traffic signals, handle roads with
sidewalks on only one side. part of #8
2020-07-03 19:50:31 -07:00
Dustin Carlino
575dcfb782 snap bus vehicle/sidewalk positions to the correct side of the road and
a more appropriate lane. also fix #122
2020-07-03 19:00:20 -07:00
Dustin Carlino
ac88a96f61 use a different icon for train stops 2020-07-03 17:49:36 -07:00
Dustin Carlino
56cb59c3ac rip out gtfs code, cutover to osm. will revisit this later; gtfs and osm probably disagree on routes and stops, and gtfs has schedule. but for now, just osm. 2020-07-03 17:33:32 -07:00
Dustin Carlino
0dc42d7e19 use bus stops from OSM instead of gtfs. expose the stop name and the
driving position in the info panel. some issues with the driving
positions, but this is the way forward for light rail.
2020-07-03 15:22:13 -07:00
Dustin Carlino
1175826f3d scrape bus info from OSM into the RawMap layer. don't use it yet. 2020-07-03 12:00:42 -07:00
Dustin Carlino
8b006c037d slim down sidewalk corners, at the repeated urging of julian 2020-07-02 17:12:08 -07:00
Dustin Carlino
3acec91f51 get berlin import working for #119. just had to allow a few more turn
restrictions previously unencountered and deal with weird geometry.
and add some hints to docs for #118.
2020-07-02 09:56:48 -07:00
Dustin Carlino
54b4bd318e way simpler approach for two-step walking paths. fixes the silly loops. 2020-07-01 11:12:47 -07:00
Dustin Carlino
9b42d27e85 finally enable two-step pathfinding for pedestrians too. the weird hack
making this work: pedestrians will sometimes add an extra little
back-and-forth in their paths
2020-06-30 14:52:57 -07:00
Dustin Carlino
2c7440b03f start representing access restrictions by mode 2020-06-30 13:15:57 -07:00
Dustin Carlino
1617a3d3c1 skip missing maps in the city picker 2020-06-29 09:36:37 -07:00
Dustin Carlino
a103c84a40 cluster private roads into zones. don't surface in the UI yet [rebuild] 2020-06-28 18:11:13 -07:00
Dustin Carlino
bb3da1f8eb Make a very primitive form of adaptive traffic signal phases. It should
be easier to write better policies now; this mostly does the work of
changing the map model and UI to handle variable timing. A small step
towards #91
2020-06-28 10:20:47 -07:00
Dustin Carlino
2733d3e791 pull down fresh OSM data, with some fixes along mlk. handle west seattle
bridge being tagged differently. also note some streets in CHAZ/CHOP
disappeared, because they're tagged as pedestrian ways currently. also
forced to pull down fresh traffic signal data to keep lakeslice running
2020-06-27 22:27:03 -07:00
Dustin Carlino
ae6c099bd5 start bringing in private broadmoor roads. omit from the CH, so trips will just fail without a path for now. 2020-06-27 16:19:48 -07:00
Dustin Carlino
455b17faef start playing around with manchester 2020-06-27 12:32:03 -07:00
Dustin Carlino
eab0988bd8 hello light rail! just import the tracks, represent as a new lane type.
make clipping handle starts and ends separately
2020-06-26 16:47:18 -07:00
Dustin Carlino
d254d49591 discard way less buildings, and match driveways away from intersections
more carefully
2020-06-25 16:34:44 -07:00
Dustin Carlino
07bf9725d4 use a regularly spaced marking for construction instead of the weird
stripes. clean up the hack in the shader
2020-06-24 08:36:47 -07:00
Dustin Carlino
626636ece7 remove turn lookup. have always found myself using the src lane. edits invalidated it anyway 2020-06-23 18:36:45 -07:00
Dustin Carlino
684bf72dde recalculate stop signs when lanes change; construction->driving was
breaking the west seattle bridge. fixes #68. include a built-in proposal
to fix the bridge. ;)
2020-06-23 17:46:35 -07:00
Dustin Carlino
d707969af5 remove mt_baker map and replace it with a much wider south_seattle map,
per request [rebuild]
2020-06-23 16:41:36 -07:00
Dustin Carlino
27d3ec3538 fix dead dropbox links in input/. these shouldnt happen anymore. 2020-06-22 23:11:49 -07:00
Dustin Carlino
0c63062034 another attempt at fixing the updater [rebuild] 2020-06-22 17:04:01 -07:00
Dustin Carlino
f3d1ebe70e link to new release 2020-06-22 07:49:29 -07:00
Dustin Carlino
e46f118d27 ready the alpha launch... 2020-06-21 17:49:52 -07:00
Dustin Carlino
506077a7b7 fix road labels. enable them by default! 2020-06-20 15:26:54 -07:00
Dustin Carlino
be4daf421c figure out why some dropbox links are stale [rebuild] 2020-06-20 14:04:48 -07:00
Dustin Carlino
b231809ba2 cap hill's rainbow crosswalks! [rebuild] 2020-06-20 10:05:47 -07:00
Dustin Carlino
f5385b83df restore raw throughput counts deleted in
ca33695431, flagged off, for further
exploration of compressed representations. also, apparently lakeslice
prebaked results have been missing for a while due to dropbox snafu! fix
2020-06-19 11:04:07 -07:00
Dustin Carlino
50de52439f tune wording of tutorial. finally introduce the drone [rebuild] 2020-06-15 17:33:37 -07:00
Dustin Carlino
bfaefe1df3 implement new, better word wrap. remove the old way. applied everywhere
except tutorial instructions, since those need rewriting soon anyway
2020-06-15 11:42:09 -07:00
Dustin Carlino
64fba66e42 add links to proposal write-ups and adjust the UI for that page 2020-06-14 13:04:28 -07:00
Dustin Carlino
5cda64d6fd adjusting start/end marker icons 2020-06-14 12:32:44 -07:00
Dustin Carlino
16bc96c401 try adjusting the offstreet spots in downtown to be a fraction of the
initial demand
2020-06-13 15:38:04 -07:00
Dustin Carlino
42ea64a680 changing parking seeding to fill in private spots first. makes progress
in larger maps. i made sure the optimize challenge is still interesting
after this change.
2020-06-13 15:14:23 -07:00
Dustin Carlino
d92f4536e2 introduce superblock proposal [rebuild] 2020-06-12 21:14:09 -07:00
Dustin Carlino
14c7518787 break down delay by agent 2020-06-12 11:37:12 -07:00
Dustin Carlino
dfb9e7e349 move gameplay meters to the side. also start capturing logs for linux
and mac too
2020-06-11 14:55:56 -07:00
Dustin Carlino
727bd3deb9 pick better colors for borders 2020-06-09 18:23:22 -07:00
Dustin Carlino
4975260911 adding challenge task description, independent of cutscene 2020-06-08 15:17:40 -07:00
Dustin Carlino
03c63ab34d working on new cutscene UI 2020-06-08 13:25:21 -07:00