Dustin Carlino
8d0718d37d
On the web, modify the current URL as we change maps and scenarios. ( #509 )
2021-02-12 15:14:09 -08:00
Dustin Carlino
03538faf3f
A few traffic signal cleanups: ( #512 )
...
- Stop alerting when slow pedestrians can't make it through the minimum
crosswalk time
- Simpler iteration style in lagging_green.rs
- Totally delete the old brute force signal config code; it never worked
well, and the improved heuristics eliminate the need for it anyway
- Make a Duration::max function and use it in one case
2021-02-12 15:10:32 -08:00
Dustin Carlino
aacc0fa4d5
Fix a crash that happens when you load edits that transformed a stop
...
sign into a traffic signal.
And fix a few cargo fmt issues
2021-02-12 13:47:10 -08:00
Dustin Carlino
46caf98779
When selecting pedestrians or bicycles, pick the one closer to the cursor.
2021-02-11 15:09:58 -08:00
Dustin Carlino
4c1d610e4f
Restore screenshots for Great Kneighton
2021-02-11 15:09:06 -08:00
Dustin Carlino
fd73166292
Prep to import actdev again, and fix build break in game/src/lib
2021-02-11 14:35:32 -08:00
Dustin Carlino
21573e09f1
Delete all of the actdev maps. I'm going to do this over again and just
...
use the site name as the city, instead of picking the "closest" major
city. This is introducing too much friction in automation.
cyipt/actdev#65
There will be a few awkward results -- cambridge gets renamed, and lcid
gets disassociated from leeds. Worth it for now.
2021-02-11 14:27:28 -08:00
Dustin Carlino
e333838560
If you start with --dev and wind up on an empty map, time starts at 6am. When you load another empty map, do the same and jump to daytime.
...
There is a little inconsistency still: say you're simulating a scenario
(starting at midnight). If you change the scenario to none, it'll stay
night, but if you then change maps, it'll jump to day.
2021-02-10 14:10:42 -08:00
Dustin Carlino
a5091a4f18
Clean up unused ctx param from SandboxMode::async_new and simple_new
2021-02-10 14:03:06 -08:00
Dustin Carlino
789b300963
Add an about button to the blog gameplay mode. cyipt/actdev#66
2021-02-10 10:48:52 -08:00
Dustin Carlino
b38b7da8bb
Add a 'blog' gameplay mode, which disables going back to the title screen, switching maps, etc. cyipt/actdev#66
2021-02-10 09:52:26 -08:00
Dustin Carlino
7c0bac236a
Bring in study areas for all actdev sites. Automatically show them when launching in actdev mode. cyipt/actdev#65
2021-02-10 08:35:08 -08:00
Dustin Carlino
3b893302ed
Support fractional zoom levels in --cam, like 16.35/51.607943/-1.261117
2021-02-09 19:41:35 -08:00
Dustin Carlino
a6fc030db4
Add a CLI flag 'router' to map actdev site name to the map name. For https://github.com/cyipt/actdev/issues/28
2021-02-09 16:14:34 -08:00
Dustin Carlino
1b1a4e99c7
Adjust procedurally generated building setback. Generate for most of the suburban actdev maps. https://github.com/cyipt/actdev/issues/65
2021-02-09 16:04:40 -08:00
Dustin Carlino
da76c306ea
Apply an initial camera zoom when passing the --cam param. For ( #503 )
...
https://github.com/cyipt/actdev/issues/44
2021-02-08 18:12:58 -08:00
Michael Kirk
4b665c871d
update geo related deps. ( #508 )
...
geo-types to 0.7
geo to 0.17 which removes redundant old geo used by polylabel
geojson to 0.22
2021-02-08 16:34:56 -08:00
Dustin Carlino
4235d9f994
When importing maps, optionally add in extra buildings from a GeoJSON
...
source to augment the ones in OSM. For
https://github.com/cyipt/actdev/issues/53 -- sometimes the buildings
just haven't been mapped in OSM yet, other times the buildings are part
of a future development site. In either case, we can procedurally
generate some houses, so this is a way to include them in the map.
Start doing this for Chapelford. But first, adjust the generated house
sizes -- they were WAY too tiny.
Also prep for [rebuild] [release]
2021-02-07 13:56:26 -08:00
Dustin Carlino
06ab55da00
Prune auto-placed buildings that overlap each other. https://github.com/cyipt/actdev/issues/53
...
And write the result as geojson. This process could become a map
importer phase, but I like checking the intermediate results, and it's
not clear yet how often we'd be using this.
2021-02-07 11:50:30 -08:00
Dustin Carlino
c847207bb8
Prune auto-placed buildings that wind up on top of existing parts of the
...
map. https://github.com/cyipt/actdev/issues/53
2021-02-07 11:29:02 -08:00
Dustin Carlino
29fb271afc
Automatically generate houses along empty residential roads, for https://github.com/cyipt/actdev/issues/53 . Still need to prune out houses that hit existing map features, and save the output.
2021-02-07 10:55:16 -08:00
Michael Kirk
3449d49b6d
WebGL 1.0 support, with automatic fallback for Safari/iOS ( #504 )
...
#506
2021-02-06 19:04:43 -08:00
Michael Kirk
3a5e63aaff
More helpful loading screen ( #496 )
2021-02-04 10:35:31 -08:00
Dustin Carlino
73e405e382
Upgrade most dependencies
2021-02-03 18:13:06 -08:00
Dustin Carlino
7855d26a6a
Different color scale for showing less/more path counts. #237
2021-02-03 11:59:41 -08:00
Dustin Carlino
ba2500c131
Create the path cost tuner. #237 , #494
...
This lets you live-tune routing parameters, then see how it affects the
total number of routes that cross every road, relative to the baseline
of the original parameters. We can also use it in the future to do the
same thing, comparing before/after some map edits.
2021-02-03 11:34:15 -08:00
Dustin Carlino
1ac62caa96
Use the new button API in the lane editor to more cleanly handle disabled buttons.
2021-02-03 10:03:26 -08:00
Dustin Carlino
32bcfbe738
Plumb in the tuned routing params. When they're not the defaults, automatically fallback from CH to Dijkstra's. #494
2021-02-02 15:20:06 -08:00
Dustin Carlino
eebe7a098a
Start a UI with some sliders for tuning existing params of route cost functions. No effect yet. #494
2021-02-02 14:39:39 -08:00
Dustin Carlino
35f2beaa76
Start a new debug tool to explore how different routing cost functions work. #494
...
It's just a stripped down version of AgentSpawner right now.
2021-02-02 13:53:46 -08:00
Dustin Carlino
02b90741d6
Draw 'STOP' on stop signs. Fixes #450 ( #492 )
2021-02-01 16:47:53 -08:00
Michael Kirk
38dc60fbea
Add method to GeomBatch to prefer cached flavor of loading svg. ( #493 )
...
It was my intention when introducing the cached vs uncached flavors that
we'd prefer the cached flavor for anything referencing bytes from a
file, like icons and UI glyphs, and that we'd only use the uncached
flavor for dynamic things like "face" generation.
2021-02-01 16:24:56 -08:00
Dustin Carlino
8a856d6608
Include transit riders in /data/get-agent-positions. #392
2021-02-01 12:27:55 -08:00
Dustin Carlino
71bd7a37fc
Start in the daytime when starting on an empty map. ( #486 )
2021-02-01 11:10:30 -08:00
Dustin Carlino
ba5ea18101
Filter throughput layer by mode. #456
2021-02-01 11:02:10 -08:00
Dustin Carlino
3e40686a6b
Fix a bunch of links after the repository renaming.
2021-01-31 15:50:48 -08:00
Dustin Carlino
8f0c027bb0
Fix critical bug causing a crash only in the .zip releases, where widgetry icons aren't present relative to the data/ directory.
2021-01-30 14:20:28 -08:00
Dustin Carlino
d2a1b27ba2
Add a new CLI flag / query param to initially center the map somewhere, using OSM's <zoom level>/<latitude>/<longitude> format. cyipt/actdev#44
...
Not handling zoom yet, but centering on a point works so far.
Example for montlake map: --cam=18/47.63234/-122.30656
2021-01-27 14:29:23 -08:00
Dustin Carlino
44e1f6a578
Slightly less awful building people info panel: Two-column table of person ID and departure time
2021-01-27 13:45:09 -08:00
Dustin Carlino
4cb306a184
Count the number of people with a car or bike per building. cyipt/actdev#44
2021-01-27 13:41:53 -08:00
Dustin Carlino
341ce834e3
Based on startup params, display an extra 'study area' on the map. cyipt/actdev#44
2021-01-27 13:00:48 -08:00
Dustin Carlino
172f258ce3
When navigating stages in the signal editor by keyboard, include the header when autoscrolling.
2021-01-27 09:10:16 -08:00
Dustin Carlino
e306a48994
Fix prev/next buttons on the trip table; the keybindings got inverted during the refactor.
2021-01-27 08:57:47 -08:00
Dustin Carlino
9d751afc24
Increase the amount of offstreet parking in Rainier Valley. #446
...
At long last, we have the 3rd Seattle map that finishes without
gridlock! Hoping to use it for this case study on signal timing
maximums...
2021-01-26 18:15:34 -08:00
Dustin Carlino
b11ebad635
Improve icon scaling in person info panels.
2021-01-26 13:48:56 -08:00
Dustin Carlino
f80cf201a8
Document that starting the web client with a scenario works. I'm almost
...
kind of disappointed that I didn't get to implement this.
2021-01-26 13:05:39 -08:00
Dustin Carlino
f69335edf0
Let individual maps override the street parking length. #457
...
Now regenerate all map data, because the schema changed. Also had to
revert part of the last commit to unbreak transit route snapping in
Berlin.
2021-01-25 12:36:49 -08:00
Michael Kirk
07738d2cef
popup and persistent split to spec ( #480 )
...
* introduce "pill" to be explicit about fully rounded, vs a "None" radius
* no-op transition to CornerRadii
* popup button to spec
* restore "fully rounded" layout behavior
* use plain light to better show highlight
* persistent split to spec (for day theme anyway)
* remove night-theme colors for speed panel
* fixup docs for pill
* CR: remove unnecessary `row`
* CR: remove outdated doc
* import order
2021-01-24 15:32:28 -08:00
Dustin Carlino
9aa18a35e6
rename color scheme to be more clear with day/night mode [rebuild] [release]
2021-01-24 14:19:30 -08:00
Dustin Carlino
ab801b8ae1
Vertically line up the header for layer panels.
2021-01-24 13:23:30 -08:00
Dustin Carlino
7d8c818eea
Remove the last traces of the old orange hovering color.
2021-01-24 13:09:37 -08:00
Michael Kirk
7d6edbb58c
use "disabled" rather than draw_svg_transform
2021-01-24 10:34:29 -08:00
Dustin Carlino
bd9c44d18d
Enable the day/night color switch by default! Ensure we're in day mode
...
for devtools and taking screenshots.
2021-01-23 17:09:57 -08:00
Dustin Carlino
f93a30ea04
Recreate panels whenever the color scheme changes, whether that happens from fiddling with settings or the day/night toggle happening.
2021-01-23 16:35:09 -08:00
Michael Kirk
1a3d1b4cdb
reconcile new button styles w/ dark theme ( #475 )
2021-01-22 21:21:38 -08:00
Dustin Carlino
4446d99fad
Merge branch 'mkirk/btn-fix' of https://github.com/michaelkirk/abstreet into michaelkirk-mkirk/btn-fix
2021-01-22 21:13:13 -08:00
Michael Kirk
3855f284b8
Fix hotkey conflict
...
Even though we *usually* want these hotkeys for next/prev, sometimes we
don't, and the damage of forgetting to add them to a new pager is less
than the damage done if we forget to remove them and clobber something
important like the speedup/slowdown controls.
2021-01-22 15:31:33 -06:00
Michael Kirk
87fe16b6ad
use proper button in pager
...
broken in the recent button overhaul
2021-01-22 15:30:42 -06:00
Michael Kirk
1990642dee
More conventional button names
...
This was all done by search/replace, and should not affect
functionality.
Goals:
- be consistent with the figma terminology.
- consistently order:
"btn_{solid|outline|plain}_{dark|light}_{text|image|dropdown|back|etc}"
2021-01-22 13:11:42 -06:00
Michael Kirk
1325c115a1
cache SVG's when reasonable. Clarify when they aren't cached.
2021-01-22 09:54:50 -06:00
Michael Kirk
4e48de6185
compile in asset bytes for widgetry assets
2021-01-22 09:54:50 -06:00
Michael Kirk
7bc9145ce9
bake-in widgetry assets: image_path -> image_source::{Path, Bytes}
2021-01-22 09:54:50 -06:00
Dustin Carlino
2505d64e8b
Always use ctx.style() to construct buttons. Remove the indirection through app's colorscheme.
2021-01-22 07:45:05 -08:00
Michael Kirk
ca93d438db
fixup tabs
2021-01-22 07:44:46 -08:00
Dustin Carlino
c9c6f240ae
Remove timer.{note, warn, error} in favor of the log crate. #262
...
Originally, the intention of the deleted calls was to not interrupt
Timer progress bars with warnings. But the output of things like the
importer is impossible to read anyway. Strongly considering explicitly
sending logs and timing info to separate places and using something like
multitail for live progress.
Unplumb timer from LOADS of places that just needed it for logging.
2021-01-21 19:22:02 -08:00
Dustin Carlino
dc19d11f64
Make the file management menu in edit mode occupy the center of the screen.
2021-01-21 15:36:21 -08:00
Michael Kirk
02e3235de2
adapt tabs to new button designs
2021-01-21 15:25:46 -08:00
Michael Kirk
2b8511251a
fix scaling: replace remaining buttons with baked-in-text
2021-01-21 15:25:46 -08:00
Michael Kirk
90b6da7265
apply new delete icon, fix button spacing in signal editor
2021-01-21 15:25:46 -08:00
Michael Kirk
600d91896e
remove redundant edit.svg, use pencil.svg
2021-01-21 15:25:46 -08:00
Michael Kirk
116edc5423
Fix missized lane editing tools
2021-01-21 15:25:46 -08:00
Michael Kirk
6920d324f7
v-align alert
2021-01-21 15:25:46 -08:00
Michael Kirk
4454b4a50f
capture "disabled" pattern
2021-01-21 15:25:46 -08:00
Michael Kirk
4989887117
remove final references to Btn
2021-01-21 15:25:46 -08:00
Michael Kirk
542600da2f
Replace Btn::fg_text.inactive
2021-01-21 15:25:46 -08:00
Michael Kirk
2b8e77de9f
manual replace of remaining hotkey Btn::text_fg
2021-01-21 15:25:46 -08:00
Michael Kirk
0cf49d2fc6
proper color for "Trash" (delete) buttons
2021-01-21 15:25:46 -08:00
Michael Kirk
1f75145a8a
introduce btn_next/btn_prev, parameterize disabled
to simplify common usage
2021-01-21 15:25:46 -08:00
Michael Kirk
b924d40daa
regex update Btn::text_fg simple hotkeys, inline &str
2021-01-21 15:25:46 -08:00
Michael Kirk
a2c5ce0fb3
regex upgrade Btn::text_fg: No hotkeys, inline &str
...
Btn\:\:text_fg\("([^"]*)"\).build_def\(ctx, None\)
ctx.style().btn_secondary_light_text("$1").build_def(ctx)
2021-01-21 15:25:46 -08:00
Michael Kirk
bfb190a730
manually update remaining Btn::text_bg2
2021-01-21 15:25:46 -08:00
Michael Kirk
a5b6dca62a
replace Btn::text_bg2 w/ regex
...
In case I have to revisit, here's the regex I used:
Btn::text_bg2\(([^)]*)\)*.build_def\(ctx, ([^()]*)\)
ctx.style().btn_primary_dark_text($1).hotkey($2).build_def(ctx)
And something like this for the "no hotkey" case
Btn::text_bg2\(([^)]*)\)*.build_def\(ctx, None\)
ctx.style().btn_primary_dark_text($1).build_def(ctx)
2021-01-21 15:25:46 -08:00
Michael Kirk
7270ff31af
use icon button for "jump to time"
2021-01-21 15:25:46 -08:00
Michael Kirk
652c35b220
replace Btn::text_bg
2021-01-21 15:25:46 -08:00
Michael Kirk
54e937408a
remove remaining Btn::plaintext
2021-01-21 15:25:46 -08:00
Michael Kirk
f382c08d55
replace text arrows with svg arrows for traffic signal editor
2021-01-21 15:25:46 -08:00
Michael Kirk
3febbf2f81
destructive primary for destructive action
2021-01-21 15:25:46 -08:00
Michael Kirk
0f476b6a36
pagination uses icon button
2021-01-21 15:25:46 -08:00
Michael Kirk
fc6c18e608
replace Btn::SVG
2021-01-21 15:25:46 -08:00
Michael Kirk
69e31029ac
replace Btn::svg_def
2021-01-21 15:25:46 -08:00
Michael Kirk
ea39fecf03
replace Btn::pop_up
2021-01-21 15:25:46 -08:00
Michael Kirk
0a612601ca
icon buttons should be same height as text buttons
2021-01-21 09:08:41 -08:00
Michael Kirk
c013c8d342
replace remaining Btn::custom
2021-01-21 09:08:41 -08:00
Michael Kirk
5b6c88d3b4
more button progress and fixups ( #465 )
...
* replace Btn::txt with new ButtonBuilder styles
* fixup! replace Btn::text_bg1 with ButtonBuilder (btn_primary_light)
2021-01-20 14:11:28 -08:00
Michael Kirk
11ffef5716
replace Btn::text_bg1 with ButtonBuilder (btn_primary_light)
2021-01-19 17:40:35 -08:00
Michael Kirk
e1ec69f9f7
Replace Btn::plaintext_custom with new ButtonBuilder
2021-01-19 17:40:35 -08:00
Michael Kirk
743b74510d
replace Btn::close with new style ( #463 )
2021-01-19 16:17:11 -08:00
Michael Kirk
d7445d889e
button revamp groundwork ( #459 )
2021-01-19 10:10:18 -08:00
Dustin Carlino
a6c61e4fae
Use Great Kneighton study area for Cambridge, not Trumpington. And bring
...
in Chapelford too. #449
2021-01-17 17:35:11 -08:00
Dustin Carlino
8928256909
Enable the scenario modifiers UI for all scenarios in sandbox mode, not just the Soundcast-based ones. No reason not to do this earlier; I originally was working on this tool for a specific purpose.
2021-01-14 09:28:28 -08:00
Dustin Carlino
e233012ee8
Use a full modal to select a scenario. During the button UI audit, we
...
realized a dropdown doesn't make sense. A larger panel gives room to
explain what the choices mean.
2021-01-14 09:05:44 -08:00
Robin Lovelace
4696134871
Change dropdown menu title, close #453
2021-01-14 08:23:57 -08:00
Dustin Carlino
38fa22d4b2
Include the importer in the release again -- I accidentally stopped
...
about a month ago and noticed in #452
2021-01-13 10:52:07 -08:00
Dustin Carlino
ff598f21a3
Add a new layer to star buildings. Autosave it. While trying out changes
...
for #446 in the UI, I kept losing track of the two buildings I'm
focusing on. A player-defined list of shortcuts seems generally helpful.
2021-01-12 19:22:50 -08:00
Dustin Carlino
f680de73aa
Remove London from screenshot testing, and use Cambridge instead. #449
...
This will make it easier to visually track the progress improving the
import. Originally London was added to have one left-hand driving map
under the test, but Cambridge works for that too, and it also includes
separate cycleways.
Also fix a crash when trying to draw very very tiny arrows.
2021-01-12 12:30:21 -08:00
Dustin Carlino
ddc49e14b4
Add a signal editor tool to adjust the timing to some approximation of https://nacto.org/publication/urban-street-design-guide/intersection-design-elements/traffic-signals/signal-cycle-lengths/ for #446
2021-01-11 17:16:01 -08:00
Dustin Carlino
9f72de9434
Fix initial camera loading for game, broken in b4e72debcf
. Booleans are hard.
2021-01-11 10:32:51 -08:00
Dustin Carlino
0542edc61e
Don't crash when a trip succeeds now, but not in the prebaked results. [rebuild] [release]
2021-01-10 12:13:02 -08:00
Dustin Carlino
b4e72debcf
Make the game crate also start by asynchronously loading any map, in the common case of starting with a map as an argument. #344
...
Now we can remove montlake.bin from the wasm also, bringing game down to
just 18MB!!!
2021-01-09 15:51:03 -08:00
Dustin Carlino
26f3726abd
gzip two large SVG character files to trims down wasm size more for #377 . game from 31MB to 24MB!
...
I didn't have to do anything to gunzip, because usvg is such a magical
crate that it already has flate2 support baked in.
2021-01-09 09:26:41 -08:00
Dustin Carlino
fea3ebbe5b
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
Dustin Carlino
b487678ee0
Delete all out-of-date manual overrides for traffic signals, and make it
...
a hard error when they become out-of-date going forward.
Better heuristics make some of these unnecessary. And now the the JSON
files are in this repo, updating files manually when pulling down new
OSM data becomes less tedious.
2021-01-07 12:24:07 -08:00
Dustin Carlino
65b2b581fa
Attempt to take many screenshots of one map at different zoom levels for Leaflet. Various bugs, but progress. #440
2021-01-06 16:33:53 -08:00
Dustin Carlino
92be9c57ed
Optionally tile screenshots at smaller dimensions than the window. #440
2021-01-06 10:52:22 -08:00
Dustin Carlino
4cf133cc32
Make the new screencaps preserve alpha properly by switching to
...
premultiplied alpha. See option 1 of
https://stackoverflow.com/a/24380226
Upload the "new" screenshots (and lakeslice map)!
2021-01-05 18:28:30 -08:00
Dustin Carlino
7f0cdace5a
Use OpenGL to take screenshots instead of scrot. Benefits:
...
- Simple -- one OpenGL call and feeding to the awesome image crate
- Faster -- seemingly don't need the sleep() for whatever vsync problems
- Portable -- doesn't use the Linux scrot tool
- I can switch windows and wiggle the cursor with impunity while this runs
One disadvantage: screencaps in S3 are now slightly larger PNGs, because
for some reason, the image/gif feature is super slow, even in release
mode.
For now, this makes the process of screenshot diffing map changes
easier. But it also might help with producing raster tiles for Leaflet. #440
Also, had to regenerate lakeslice because of the previous change --
it had an old adaptive signal baked in.
2021-01-05 14:58:31 -08:00
Dustin Carlino
6346302338
Remove the adaptive traffic signal experiment, now that Bruce's variable signals work. The adaptive case was added as a proof-of-concept, and its behavior is subsumed by the variable ones. Fixes #124
2021-01-05 13:06:44 -08:00
Dustin Carlino
802e020520
Import a SUMO network, transform it into an ABST map. So far, this gets
...
lanes and intersections displaying, but with lots of problems.
2021-01-05 12:44:38 -08:00
Dustin Carlino
e99def9124
Switch all error handling to anyhow. Nothing consumes our code as a
...
library yet, so this is a step forward from string errors. Manually
tested how errors show up (including the nice with_context bit).
2021-01-05 11:35:03 -08:00
Dustin Carlino
cd7dca87d7
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
Dustin Carlino
bc3c3dfd6c
Rename phase -> stage in the JSON traffic signal format. Meant to do this a long time ago. #295
...
Make this schema change backwards compatible for player edits.
2021-01-04 11:18:17 -08:00
Dustin Carlino
dedb041bdb
Move CameraState to map_gui. Now widgetry has no dependency on abstio! #253
2021-01-04 10:39:15 -08:00
Dustin Carlino
bfa208ce6a
Parameterize widgetry on a way to read SVG files. This is one of the last steps to remove the dependency on abstio. #253
2021-01-04 09:53:24 -08:00
Dustin Carlino
d529ae2e5c
Upgrade usvg and rand
2021-01-04 09:19:54 -08:00
Dustin Carlino
965d999199
Upgrade misc other dependencies
2021-01-03 20:01:27 -08:00
Dustin Carlino
2945913fb3
Upgrade rand
2021-01-03 19:48:03 -08:00
Dustin Carlino
5c04923dff
Split abstio crate out from abstutil. #253
...
widgetry, geom, and abstutil may wind up on crates.io in some form to
let other projects use widgetry. abstio has A/B Street-specific tricks
for reading data on native/web. Note widgetry still depends on abstio,
will figure out how to clean that up next.
2021-01-02 10:28:00 -08:00
Dustin Carlino
795c6bebb1
When producing GeoJSON, represent Polygons that arent Rings (like from SVGs) as a MultiPolygon of every pre-calculated triangle. #440
2021-01-01 15:33:11 -08:00
Dustin Carlino
302ec94e3d
Try exporting the zoomed-in rendering of a map to geojson. #440
...
This approach has some manual effort and it's not capturing everything
yet, but it's a start.
2021-01-01 12:46:25 -08:00
Michael Kirk
acadad8bdf
fetch US census data from a hosted FlatGeoBuf ( #432 )
2020-12-31 16:20:32 -08:00
Dustin Carlino
9c63d9a181
Make a quick way of marking roads in the UI, dumping to a list, then
...
later overriding a .osm file with tags for these roads. This is a way to
test the effects of making simple OSM changes locally before
upstreaming.
Also handle repeated merging collapsing one of the roads. Not 100% what
happens here, but skipping the collapsed road works fine. The scary
Montlake intersections now look great with all the merging done, so
upstreaming the change! #114
2020-12-30 18:31:39 -08:00
Dustin Carlino
de4b026920
More turn restriction preservation... #114
2020-12-30 10:01:23 -08:00
Dustin Carlino
172dbf359c
Try merging intersections with concave hull instead. #114
2020-12-28 16:05:41 -08:00
Dustin Carlino
17665a3d18
Prototype a simple idea for calculating merged intersection geometry using the original attempted shapes. #114
2020-12-28 15:43:48 -08:00
Dustin Carlino
32a3159d19
Express AmenityType as a proper enum.
2020-12-28 12:18:29 -08:00
Dustin Carlino
001aa836d2
Organize assets that're baked into widgetry. They don't belong in the
...
data/ directory, because they're statically bundled; they're not
actually read from the filesystem. #253
Two SVGs get duplicated between widgetry and abst assets -- dont_walk
and arrow_drop_down.
2020-12-28 10:40:55 -08:00
Dustin Carlino
af5811c33c
Lift Cached to widgetry
2020-12-26 14:38:43 -08:00
Bruce
3be45b8221
Add a Variable phase ( #433 )
...
* Add a Variable phase
Variable provides a min duration, a delay duration, and an additional duration. The maximum cycle time is min + additional. Once min has been exhausted, if there is demand, the cycle is extended by delay until there isn't any demand or the additional duration has been consumed.
#295
2020-12-24 12:33:47 -08:00
Dustin Carlino
0a25d92e53
Include the intersection geometry in the shared-row export for 3D Street integration
2020-12-22 14:31:12 -08:00
Dustin Carlino
be589f7ef4
Switch A/B Street over to the new web loader with a progress bar. Initializing the .wasm may take a little longer, but it's not noticeable, and the progress bar for the large upfront download is really helpful. #377
2020-12-20 11:07:03 -08:00
Dustin Carlino
0bcf130b80
Lift the generic table to widgetry
2020-12-19 16:06:30 -08:00
Dustin Carlino
2baa0fa094
Update links to all the deployed web stuff
2020-12-18 13:02:36 -08:00
Dustin Carlino
d917008f2e
Lift SimpleState to widgetry, since it doesn't depend on any details of
...
the App at all. Use it in the experiment a bit.
2020-12-17 12:23:57 -08:00
Dustin Carlino
0831d112ed
Simplify the trace API even more -- everyone but the simulation deals with unmodified paths and wants the original start
2020-12-16 16:14:33 -08:00
Dustin Carlino
d00e7f7bca
Simplify path trace API -- nobody needs dist_ahead. I think that was originally meant to be a performance trick to only draw the next little bit of a route
2020-12-16 16:09:11 -08:00
Dustin Carlino
b39aa2a45f
Expose continuous distance crossed for pedestrians. #392
2020-12-16 15:09:06 -08:00
Dustin Carlino
f36854cc5b
Simplify TripPhase now that PathRequest is embedded in the Path
2020-12-16 13:02:59 -08:00
Dustin Carlino
7efd2de939
Remove unused census generation UI from hackathon. We'll recreate this later, onc it's more clear what params there are to tune, and where the params will live. #424
2020-12-16 12:57:19 -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
2b4b92664e
Much needed refactor: map.pathfind() returns a Result, stating the failed request. Many call sites were cloning the request and doing this anyway.
2020-12-16 10:06:12 -08:00
Dustin Carlino
16392a461f
Refactor: GeomBatch::load_svg directly takes EventCtx or GfxCtx. The prerender struct should ultimately not be exposed outside of widgetry.
2020-12-15 11:44:58 -08:00
Dustin Carlino
02dd3613cd
Refactor: Rename txt.render_to_batch to txt.render_autocropped, and make
...
it take EventCtx or GfxCtx
2020-12-15 11:35:40 -08:00
Michael Kirk
375e0caeb8
integrate census scenario ( #426 )
...
#424
2020-12-14 20:27:57 -08:00
Michael Kirk
8b9b3ce2b1
census areas import ( #425 )
...
#424
2020-12-14 17:48:47 -08:00
Dustin Carlino
3c2c3cda5a
Output lane width as feet in the Streetmix export, not meters.
...
Also few unrelated tiny wording changes in the experiment
2020-12-14 16:13:32 -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
Michael Kirk
d0f093d95a
fix compile error ( #420 )
2020-12-10 15:47:00 -08:00
Dustin Carlino
77a37f897b
Wire together a UI to generate census-based scenarios
2020-12-10 09:35:50 -08:00
Dustin Carlino
dbbfe18076
Link to OSM objects from the area info panel, to help debug water polygons easily
2020-12-09 16:41:08 -08:00
Dustin Carlino
3d361074ab
Draw traffic signals changing over time in the experiment
2020-12-08 09:05:06 -08:00
Dustin Carlino
86814f6867
Make A/B Street's minimap specialize the generic widget, instead of duplicating code.
2020-12-07 15:40:35 -08:00
Dustin Carlino
f57fb8f2f6
Run the experiment on the web
2020-12-02 13:44:10 -08:00
Michael Kirk
727fe32fdd
little typo in summaries table
2020-12-02 10:51:46 -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
2ebaf99e0d
A fresh attempt at finding the root causes of gridlock map-wide
2020-12-01 10:50:05 -08:00
Dustin Carlino
b5ea263fc1
Expose the blocked-by graph through the API, and add root-cause analysis
...
to the UI debugger. #392
2020-11-30 17:01:15 -08:00
Dustin Carlino
8501ec70f9
Make the blocked-by graph more exploreable. Remove older debug code that
...
did something similar. #392
2020-11-30 15:15:13 -08:00
Dustin Carlino
6dd14c8bed
Don't crash when jumping to nonexistent trip or when clicking
...
follow/unfollow for a trip without an agent.
2020-11-30 14:20:37 -08:00
Dustin Carlino
be3d1dc83b
Refactor github workflow, since most steps are OS-independent. Build all of the separate binaries. [rebuild] [release]
2020-11-29 16:01:18 -08:00
Dustin Carlino
2716c44bf7
Fix commuter patterns dashboard, which broke whenever we cleared the sim upon setup
2020-11-29 08:59:10 -08:00
Dustin Carlino
d6c179385e
Start in night mode, and adjust minimap coloring there
2020-11-28 10:19:21 -08:00
Dustin Carlino
58b6c66c2b
Consolidate console_log setup into abstutil, now that there are multiple binaries that should all have the behavior.
2020-11-26 14:40:05 -08:00
Dustin Carlino
ebcae62652
Slightly simplify how some states specify what map objects can be
...
selected and clicked on.
2020-11-26 13:42:31 -08:00
Dustin Carlino
65a4b578be
Experiment with separating concerns in some simple States.
...
This is closer to a callback style, which might be more familiar to
people coming from other frameworks.
It's a pretty mechanical refactor now, but the hope is that looking at a
bunch of on_mouseover() functions will reveal further refactors more
easily than a bunch of monolithic event() functions.
I don't think every State fits this pattern; things like SandboxMode
need to carefully orchestrate the order of things. Make simple things
easy and hard things possible.
2020-11-26 13:11:12 -08:00
Dustin Carlino
70b40a7148
Stop doing custom stuff to spawn scenarios in the tutorial. Integrate
...
with SandboxLoader, which handles loading prebaked results on the web
correctly. #407
2020-11-25 12:15:22 -08:00
Dustin Carlino
4b6df883fb
Organize challenges into a subdirectory, splitting out prebaking code
...
and bringing in cutscene, just to organize things a little better.
2020-11-25 11:31:37 -08:00
Dustin Carlino
b6ebee0dd8
Tiny refactor: Drawable::empty(ctx)
2020-11-25 11:19:26 -08:00
Dustin Carlino
903eab1bc4
Remove some old savestating optimizations from the simulation. The
...
optimizations avoided serializing Analytics and paths of to-be-created
agents, to reduce the file size. The logic to manage all of this isn't
worth the complexity anymore, because:
1) We don't queue up a bunch of spawn commands anymore; we defer
pathfinding until the last minute anyway.
2) We're not using savestates except for occasional manual debugging.
Previously, there was an idea to quickly preview prebaked traffic
mid-day. That idea was never fleshed out.
2020-11-24 15:38:20 -08:00
Dustin Carlino
314f01496e
Save/restore camera state per map in all map_gui apps too.
2020-11-24 11:53:50 -08:00
Dustin Carlino
16b561a408
Move game/helpers into game/common. And fix github rustdoc workflow
2020-11-23 23:39:55 -08:00
Dustin Carlino
db736ceab5
Collapse some of the module indirections in the game crate.
2020-11-23 17:58:32 -08:00
Dustin Carlino
f3ff910c37
Cleanup from the great app split:
...
- move show_zorder into DrawMap
- reorganize modules in map_gui
Next is to reorganize/collapse modules in game.
2020-11-23 17:58:32 -08:00
Dustin Carlino
c450922211
Split out the 15min tool to its own crate.
2020-11-23 17:58:32 -08:00
Dustin Carlino
9f422033e9
Make a SimpleMinimap for map_gui. Will refactor later.
2020-11-23 17:58:32 -08:00
Dustin Carlino
c3db4de087
Lift the Navigator tools to map_gui.
2020-11-23 17:58:32 -08:00
Dustin Carlino
139d435bd3
Split out the OSM viewer to its own crate, porting over a simple form of current_selection. Temporarily omit the minimap and navigator from it.
2020-11-23 17:58:32 -08:00
Dustin Carlino
ad0d1ae7a4
Split out the OSM parking mapper into a separate app, temporarily
...
WITHOUT mouseover.
2020-11-23 17:58:32 -08:00
Dustin Carlino
e6d21d81e7
Add the city picker to the experiment, as a way to lift it to map_gui.
2020-11-23 17:58:32 -08:00
Dustin Carlino
859d78f2cf
Refactor the CLI flag parsing that all apps will share.
2020-11-23 17:58:32 -08:00
Dustin Carlino
ab2f6fefec
Split the controls experiment into a separate binary, get it to draw a
...
map way more simply than the game
2020-11-23 17:58:32 -08:00
Dustin Carlino
558eb6f716
Extract DrawMap into a separate crate, along with everything else it
...
depends on.
The goal is to be able to split things like the OSM viewer, parking
mapper, and 15 min tool into separate crates from the game, while still
sharing lots of code.
2020-11-23 17:58:32 -08:00
Dustin Carlino
67446d32b9
Refactor and rearrange misc App/PerMap things to prepare for extracting some shared functionality to other crates.
2020-11-22 19:48:09 -08:00
Dustin Carlino
f7504bf4d1
Tease AgentCache out of DrawMap
2020-11-22 19:35:35 -08:00
Dustin Carlino
0574af0b64
Move UnzoomedAgents management out of App and into AgentCache
2020-11-22 19:24:07 -08:00
Dustin Carlino
26a7277f50
Reorganize zorder_range out of PerMap and into DrawMap.
2020-11-22 19:05:09 -08:00
Dustin Carlino
abf3dbc859
Don't specify a widgetry backend by default; force every user to set the feature explicitly.
2020-11-22 18:35:03 -08:00
Dustin Carlino
0dd246c83f
Remove the old --num_agents flag, used for debugging spawning agents
2020-11-22 18:27:25 -08:00
Dustin Carlino
ed8fe187cc
new release
2020-11-22 13:41:58 -08:00
Dustin Carlino
f656468580
widgetry refactor: store all keys currently held down, let anyone query
2020-11-22 13:24:08 -08:00
Dustin Carlino
fba2391bc5
Experiment with winit key handling. And attempt [rebuild] [release] again
2020-11-22 12:56:22 -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
d83133fa09
Fix the biking mode for #393
2020-11-22 10:48:41 -08:00
Dustin Carlino
594b376734
Figure out travel time for bikes. #393
...
Something's wrong with the results, but it's a start.
2020-11-21 15:10:49 -08:00
Michael Kirk
32a9915d2e
dont switch buildings while panning ( #401 )
...
for #393
2020-11-21 14:58:22 -08:00
Michael Kirk
d2cead2a82
15m neighborhood: switch neighborhoods ( #400 )
...
for #393
2020-11-21 14:51:40 -08:00
Dustin Carlino
78eedff7c7
UI glue for switching between walking/biking. #393
2020-11-21 14:02:24 -08:00
Gedalia Kott
657a24d328
add about button to hovering panel for 15 min neighborhood sub-app ( #398 )
...
for #393
2020-11-21 13:43:23 -08:00
Dustin Carlino
20523119cb
Show a tooltip of the travel time to a building while hovering. #393
2020-11-21 13:22:56 -08:00
Dustin Carlino
d8b1df5975
Click amenity categories to get more details. #393
2020-11-21 12:47:42 -08:00
Michael Kirk
b076165e0b
Mkirk/switch buildings ( #397 )
...
for #393
2020-11-21 12:23:37 -08:00
Dustin Carlino
29da713903
Display a simple count of amenities reachable from a building. #393
2020-11-21 11:11:57 -08:00
Dustin Carlino
bf9d34d1a3
Drop results farther than 15 minutes away. #393
...
It'd be more efficient to terminate the Dijkstra's search directly, but
petgraph doesn't have an option for that, so we'll have to implement
Dijkstra's manually (shouldn't be hard).
2020-11-21 10:12:29 -08:00
Dustin Carlino
5c6eacf781
Add a --15min flag to jump right into the tool for #393
2020-11-21 09:34:52 -08:00
Dustin Carlino
e43f551af6
New query and debug viewer to get the full graph of agents waiting on others. #392
2020-11-20 14:19:19 -08:00
Dustin Carlino
d731d57814
Silence simulation alerts on the title screen; they're very obnoxiously spammy
2020-11-20 11:15:05 -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
d33d051d47
Make the isochrone use time, not distance, as a cost function. And
...
floodfill using Dijkstra's, instead of computing loads of paths. #393
2020-11-19 14:11:59 -08:00
Dustin Carlino
5a5aaae6f7
Reorganize the half-broken isochrone tool into a dedicated mode, accessible from the main menu, in preparation for the Saturday hackathon. #393
2020-11-19 13:22:59 -08:00
Dustin Carlino
f6565988c9
Let parking aisles span multiple parking lots.
2020-11-19 12:34:31 -08:00
Dustin Carlino
3905131fe4
Track and expose total trip distance in the API. #392
2020-11-19 10:40:00 -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
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
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
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
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
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
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
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
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
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
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
2a546e528c
Skip applying no-op edits and recalculating pathfinding when leaving sandbox mode. For large maps, it's a noticeable delay
2020-11-10 15:19:41 -08:00
Dustin Carlino
9d7b8744f5
Manually recreate panels when day/night color swaps.
2020-11-10 14:13:10 -08:00
Dustin Carlino
a4dfa2f40a
Automatically toggle between day/night colorschemes at 6am and 6pm, if
...
you pass --day_night. Fails to update all panels immediately.
2020-11-10 14:13:10 -08:00
Dustin Carlino
ef34b36d9f
Display tooltips in the collision viewer. #87
2020-11-10 12:49:08 -08:00
Dustin Carlino
07ac288e72
Refactor: rename Pt2D::from_gps to just gps.to_pt(bounds)
2020-11-10 12:00:43 -08:00
Dustin Carlino
e3b9c42506
Refactor: panel.replace() will set the same name on the new element
2020-11-10 11:49:55 -08:00
Dustin Carlino
b17d638d34
Display individual collisions and allow filtering by severity/time. #87
2020-11-10 11:41:35 -08:00
Dustin Carlino
8ab7855926
Update some throughput plot terminology. Also pin to upstream earcutr, now that a fix is merged. #331
2020-11-10 09:00:05 -08:00
Dustin Carlino
8ddaba0563
Base the night mode color scheme on Egregoria
2020-11-09 15:50:34 -08:00
Dustin Carlino
6ac49c3a50
Document how data/ is arranged. #195
2020-11-09 11:25:36 -08:00
Dustin Carlino
c9e24ce752
Wire up github actions to sometimes pass a feature flag to pin to a versioned directory in S3. And on that note, [rebuild] [release]. #326 , #195
2020-11-07 19:06:33 -08:00
Dustin Carlino
1b4e25e12f
Get the downloader UI to actually fetch stuff. #326
2020-11-07 18:39:15 -08:00
Dustin Carlino
54ced5b5b4
Stub out a native-only UI to download extra cities. Move the config
...
about what cities somebody has opted into downloading to JSON and a more
common place. #326
Note this is a breaking change for this config file, but I don't think
many people have started using this yet.
2020-11-07 16:20:27 -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
31fcf1b863
Prototype a UI to view aggregated collisions. #87
2020-11-05 17:53:54 -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
3d84defb71
Also organize screenshots by city. #326
2020-11-05 14:42:40 -08:00
Dustin Carlino
cda586dfc9
Cleanup by moving some methods to belong to MapName. #326
2020-11-05 14:18:13 -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
c8f6e4d2c9
Cache the currently loaded Scenario, instead of re-reading it from the filesystem or (shudder) web. #377 ( #385 )
2020-11-05 09:25:02 -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
b47121ec8b
Make the generic KML viewer also support CSV files containing one (lat, lon) point. More convenient way to explore data for #87
2020-11-04 09:47:19 -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
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
28aaae110e
Make the native and web file loaders detect binary/JSON files from the extenson. This unbreaks the dump_scenario example described at https://dabreegster.github.io/abstreet/dev/api.html#working-with-scenarios
2020-11-02 12:18:10 -08:00
Dustin Carlino
0fcd7af895
A few improvements for the OSM viewer:
...
- hotkey to expand the city picker to the full list
- add a button to edit an OSM way (just for roads, not sure there's
value for intersections, parking lots, or buildings)
- include the Z-order picker
2020-11-02 11:35:49 -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
5862835196
Fix content type on the html web runner page. Without this, initially
...
loading jumped to >30s with a warning in the console. Back to the usual
few seconds with this fix.
2020-10-31 18:37:46 -07: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
3e6e10f45a
Show better error messages in the web file loader for HTTP errors, instead of trying to decode the HTML body of the 404 page
2020-10-31 10:10:01 -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
Michael Kirk
b1f4ca0b1b
loading screen ( #373 )
...
fancy loading screen
2020-10-29 18:39:51 -07:00
Dustin Carlino
771dcd1c34
Plumb through failures (like 404) through the web file loader
2020-10-29 15:54:01 -07:00
Dustin Carlino
1707b6fe37
Consolidate some PolyLine geometry code, and refactor some geom->geojson
...
mappings
2020-10-29 12:23:39 -07:00
Dustin Carlino
c8b565e57b
Make the city picker handle 100's of maps slightly better, by splitting out into a separate list with autocomplete
2020-10-28 16:08:09 -07:00
Dustin Carlino
37896c9d37
Don't draw building paths in the OSM viewer. They're messy and don't reveal anything semantically interesting, whereas in A/B Street it's kind of important to see which road a trip will begin/end at for buildings on corners
2020-10-28 12:17:05 -07:00
Dustin Carlino
0167b4be31
A tiny start to the great UI button refactor: make the "X" button
...
consistent. #331
2020-10-28 12:04:36 -07:00
Dustin Carlino
3b838c1225
Finish formatting distance/duration/speed units nicely. And remove the
...
number of lanes from trip info; it's misleading and not useful. #331
2020-10-28 11:33:48 -07:00
Dustin Carlino
3b26d25fe4
Build a wasm binary that jumps straight into the OSM viewer
2020-10-27 15:34:58 -07:00
Dustin Carlino
57b3d0719d
Make a way to jump straight into the OSM viewer from the command line. Also slightly collapses some of the app startup creation flow
2020-10-27 15:17:21 -07:00
Dustin Carlino
fd1afbad02
Speed up the OSM viewer's business search panel. It was constantly recalculating the entire thng
2020-10-27 12:52:26 -07:00
Dustin Carlino
ae62bf082e
Consolidate Slider and AreaSlider. They share most logic, just look different.
2020-10-27 12:13:20 -07:00
Dustin Carlino
6a8e01d4cd
Remove an unnecessary slider from the polygon debugger, and lock down set_percent, which is causing some scrollabr dragging bugs.
2020-10-27 11:31:37 -07:00
Dustin Carlino
fda4c4da7b
Refactor a few utilities, and use convex hull of the city boundaries to simplify them considerably. #326
2020-10-26 14:15:25 -07:00
Dustin Carlino
1cc7982ff7
fix web build and redeploy
2020-10-26 10:23:24 -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
1a630c6361
Highlight categories of businesses in the osm viewer
2020-10-24 15:19:51 -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
ad23da1f6c
Workaround widgetry panel bug in the osm viewer, where scrollbars aren't
...
recomputed when panel contents change size.
2020-10-24 13:41:06 -07:00
Dustin Carlino
614c744dc9
Add a POI search to the new viewer
2020-10-24 13:13:04 -07:00
Dustin Carlino
a538b5cd64
Add the minimap to the OSM viewer, making a variation that hides some features
2020-10-24 12:27:27 -07:00
Dustin Carlino
6fef09fb8d
Flesh out the OSM viewer:
...
- outline around fixed objects
- open OSM keys in the wiki
- info panels for buildings, intersections, and parking lots
- show turns from lanes
2020-10-24 11:38:19 -07:00
Dustin Carlino
8339c893eb
Show some OSM key/values for roads in the new viewer
2020-10-23 21:15:09 -07:00
Dustin Carlino
ecabf2436f
Experiment with a dedicated OSM viewer, to debut at Connect 2020. For
...
now, this is still embedded in A/B Street, to take advantage of
everything that already exists. But later, the idea is to split it into
a separate crate, sharing lots of code.
2020-10-23 16:28:47 -07:00
Dustin Carlino
c2b6c917ae
Generalize the State/Transition GUI structure, moving it into widgetry.
...
Nothing about it is specific to A/B Street, and other apps built with
widgetry could organize themselves as a stack of states. This is also a
first step towards sharing more common code between A/B Street and a
future OSM viewer.
Mostly mechanical change. Some more cleanup / documentation coming up
next.
2020-10-22 17:34:59 -07:00
Dustin Carlino
89977b3b31
Move grey_out_map out of State, in preparation for generalizing state/transition. #253
2020-10-22 16:53:15 -07:00
Dustin Carlino
4a3ea8b5c7
Add a tool to export a road to streetmix. Untested, because still having trouble making manual API calls.
2020-10-22 16:29:42 -07:00
Dustin Carlino
83c1c09936
Notify the player how many trips got oofed after live map edits. #312
2020-10-22 11:58:16 -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
8e6aa08d59
Breakdown agent counts much more in the tooltips. #331
2020-10-21 14:26:59 -07:00
Dustin Carlino
035b8ee96f
Fix alpha colors on the web by making the background canvas black instead of white. https://webglfundamentals.org/webgl/lessons/webgl-and-alpha.html has other workarounds, but I can't figure out how to control the webgl context parameters.
...
Also improve the loading message that appears before wasm has taken
over.
2020-10-21 10:50:40 -07:00
Dustin Carlino
8a1525ddfa
Lift parsing of --scenario_modifiers to a more common place, so it can be done in run_scenario too. #368
2020-10-21 08:35:38 -07:00
Dustin Carlino
ead7960112
Collapse one case of possible nested loading screens. Slightly simpler
...
code, but this doesn't solve the bug of a second squished loading screen
for scenarios.
2020-10-20 18:24:37 -07:00
Dustin Carlino
d8910ad04f
Build a quadtree of unzoomed agents while drawing, to later speedup mouseover. This seems to make performance fine in debug mode, so get rid of the flag guarding of this feature! [rebuild]
2020-10-20 11:38:38 -07:00
Dustin Carlino
bc3110ba9d
Add sidewalk borders to the new color scheme. Possibly need to rethink
...
sidewalk geometry again for this.
2020-10-20 11:28:45 -07:00
Dustin Carlino
177484d2b6
A few adjustments to the mapbox-ish color scheme: highway marking color, solid center lines
2020-10-20 10:51:03 -07:00
Dustin Carlino
af70904377
Document as much of geom as I can before my battery dies. And a mechanical API changes, Angle::new_degs -> Angle::degrees
2020-10-19 19:55:05 -05:00
Dustin Carlino
c435d3fce2
Consolidate two scenario modifiers, allowing all walking trips to be cancelled, for #368
2020-10-19 18:03:17 -05:00
Dustin Carlino
21e30aac94
Stop drawing arrows in the trip info panels to show where off-map trips begin/end. These were added way back when modelling remote trips for the pandemic sim, but they're just noisy otherwise.
2020-10-19 14:29:36 -05:00
Dustin Carlino
3f69b76bae
Make the 'cancelled' and future trip info panels closer to the others, with buttons to jump to the start/end point
2020-10-19 14:27:58 -05:00
Dustin Carlino
954aab953e
Add an "abstract" camera angle to just show buildings as uniform shapes.
...
A place to play around with showing symbols, not real geometry.
2020-10-19 13:14:44 -05:00
Dustin Carlino
913dd0c4db
Try Yuwen's new colors for the 'faded zoom' color scheme
2020-10-19 12:52:02 -05:00
Dustin Carlino
06f088afcc
More clearly handle the different strategies for filesystem access. On
...
native, only look at local files -- so now importing new maps locally
works again. On web, look at statically bundled files AND remote files
declared through the manifest.
In the future for native, we will also want to sometimes show remote
files available and integrate part of the updater, but only in a
specific view, not in general for all files.
2020-10-16 13:44:05 -05:00
Dustin Carlino
a18f494416
Don't crash on the web when loading a nonexistent file. This now happens, because we try to load prebaked results for synthetic scenarios.
2020-10-16 13:38:39 -05:00
Dustin Carlino
422882c03b
Ditch cpuprofiler in favor of cargo flamegraph. Add a tool that just
...
runs a scenario headlessly, since that's easier than sending a few curl
commands to the API. #368
2020-10-15 17:12:38 -05:00
Dustin Carlino
4a197fa13d
Until there's a faster implementation, just flag-guard selecting unzoomed agents
2020-10-15 14:58:07 -05:00
Dustin Carlino
38394c4a08
Comment some code to clarify things in #365 , and switch the color for
...
selecting unzoomed agents
2020-10-15 14:58:07 -05:00
Dustin Carlino
028d1df62c
Allow selecting and clicking unzoomed agents. [rebuild]
2020-10-15 14:58:07 -05:00
Dustin Carlino
1e0d8536a4
Fix #367 by making all constructors of SandboxMode appropriately defer
...
work that must happen after the map/scenario are loaded.
2020-10-14 17:43:28 -05:00
Dustin Carlino
e7fb9b1a4a
Handle the info panel rewind-sim case for #367 . I'm increasingly happier
...
with how the async reactions to loading SandboxMode are.
2020-10-14 17:24:39 -05:00
Dustin Carlino
81dae1e39c
Slightly simplify some plumbing of variables through nested closures, by
...
remembering that FnOnce exists
2020-10-14 15:36:08 -05:00
Dustin Carlino
5ef48a5d1c
Express the SandboxMode constructor as a full state machine, with the
...
ability to defer things like pushing the time warp state onto the stack
of states. This fixes the edit mode case of #367 , but other callers of
SandboxMode::new still need updating.
2020-10-14 15:13:10 -05:00
Dustin Carlino
84a65c293b
Make it easier to test scenario modifiers by specifying them on the CLI
2020-10-14 12:16:38 -05:00
Dustin Carlino
bc856a4c2b
Fix the signal demand dash, broken by 1906fb0913
. And enable warp to ID for non-dev mode too.
2020-10-13 10:22:19 -05:00
Dustin Carlino
1906fb0913
Remove the GetDrawAgents indirection. Originally the UI could pull the
...
set of agents to draw either from the simulation or from this
"time-traveler" plugin, which would let you rewind sim time. That plugin
is long gone, and it never worked well, because much of the UI would use
the GetDrawAgents to select something, then query the live sim for lots
of details anyway. The plugin never served all of those calls, so the
results would be kind of out-of-sync anyway.
There are some parts of the UI that need to temporarily not draw agents.
Use the same suspended_sim trick that edit mode does.
2020-10-12 11:52:05 -05:00
Dustin Carlino
b9efdaef20
Refactor the trip timeline code, fixing the icon spacing. Temporarily
...
take out the delays from the timeline -- they complicate the code. Will
add back in later, once the code's a little more clear.
2020-10-11 11:35:00 -07:00
Dustin Carlino
a1c53d5e1c
Humble start to adjusting how distances and durations are printed in the UI. #331
...
Also trimmed out a few old UI settings; they kind of started as
experiments, but now the alternative feels useless to maintain.
2020-10-11 10:45:13 -07:00
Dustin Carlino
a2d36274a2
Prep for release [rebuild]
2020-10-10 13:11:11 -07:00
Dustin Carlino
1791ef70a5
More cleanup of https://github.com/dabreegster/abstreet/pull/363 : fix the build break in info/trip
2020-10-10 12:31:52 -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
Sam
4c5a858238
Delay highlighting ( #363 )
...
* Initial storing of intersection delays
* Initial highlighting of delays on route
* Added label of delay
* Info overlay works
* Added supoprt for pedestrian delays (only intersection delay currently)
Bike also works, but is treated as a car, so the avg speed is flagged as very slow (Needs fix)
* Capitalised describe trip phase
Now uses min of (speed limit and vehicle max speed) for the maximum speed check
Added trip blocked time query
Lots of work on tool tips
Icons are broke
* Nearly complete, just fmting and a crash to fix
Color assertion?
* Fixed text font colour crash
Added new custom TextSpan size function
* Cargo +nightly fmt
* Cargo +nightly fmt
* Clion auto import formatting
Doesn't quite match the existing "changes"
* Fixing merge issues
* Fixing icon placement issues
* Requested changes (Part 1)
* Requested changes (Part 2)
Co-authored-by: Sam <a>
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-10-10 12:23:02 -07:00
Dustin Carlino
94449e49e0
Launch the web version! #21
2020-10-09 22:55:13 -07:00
Dustin Carlino
34e95dd861
WIP load scenarios
2020-10-09 22:31:31 -07:00
Dustin Carlino
d4358586d6
Refactor the MapLoader into a more generic file loader...
2020-10-09 17:26:11 -07:00
Dustin Carlino
fbf651f1c2
Give up on generic_prebake_all, an unused method that would very generically crawl all challenges, calculate their scenario, and prebake results for them. It forces GameplayMode -> Scenario to have a certain form, which seemingly blocks transitioning to an asyncish loading screen.
2020-10-09 16:36:31 -07:00
Dustin Carlino
be3b2e8abb
Finally, cut over the last app.switch_map caller
2020-10-09 16:27:28 -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
3feb9d6dbe
Make the proposals picker use the new map loading mechanism
2020-10-09 15:57:20 -07:00
Dustin Carlino
03eac377d6
Convert ScreenshotTest away from app.switch_map
2020-10-09 15:07:35 -07:00
Dustin Carlino
2ad832d01a
Whittle down callers of app.switch_map: changing color scheme. (As a
...
bonus, now this doesn't reset the sim and everything!)
2020-10-09 14:51:35 -07:00
Dustin Carlino
a8b41370bc
Refactor the CityPicker HTTP trick into a native/web loading screen
...
state for switching maps. Use it just from the CityPicker for the
moment...
2020-10-09 14:35:02 -07:00
Dustin Carlino
e4707ca223
Ehem, fix build break in web from last commit. Hard to test a single commit against both native/web, because switching targets clears the entire build cache...
2020-10-09 14:04:56 -07:00
Dustin Carlino
1ae4c6e41f
Make the web CityPicker do all of the same stuff that app.switch_map does
2020-10-09 14:02:08 -07:00
Dustin Carlino
1de7065562
Move a few things from App down to PerMap: layer, suspended_sim,
...
prebaked
2020-10-09 13:50:30 -07:00
Dustin Carlino
906dc0a8e5
Rearrange responsibilities of App::new and PerMap::new, to prepare for
...
cleaning up switch_map
2020-10-09 13:35:51 -07:00
Dustin Carlino
dd0df29571
Suppress the trip summaries tab if we have no prebaked data to compare to
2020-10-09 13:04:36 -07:00
Dustin Carlino
b9d3052c87
Show the elapsed time in the web loading screen, to kind of reassure people things aren't frozen
2020-10-09 09:14:24 -07:00
Dustin Carlino
7236fa558f
Fix clicking on regions in citypicker. #21
2020-10-08 17:02:08 -07:00
Dustin Carlino
17416d9fd6
Start deploying the web build to s3... #21
2020-10-08 16:29:06 -07:00
Dustin Carlino
31854344ec
Proper loading screen for web. #21
2020-10-08 15:07:23 -07:00
Dustin Carlino
62b3af324b
Bundle data/MANIFEST.json in wasm. Now loading all maps from HTTP works! #21
2020-10-08 14:41:02 -07:00
Dustin Carlino
4d66e4e91d
Make the city picker list maps from the manifest, not local files. #21
2020-10-08 14:26:35 -07:00
Dustin Carlino
d1d1d1532c
Silence warnings when compiling wasm
2020-10-08 12:26:54 -07:00
Dustin Carlino
64bc4ee318
On the web, load different maps by making asynchronous HTTP calls. #21 ( #364 )
...
* On the web, load different maps by making asynchronous HTTP calls. #21
This is a very strange, specializd approach; it's unclear how it'll
generalize to reading scenarios and prebaked results. Ideally we could
call abstutil::read_binary as we currently do and somehow hide this async
trickery underneath, but I'm not sure how yet. In the meantime, this
moves us forward with the hack well-contained.
Next steps for web: stop bundling in all of data/system in the .wasm,
now that we can load from HTTP.
2020-10-08 10:51:13 -07:00
Dustin Carlino
69c8ce4cbe
Before the .wasm loads, display "Loading"
2020-10-07 23:02:10 -07:00
Dustin Carlino
79e313da24
When crashing, dump edits to a file instead of STDOUT. They take too much space and sometimes overflow the terminal's buffer.
2020-10-07 15:53:27 -07:00
Michael Kirk
2ed916e89f
show parking intent ( #362 )
2020-10-07 14:16:58 -07:00
Dustin Carlino
a3b7ed18cd
Cache the unedited map, for #361
2020-10-06 16:58:48 -07:00
Dustin Carlino
84e50d561d
Workaround one case of #361 in an expensive way: temporarily revert
...
map edits when viewing the "before" version of a trip.
2020-10-06 15:35:11 -07:00
Dustin Carlino
24c20e1599
Add a layer to visualize congestion caps. #325
2020-10-06 13:47:53 -07:00
Dustin Carlino
f258c50595
Organize import blocks using https://github.com/dabreegster/organize_rust_imports
2020-10-05 20:29:22 -07:00
Dustin Carlino
27d94945c6
Manually move mod block after the use block, to match what CLion does.
2020-10-05 20:29:22 -07:00
Dustin Carlino
b9eda7305a
Fix the web canvas size. I was mixing examples improperly; our code appends a canvas to the DOM dynamically, so we don't need to hardcode one.
2020-10-05 19:50:52 -07:00
Dustin Carlino
982b0bc194
Support opening new browser tabs on web. The webbrowser crate claims it's experimental, but works fine for me, and the impl is pretty much what I'd try anyway.
2020-10-05 19:50:52 -07:00
Dustin Carlino
bb6dbb0731
Switch from stdweb to websys for #21 .
...
When I added web support in February, it was easier to get started with
stdweb, since it has the nice cargo web tool. However, stdweb is
unmaintained, winit is deprecating support for it, and the next steps
for web (downloading maps dynamically) have better support for web-sys.
With Alvin's guidance, I got
https://github.com/dabreegster/minimal_websys_winit_glow_demo working
first. This PR cuts A/B Street over too.
I tested abst and the widgetry demo in both native and web. The only
major regression from stdweb is the canvas placement and size. I
attempted some fixes, but at this point, I'll leave it as a smaller
followup instead.
2020-10-05 19:50:52 -07:00
Dustin Carlino
e5365254e9
Make load_all_objects IO-backend (native/web) agnostic
2020-10-05 14:48:34 -07:00
Dustin Carlino
a5cf5877e6
Experiment with focusing on negative space
2020-10-05 10:13:28 -07:00
Dustin Carlino
8e49aac42f
Make traffic seitan close roads that agents are about to use, causing a
...
crash. And start to figure out the debugging story.
2020-10-05 08:49:16 -07:00
Dustin Carlino
50e8a94946
Use an absolute color scale for throughput, instead of the weird ranked thing. If a few roads have a ridiculously high throughput compared to others, we actually care about those outliers. And don't show counts in the legend after all; it just climbs over the whole day, and confusingly mixes roads/intersections, which're actually colored independently.
2020-10-03 16:44:36 -07:00
Dustin Carlino
98d26d8979
Refactor calls to calculate_current_selection
2020-10-03 16:37:56 -07:00
Dustin Carlino
acaf7eb587
Split compare throughput into separate State
2020-10-03 16:13:58 -07:00
Dustin Carlino
5354d1ba2b
Show counts in throughput layer tooltips
2020-10-03 16:04:58 -07:00
Dustin Carlino
b7818a52be
Capture the reason for cancelled trips, for #312
2020-10-03 15:35:29 -07:00
Dustin Carlino
9ccbf40dba
Merge the concept of cancelled and aborted trips, in preparation for storing the reason for cancellation, for #312
2020-10-03 10:41:53 -07:00
Dustin Carlino
5aee85f19d
Allow colorschemes to optionally color zoomed-in lanes based on OSM road rank. Most schemes don't do this, but one needs to, and maintaining a separate git branch has become annoying.
...
Should have no behavioral change to existing color schemes.
2020-10-02 08:06:35 -07:00
Dustin Carlino
f73d9da080
Conjure Traffic Seitan, a tool to make byzantine live map edits, to cause chaos and flush out bugs...
2020-10-01 18:24:35 -07:00
Dustin Carlino
afa27e0903
Just adjusting dark colorscheme
2020-10-01 16:36:00 -07:00
Dustin Carlino
c2ef091fb4
Try some greyscale color schemes, from Mapbox
2020-10-01 13:49:03 -07:00
Dustin Carlino
fd460a2f43
Fix blackholed buildings with --infinite_parking. Before, they were just
...
skipped outright. Now they redirect to a reasonably close building that
isn't blackholed. #329
(For context, https://dabreegster.github.io/abstreet/map/index.html#connectivity
explains "blackhole")
I'm increasingly convinced I made the wrong decision to split the
normal/infinite parking implementation. It's low-priority, but I'll try
consolidating them later.
2020-10-01 11:57:30 -07:00
Dustin Carlino
778b33bd55
Confirm export of roads to shared-row with a popup
2020-09-30 12:40:36 -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
c36f8026f0
Remove the old per-lane delay layer in favor of the new per-agent one
2020-09-30 09:19:24 -07:00
Dustin Carlino
2c63a485cc
Undo some uses of impl trait. Originally added for performance in a big
...
refactor, they complicate the function signatures significantly and have
no observable perf impact, since all of the methods just happen in map
importing.
2020-09-29 15:53:08 -07:00
Dustin Carlino
a64fe01c3a
Actually, absolute scale for the debug destinations tool makes more sense than ranked
2020-09-29 15:30:24 -07:00
Dustin Carlino
49f4d3e3dc
Add a tool to see where people blocked on a traffic signal are trying to go ( #354 )
2020-09-29 15:22:05 -07:00
Dustin Carlino
9ca7ea6cc2
Improve the experiment to draw area names by fixing z-ordering. But
...
leave disabled; sizing is still way off.
2020-09-29 14:51:07 -07:00
Dustin Carlino
de4f5c7768
Add a layer to color unzoomed agents based on their current delay, to help debug gridlock. Something like this used to exist as a first-class way to change unzoomed color schemes, but until we have more ideas about showing agent intent on the minimap, just implementing this as a separate layer. ( #353 )
2020-09-29 11:51:37 -07:00
Dustin Carlino
e7e3a30a25
Fix crash on Windows when minimizing window
2020-09-28 19:23:54 -07:00
Dustin Carlino
823297b71e
See unzoomed routes for trips better. #331
2020-09-28 18:26:41 -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
Dustin Carlino
4916b10190
Small style cleanups after #346 (Import grouping, simplify Spinner logic)
2020-09-27 10:26:38 -07:00
NoSuchThingAsRandom
0921a4aae5
Pedestrian crossing time ( #346 )
...
* Fixed ui being able to select traffic light times that are shorter than the time it takes to walk across the crosswalk
* Fixing operands and renaming
* Fixed spinner out of bounds issue
Traffic light generation now, ensures that there is enough time to cross the crosswalk
And enforces the minimum time duration
* Cargo +nightly fmt
* Request fixes: https://github.com/dabreegster/abstreet/pull/346
Still need some things to clarify:
Spinner checks on increment/decrement
Calling enforce_minimum_crosswalk_time inside get_possible_policies, requires the removal or modification of the validation function
* Moved enforce_minimum_crosswalk_time inside get_possible_policies
Now runs stage_time_validation at the end of get_possible_policies and removes invalid policies
Could do the same with the validation function as well?
* Fixing import order
* Fixed ui being able to select traffic light times that are shorter than the time it takes to walk across the crosswalk
* Fixing operands and renaming
* Fixed spinner out of bounds issue
Traffic light generation now, ensures that there is enough time to cross the crosswalk
And enforces the minimum time duration
* Cargo +nightly fmt
* Request fixes: https://github.com/dabreegster/abstreet/pull/346
Still need some things to clarify:
Spinner checks on increment/decrement
Calling enforce_minimum_crosswalk_time inside get_possible_policies, requires the removal or modification of the validation function
* Moved enforce_minimum_crosswalk_time inside get_possible_policies
Now runs stage_time_validation at the end of get_possible_policies and removes invalid policies
Could do the same with the validation function as well?
* Fixing import order
* Moving stage validation inside validation function
Co-authored-by: Sam <a>
2020-09-27 10:21:30 -07:00
Dustin Carlino
2ddd9a62ff
Cleanups for #346 :
...
- Add Distance::min()/max()
- Bring in log crate everywhere
- Consolidate traffic signal validation
2020-09-26 10:11:08 -07:00
Dustin Carlino
5a3bee0264
A first attempt to snap separately mapped cycleways to main roads. Emit ( #348 )
...
an extra KML file during importing to debug; don't bring into the main
map yet. #330
Not regenerating yet
2020-09-25 15:22:47 -07:00
Michael Kirk
f0be8dc0f0
Coalesce render flavors ( #349 )
2020-09-25 15:09:18 -07:00
Michael Kirk
e19bb42492
Clean up "trips" (info/person.rs) ( #347 )
...
* center pill
* padding insets
* use disclosure glyph instead of unicode arrows
2020-09-25 13:05:32 -07:00
Dustin Carlino
0f78920aeb
Start overhauling th trip summary page. #331
2020-09-25 11:55:07 -07:00
Michael Kirk
241d2faad3
Apply a few more pop_up buttons
...
...rather than formatting text w/ unicode arrows
Addendum to 452fb06ae
2020-09-25 09:47:08 -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
Dustin Carlino
119e887425
New dashboard picker. #331
2020-09-24 10:40:18 -07:00
Dustin Carlino
597ef473f2
Upgrade most dependencies
2020-09-24 09:36:26 -07:00
Dustin Carlino
de86258402
Inch towards new trip table design: hover color, move pagination controls. #331
2020-09-23 14:03:08 -07:00
Dustin Carlino
d77271f9d8
Export trip times to CSV [rebuild]
2020-09-23 13:06:22 -07:00
Dustin Carlino
fa0c5ee02c
Multiple lane type transformations in bulk edit. #331
2020-09-23 11:55:19 -07:00
Dustin Carlino
6f110d9e7f
Add unfinished trips table. #331
2020-09-22 16:18:03 -07:00
Dustin Carlino
530a9ee4e4
Add a dashboard showing cancelled trips. Further refactor trip table
...
states along the way. #331
2020-09-22 14:16:51 -07:00
Dustin Carlino
f57bd57ac3
Avoid crashing for underground isometric buildings
2020-09-22 12:35:57 -07:00
Dustin Carlino
023bee5954
Simplify the parking table using the new API. Closes #53
2020-09-22 12:13:06 -07:00
Dustin Carlino
6a13ec0841
Refactor the trip table and parking overhead table into a generic table
...
API, with sorting, filtering, and pagination. This will be invaluable
when implementing more tables and the new table style (see Figma for
both). #53
2020-09-22 12:13:06 -07:00
Michael Kirk
848251fca4
use osm data for actual building height ( #340 )
2020-09-22 11:59:50 -07:00
Michael Kirk
59fec852a8
fix "don't draw" option for jump-to-delay ( #339 )
2020-09-21 13:42:01 -07:00
Dustin Carlino
31d888024b
Display the 3 categories of trips in the table differently. Not
...
clickable yet. #331
2020-09-21 12:57:10 -07:00
Michael Kirk
8042ad414f
fix building overlap for isometric view (mostly) ( #338 )
2020-09-21 11:54:39 -07:00
Dustin Carlino
8e32314979
Style the loading screen and add tips/news. Closes #180 [rebuild]
2020-09-20 13:02:27 -07:00
Dustin Carlino
990aa74d03
More ways to find signal demand dash. #331
2020-09-20 10:18:18 -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
bb3342de27
Individual hitboxes for multiple signals in the sidebar. #331
2020-09-19 11:52:15 -07:00
Dustin Carlino
3c11dca9ba
Remove the selection outline on the side panel when hovering on the map. About to flip the direction of this. #331
2020-09-19 11:17:25 -07:00
Dustin Carlino
3cc6a8ce12
And finally, a UI to tune offset between two signals! [rebuild]
2020-09-19 11:10:45 -07:00
Dustin Carlino
8170faa03c
Start a UI to display absolute signal offsets and offsets relative to one chosen intersection
2020-09-19 11:10:45 -07:00
Dustin Carlino
08805f6a32
Rip out the old signal offset UI first.
2020-09-19 11:10:45 -07:00
Dustin Carlino
57e5183c2c
Make signal demand explorer much nicer, with selectable movements. #331
2020-09-19 10:51:27 -07:00
Dustin Carlino
83ff6db16c
Improve the signal demand dash with keys to change hour. And slightly
...
refactor styled keys in text.
2020-09-19 10:18:23 -07:00
Dustin Carlino
94eaa7010d
Slightly improve current demand panel by adding outlines to all unselected arrows
2020-09-18 23:06:48 -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
Dustin Carlino
66ee865ad1
Debug uber-turns by showing their cost in the viewer
2020-09-18 14:13:11 -07:00
Dustin Carlino
d9e50a7e38
Use .into() for specifying keys to widgetry more ergonomically. #253
2020-09-18 09:26:14 -07:00
Dustin Carlino
2f66a714d8
Adjust file naming dialog. Don't allow overwriting files at all. #331
2020-09-18 08:50:52 -07:00
Dustin Carlino
987f76ebdb
Adjust signal editor arrow colors. #331
2020-09-18 08:30:25 -07:00
Michael Kirk
2b36b9f03a
add textured theme ( #335 )
2020-09-18 07:43:05 -07:00
Michael Kirk
cb84b729f6
FancyColor -> Fill ( #334 )
2020-09-17 23:34:25 -07:00
Dustin Carlino
16ed4ca457
Use crosswalk icons in the editor. #331
2020-09-17 18:42:20 -07:00
Dustin Carlino
69622bb86d
Overhaul traffic signal editor. Movements can be directly clicked now;
...
the turn icons (now circles) are just for currently banned turns. #331
[rebuild]
Still a little work left (tuning arrow styles and using special icons
for crosswalks), but this mostly seems to match Yuwen's design.
2020-09-17 17:21:36 -07:00
Dustin Carlino
60cb96bc91
Just detangling code in draw_signal_stage...
2020-09-17 15:31:28 -07:00
Dustin Carlino
f59b738692
Simplify traffic signal rendering before big turn icon overhaul by
...
removing some older styles.
2020-09-17 15:06:35 -07:00
Dustin Carlino
ddb933d682
Fix active traffic crash, due to the polygon being too detailed [rebuild]
2020-09-17 10:58:01 -07:00
Michael Kirk
08f330cfad
track worker capacity of commercial buildings
2020-09-16 16:43:11 -07:00
Dustin Carlino
2e6e338b98
New bulk lane edit UI. #331
2020-09-16 16:07:48 -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
1331b629aa
Track how long cars have been parked in one spot
2020-09-16 09:42:02 -07:00
Dustin Carlino
4beff2b7bf
Fix some zero-length paths in the parking efficiency layer. #329
2020-09-16 08:47:40 -07:00
Dustin Carlino
5ca884eedd
Filling out the UI
2020-09-15 13:27:56 -07:00