Commit Graph

2617 Commits

Author SHA1 Message Date
Dustin Carlino
0ed933aa9c Create a contingency matrix showing how number of problems change per
trip duration. #600
2021-05-13 12:36:20 -07:00
Michael Kirk
cfbd58cdce shrink down jump-to menu w/ exact sizing 2021-05-12 17:39:19 -07:00
Michael Kirk
d185195bba toggle "draw" while warping rather than before
This is helpful if you forget to check the box, or if you want to take a
quick peak of what's going on in the map while warping without stopping
the warp.
2021-05-12 17:39:19 -07:00
Michael Kirk
ec82b728dc hotkeys for proposal navigation 2021-05-12 17:39:19 -07:00
Dustin Carlino
2c5e0dae03 Fix static trait object method warning that we're now hitting in Rust 1.52
The <dyn ...> syntax is gross, but I don't think there's a way to avoid
this without defining a differently named empty struct and putting the
static method on that
2021-05-11 12:31:58 -07:00
Dustin Carlino
1e5771897f Fix lakeslice gridlock; S Charles and Rainier has a tiny driveway causing low throughput due to cars not wanting to block the box 2021-05-11 10:55:01 -07:00
Dustin Carlino
5bac09bf2a Restore popdat.bin and Seattle scenarios and prebaked data. For whatever reason, the GDAL transformation is returning coordinates in a flipped order on my new machine.
Lakeslice prebaked disabled, because it starts gridlocking around 5pm.
I'll fix separately.
2021-05-11 09:34:40 -07:00
Dustin Carlino
1bcbe057f0 Use more realistic lane widths during importing. #597 2021-05-10 20:10:23 -07:00
Dustin Carlino
775b1fcfc4 GMNS through movements are always protected. #626 2021-05-08 11:05:49 -07:00
Dustin Carlino
cc007d0c6e Adjust the signal editor panel layout based on Figma mocks. Many issues
left, but this seems good enough to push forward for now. Can go
through a proper review next week.
2021-05-08 10:57:25 -07:00
Dustin Carlino
6e3040f5a2 Rewrite the snapping algorithm for the GMNS signal importer, based on the new example data. #626 2021-05-07 13:45:42 -07:00
Trevor Nederlof
4080d0d130
Add craft and office to import and add/reorg AmenityType (#638)
* Add craft and office to import and add/reorg AmenityType

* Remove bike rental/parking and rename BikeShop to Bike

* add in leisure and tourism tags, add more categories to AmenityType and remove lesser used tags

* add dependency on strum and strum_macros and removed some manual code for text display of Enum and Enum into string

* include lock file, fix color of buildings for amenity layer, fix formatting and use orders
2021-05-06 08:43:52 -07:00
Dustin Carlino
8826af31cb Make the CSV extra shapes parser handle WKT linestrings, so we can
visualize the GMNS signal timing data easily. #626

And fiddle with the KML viewer UI a bit to make it easier to inspect the
movement polylines.
2021-05-05 13:40:53 -07:00
Dustin Carlino
81f9ee5a1b Change the KML/external shapefile debug tool to use a real file picker 2021-05-05 11:09:56 -07:00
Dustin Carlino
8fa0f97d37 Highlight just the lane or the whole road, not both. #597 2021-05-05 08:26:41 -07:00
Dustin Carlino
488c9ffe68 Start to import GMNS timing.csv just based on line-strings. #626 2021-05-04 10:34:34 -07:00
Dustin Carlino
f400663b01 Better choices for lane width. #597 [rebuild] [release] 2021-05-02 09:11:21 -07:00
Trevor Nederlof
b430a3acc2
Add default behavior for driving, non driving and sidewalks (#634)
for #597
2021-04-30 14:35:13 -07:00
Dustin Carlino
d3c035ffb3 Remember the last map loaded, and start the game with that, unless using --dev or some other override 2021-04-30 12:36:24 -07:00
Dustin Carlino
03fade1aa7 Change the tooltip wording 2021-04-29 14:23:08 -07:00
Dustin Carlino
a11cd866c2 Add tooltips to the signal editor. 2021-04-29 14:23:08 -07:00
Dustin Carlino
5186957ce4
Store a generic type in the Spinner widget. (#631) 2021-04-29 11:35:22 -07:00
Dustin Carlino
8c5f603c39 Pick default scenarios better, and describe some of the UK scenarios in the picker.
And the tiny Widget::evenly_spaced_row refactor from the previous PR
2021-04-28 18:01:08 -07:00
Michael Kirk
4a18c64701
tweaks to get closer to the design (#630) 2021-04-28 17:59:23 -07:00
Dustin Carlino
7f2dafb489
Get closer to the Figma card style for road editor buttons. #597 (#627) 2021-04-28 17:39:21 -07:00
Dustin Carlino
71e559b6d5 Compress all of the road edits when we confirm, same as the signal editor. And add a cancel button. #597 2021-04-27 17:54:36 -07:00
Dustin Carlino
a4584f7427 Add new lanes more intelligently: #597
- Don't allow adding >2 parking lanes or sidewalks
- Set the initial position and direction based on the new lane type and
  existing confguration

Much more work needed here, but this is some progress.
2021-04-27 15:35:54 -07:00
Dustin Carlino
e917cb7772 Refactor internal panel management of road selector UI 2021-04-26 14:47:20 -07:00
Dustin Carlino
bba48ec654 For the new road editor, also select lanes on the map directly. #597 2021-04-26 14:41:08 -07:00
Dustin Carlino
36427d163c Fix the traffic signal challenge. It shouldn't reset the simulation after editing!
And fix up the score panel a bit
2021-04-26 10:49:15 -07:00
Dustin Carlino
97b41b9e19 Make the deploy_actdev script work again 2021-04-24 13:57:00 -07:00
Dustin Carlino
55127924ea Fix more junctions in Tempe, and opt it into the screenshot testing 2021-04-23 18:04:00 -07:00
Dustin Carlino
298d322054 Record the time of a problem, and add a filter for that in the layer. #600
Also change the dot map color to purple, start with the heatmap by
default, and add the count to the panel.

Regenerate prebaked data
2021-04-23 10:15:52 -07:00
Dustin Carlino
46f7d7e099 Add a layer to show where on the map problems are occurring, either individually or as a heatmap. #600 2021-04-23 10:15:52 -07:00
Dustin Carlino
bc591c1b5f Plumb back the widget name in Outcome::Changed 2021-04-22 13:09:32 -07:00
Dustin Carlino
babdc9e384 Let TextBox know its own name, and clean up the API for creating them 2021-04-22 13:09:32 -07:00
Dustin Carlino
ff039f017a Let Spinner know its own name 2021-04-22 13:09:32 -07:00
Michael Kirk
e8e678f4ca remove repeated choice from "speed". use nicer method 2021-04-22 10:43:09 -07:00
Dustin Carlino
8722c102b9 Fix bug moving lanes left/right where the width of different lanes
wasn't getting updated, due to the code-path handling the old case...
2021-04-22 10:22:06 -07:00
Dustin Carlino
2112736a1f Polish UI of new road editor 2021-04-22 07:57:23 -07:00
Dustin Carlino
e0871d9db2 Undo/redo in the new road editor 2021-04-22 07:57:23 -07:00
Dustin Carlino
8dbb1a47e5 Refactor how edits are applied inside the new road editor 2021-04-22 07:57:23 -07:00
Dustin Carlino
f781d3e74f Delete the temporary old road editor. I didn't expect the new editor to become usable so quickly.
And enable the new editor for everyone, with the experimental warning
2021-04-22 07:57:23 -07:00
Dustin Carlino
9aa5d97271 Select the newly created lane 2021-04-22 07:57:23 -07:00
Dustin Carlino
1fb1253e97 Refactor speed_limit_choices 2021-04-22 07:57:23 -07:00
Dustin Carlino
6cd869e494 Temporary way to move lanes left/right 2021-04-22 07:57:23 -07:00
Dustin Carlino
acfe095a3f Handle editing just the width of one lane 2021-04-22 07:57:23 -07:00
Dustin Carlino
c73ceebd35 MVP of Yuwen's new road editor! 2021-04-22 07:57:23 -07:00
Dustin Carlino
38f5da4f80 Make the native download progress screen show how many files are left. 2021-04-21 17:01:51 -07:00
Dustin Carlino
3b9a7cfa1f Add a basic per-file progress bar for native downloads! 2021-04-21 17:01:51 -07:00
Dustin Carlino
d644bf3b5f Debug tool to change color schemes without recompiling 2021-04-20 17:03:55 -07:00
Dustin Carlino
ee78644089 Download files before starting a challenge mode or Santa level, if needed 2021-04-20 16:10:17 -07:00
Dustin Carlino
7176994a87 Refactor CarID to be a struct, not a tuple
And regenerate prebaked data from a few commits ago
2021-04-19 15:16:48 -07:00
Dustin Carlino
bc2a21ca89 Refactor some methods in Traversable 2021-04-19 14:50:51 -07:00
Dustin Carlino
c62cf1c90c Refine the detection for when a car wants to over-take a bike, and expose it in the UI as a problem. #81, #600 2021-04-19 14:44:42 -07:00
Dustin Carlino
478a146350 Display a caution icon for large intersection crossings, and add tooltips for all drawn problems. #600 2021-04-19 11:40:39 -07:00
Dustin Carlino
6380bd74ec Refactor a concept of per-trip Problem. #600, #170
The simulation analytics tracks problems per trip. The previous
measurements for delay at intersections is one case, and the new
cyclist-crossing-large-interection event is another. I removed the lane
speed measurement, since it's kind of redundant with the delay.

Consolidated the reporting in the trip info panel / drawn on the route.
2021-04-19 11:40:39 -07:00
Dustin Carlino
6f5a7b980a Track when a pedestrian or bike crosses a large intersection. Start to
show it in individual trip info panels. #600
2021-04-19 11:40:39 -07:00
Dustin Carlino
31070ccadf Tutorial fixes after a UX study:
- Fix a typo
- Draw a star on the car that the player is supposed to follow
- Move the message panel to the left when pointing to the minimap and
  layers
- Add button icons to the message box to really emphasize what we're
  pointing to
2021-04-18 11:14:01 -07:00
Dustin Carlino
3a6b8f2919 Make the 'no sidewalks' layer understand how shared cycle+foot paths look right now. 2021-04-16 16:22:48 -07:00
Michael Kirk
bc3a121cd6 introduce --minimal_controls option for screen recordings 2021-04-15 19:22:37 -07:00
Dustin Carlino
d41482febd Fix running external tools on Windows [rebuild] [release] 2021-04-15 11:29:29 -07:00
Dustin Carlino
5bcd2a5526 Fix the grid2demand import, when repeatedly importing different files. 2021-04-15 08:58:21 -07:00
Dustin Carlino
179daa5d25 Clean up commented out code from #170. Going to re-evaluate how problems along a trip are shown in the UI anyway. 2021-04-14 17:25:58 -07:00
Dustin Carlino
79fdf01690 Remove the fade overlay from the tutorial. It makes some of the arrows pointing at stuff hard to see. If we just use it on message screens without an arrow, it looks odd to appear/disappear.
Also prep a mid-week [rebuild] [release]...
2021-04-14 13:05:54 -07:00
Dustin Carlino
4a06a7285b Change the grid2demand file picker to be async. #605 2021-04-14 09:54:04 -07:00
Dustin Carlino
1e94ba9b06 Update some tutorial wording from Yuwen's designs.
Internally, overhaul some of the crazy tutorial code to just use Text,
not Vec<String>.
2021-04-13 16:56:39 -07:00
Dustin Carlino
ae6414abd5 Rename building path->driveway, since path is such an overloaded term. 2021-04-13 15:13:36 -07:00
Dustin Carlino
9923c1270a Repair parking lot connections after road widening. #597 2021-04-13 15:13:36 -07:00
Dustin Carlino
b9a9e8e5c5 Redraw building paths when needed 2021-04-13 15:13:36 -07:00
Dustin Carlino
7852e1d2b8 Import scenarios from grid2demand's input_agents.csv directly from the UI! #603 [rebuild]
For reference, the input_agents.csv -> abst input is ported from
https://github.com/asu-trans-ai-lab/grid2demand/blob/main/src/demand_to_abst_scenario.py
2021-04-13 13:39:50 -07:00
Dustin Carlino
6b30bffc43 Recreate the road in the quadtree when modifying width. #597 2021-04-10 11:56:05 -07:00
Dustin Carlino
10255c2835 Recalculate intersection geometry when road width changes. #579
No effect on the road geometry yet, though...
2021-04-10 11:56:05 -07:00
Dustin Carlino
e8b7019ef7 Use LaneSpec in map edits, letting width of each lane be modified too. #597 2021-04-09 14:35:49 -07:00
Dustin Carlino
14609ab157 Fix lane geometry after changing the number of lanes. #597 2021-04-09 14:35:49 -07:00
Dustin Carlino
584c1be9e0 A humble start to deleting lanes. #597 2021-04-09 14:35:49 -07:00
Dustin Carlino
c6906f6153 Change Vec<Lane> to BTreeMap<LaneID, Lane> to prepare for
adding/deleting lanes. #597

Not regenerating all maps yet. Haven't evaluated performance impact yet.
2021-04-09 14:35:49 -07:00
Dustin Carlino
2a89b68121 Create a temporary dev-only UI for modifying the number of lanes in a road. #597
It crashes when actually trying to change the number of lanes, as
expected.
2021-04-09 14:35:49 -07:00
Dustin Carlino
da3272e2ee Convert the alternative path debugger to use directed roads, not lanes. #555
This lets us clean up some of the old pathfinding v1 code, removing some
duplicate code!

Also improve that debugger to show a different cost for each side of the
road. The cost to turn around and reach a building on the other side of
the road may be high, so this really makes the debugger more
understandable.
2021-04-07 10:58:48 -07:00
Dustin Carlino
ad5c573a27 Change congestion capping to pathfind avoiding roads, not lanes. #555
Capping only happens when you edit a road and introduce a per-hour
vehicle cap.
2021-04-07 10:04:00 -07:00
Dustin Carlino
9263e95e83 Only show elevation line plot in the trip info panel for walking and biking trips. It's just noise to see it for somebody walking to their car. #82 2021-04-07 09:42:25 -07:00
Dustin Carlino
ce9e98782e Poundbury once again completes without gridlock! 2021-04-06 17:03:24 -07:00
Dustin Carlino
196af2a1f4 Refactor: store Direction for a Lane, simplifying Lane->DirectedRoadID. #555 2021-04-06 17:03:24 -07:00
Dustin Carlino
8cfb377dfa Unbreak the cancelled/unfinished trip tables. The start/end filters were
only added to finished trips, but the other tables also tried to grab
the filter.
2021-04-06 10:39:27 -07:00
Dustin Carlino
1e3708f9b4 Remove UberTurnGroup and the prototype of editing a cluster of traffic
signals using uber turn groups. #555

This was an old half-baked experiment for handling a cluster of traffic
signals.  Since then, merging intersections (by manually tagging them in
OSM for now, maybe automatically in the future) has proven better.

Removing this old code in preparation for pathfinding v2.
2021-04-05 10:05:27 -07:00
Dustin Carlino
df7d1080d9 Update trip start/end icons 2021-04-03 11:26:01 -07:00
Dustin Carlino
cc4bcae1cb Color the 'more finished trips' tooltip green, to be consistent with other good/bad colors 2021-04-03 10:37:24 -07:00
Michael Kirk
4f81f186af
embed mode and reworked web build system (#592)
* root element id from Settings, respect element size

* Plumb assets root via settings

* adapt crates to new wasm api

* more FileLoader cleanup

* use tsc bin from node_modules

* avoid spurious unlink errors

GNU Make considers the src/*/wasm_pkg targets as intermediate build
files and attempted to `rm` them. We can stop that my marking them as
`.PRECIOUS`

https://www.gnu.org/software/make/manual/html_node/Special-Targets.html

* `open` doesn't work on Linux

We could do something with xdg-open, but meh, not worth having platform
dependent logic for this.

* fix typo, clarify instructions

* make server compatible with older python install on linux

* revert change - we dont want to include music on web

the leading "-" means exclude a subdir of an included dir.

* better wrap of comments

* fix misfire in copy/pasted comment

* update docs
2021-04-01 19:31:02 -07:00
Dustin Carlino
20de91bae7 Also refactor walking speeds. #82 2021-04-01 15:03:20 -07:00
Dustin Carlino
892afddcd5 Refactor uses of biking speed between the sim and pathfinding, in preparation for incorporating incline. #82
(This was a bigger mess than I expected, so worth doing separately.)
2021-04-01 11:52:25 -07:00
Dustin Carlino
3c601b50c1 Clean up the trip table rectangular selection UI: #574
- explicit clear/apply buttons
- show start/end filters on the trip table preview
2021-03-31 16:35:56 -07:00
Dustin Carlino
0e86b94408 Make the start/end rectangular filter actually apply to the trip tables. #574 2021-03-31 16:35:56 -07:00
Dustin Carlino
c89e918fec Create a dummy widget to stash generic state in a Panel, and use it to plumb around the rectangular regions to the trip table filters. #574
The filter still doesn't make use of the regions yet.
2021-03-31 16:35:56 -07:00
Dustin Carlino
dff923b3e6 Make a tool to select a rectangular region. No way to pass back the
results yet. #574
2021-03-31 16:35:56 -07:00
Dustin Carlino
7f4f83d4e0 Refactor all of the places drawing start/goal markers on the map, and actually line up the tip of the icon with the position. 2021-03-31 14:23:16 -07:00
Dustin Carlino
afb962f73b Use the start/end markers in the interactive trip spawner. 2021-03-31 13:44:19 -07:00
Dustin Carlino
3f1abda5e2 Use chevrons, not arrows, to point uphill, per discussion with Yuwen. #82 2021-03-27 09:25:06 -07:00
Dustin Carlino
ef7cbdcf48 Generalize LinePlot to handle any kind of X-axis, not just time. #82
Also split out some common code to a plots module. Fan charts and
scatter plots are still hardcoded to use Time as the X-axis and
duplicate lots of code, but this is a step towards refactoring
everything.
2021-03-26 12:07:21 -07:00
Dustin Carlino
73a31d1633 Add a line plot showing the elevation of the route taken by pedestrians
and cyclists. Add support for Distance as the Y axis of a LinePlot. #82
2021-03-26 12:07:21 -07:00
Dustin Carlino
00323925f3
Add a layer showing elevation using contours. #82 (#589) 2021-03-26 11:53:41 -07:00
Dustin Carlino
7a565f114f Adjust the steep streets panel: #82
- Move the steepest grade under the legend
- Use an arrow icon in the text
2021-03-26 11:40:01 -07:00
Dustin Carlino
fac9f8159d
Change the color scheme of the steep streets layer. #82 (#588) 2021-03-25 16:44:32 -07:00
Dustin Carlino
f0dba4b65c In the path cost debugger, show all roads with a cost less than the chosen route 2021-03-25 15:30:54 -07:00
Dustin Carlino
92d3a890ea
Express all pathfinding costs in units of seconds. #82, #494 (#587)
This is simpler to reason about, allows the penalty for entering a zone
or taking an unprotected turn to be expressed in terms of a time
penalty, and is a step towards adjusting bike/foot routing for elevation
data.

When we later add things like "safety/quietness" for cycling, maybe we
can switch to using a (time, quietness) tuple, and transform into a
single number with a linear combination parameterized by that agent's
preference for time/safety. This change is compatible with that future
idea.

There are behavior changes here, particularly for zones and unprotected
turns. No new maps start gridlocking, and in fact, Rainier starts
working again.
2021-03-25 12:59:36 -07:00
Dustin Carlino
4ef04f5bd1 Change road incline calculations to be stored in RawMap. Previously, the
"rise / run" calculation used the trimmed road center-lines, which don't
match up with the elevation at each original intersection point.

Also handle infinity in the output and reduce the resolution of the
query from every 1m to every 5m.

Regenerate all maps due to the map format change. Try bringing in
elevation data for all of Seattle using the LIDAR source, since
the data quality assessed in eldang/elevation_lookups#12 seems to be
similar, and LIDAR is way faster than contours.
2021-03-23 22:47:52 -07:00
Dustin Carlino
e57cacaab4 Rename pathfind/driving -> pathfind/vehicles to reflect bikes using it too, and likewise for driving_cost 2021-03-22 16:34:46 -07:00
Dustin Carlino
7d2e8409e8 Implement no-through-traffic zones instead by adding a huge cost to crossing into the zones. #555, #574
Regenerate all maps. Gridlock-wise, Rainier and Poundbury broke, but
Wallingford started working again. Acceptable cost for a change this
useful; I'll work on fixing those maps later.
2021-03-22 16:34:46 -07:00
Michael Kirk
b6c5ee38c2 clarify "time difference" chart
- bar height represents accumulated time, not trip count
- buckets are from duration *before* edits
2021-03-22 15:59:20 -07:00
Dustin Carlino
75b39c7b35 Add a debug tool to show the pathfinding costs to each node. Trying to figure out why a new impl of pathing through zones isn't working as expected. 2021-03-22 12:03:50 -07:00
Michael Kirk
b07ac626d4 fixup proposal "tabs" 2021-03-22 12:00:43 -07:00
Michael Kirk
761e2e6412 new tab styles for info panels 2021-03-20 14:33:54 -07:00
Dustin Carlino
cb4cd1b13a Don't recalculate failed paths in the freeform trip spawner. Makes
debugging #574 easier.
2021-03-19 17:48:37 -07:00
Michael Kirk
af079c24e6 rename txt.add -> txt.add_line 2021-03-19 17:48:30 -07:00
Dustin Carlino
58ee3175ac Add a new Seattle map focused on the Arboretum, for #574, along with
prebaked data for the baseline (because it doesn't gridlock, without any
interventions needed!) and a proposal for opening up Broadmoor.
2021-03-19 17:24:11 -07:00
Dustin Carlino
dcf2bf0422 Apply the Text::from(str) pattern in a few more places.
Found using: vi `./rgrep.sh 'Text::from(Line'|grep -v fg|grep -v
big_h|grep -v displa|grep -v big_m|grep -v small|grep -v second | grep
-v underl|grep2files `  (Some of those are local bash aliases)
2021-03-19 16:56:18 -07:00
Michael Kirk
affd582093 more concise Text / tooltip() 2021-03-19 16:48:54 -07:00
Dustin Carlino
2bebd8a2c9 Allow specifying go active scenario when launching actdev. cyipt/actdev#150 2021-03-19 16:25:37 -07:00
Dustin Carlino
edfb745bb2 Change the default color scheme to day mode. Behaviorally, this rolls out the change for the OSM viewer, 15m app, parking mapper, and map_editor. 2021-03-19 15:26:35 -07:00
Michael Kirk
cbad223a90 clarify scenario buttons & style link as link 2021-03-19 12:43:32 -07:00
Michael Kirk
9da9c9b092 extract "percent" function, put header text first 2021-03-19 11:56:22 -07:00
Michael Kirk
cf14515110 CR: use already-defined transition 2021-03-19 11:56:22 -07:00
Michael Kirk
9a2276c66d Code review: prefer unreachable to todo for checkins 2021-03-19 11:56:22 -07:00
Michael Kirk
3d5876a4fd fixup! convert trip tables to new tabs 2021-03-19 11:56:22 -07:00
Michael Kirk
e493c02d83 convert trip tables to new tabs
The GenericTable machinery lost a lot of it's utility now that we have
proper tabs. I've left a couple of free functions to be shared, and
inlined the remaining simple functionality.
2021-03-19 11:56:22 -07:00
Michael Kirk
e39059644c fixup! wip apply tabs to TimeWarp 2021-03-19 11:56:22 -07:00
Michael Kirk
1d57bb5f25 wip apply tabs to TimeWarp 2021-03-19 11:56:22 -07:00
Michael Kirk
7f00154ae6 style tabs 2021-03-19 11:56:22 -07:00
Michael Kirk
1c2231aced fix missized icon 2021-03-19 11:03:40 -07:00
Dustin Carlino
a0461e990d Workaround an issue with how the length of roads is measured and related
to the elevation measured at the original intersection point. #82

Upload montlake, downtown, and phinney with elevation data, as an
initial demo.
2021-03-18 19:04:15 -07:00
Dustin Carlino
ca4e04b6e9 Add tooltips to the elevation layer 2021-03-18 18:25:11 -07:00
Dustin Carlino
b61291d905 Revive the elevation layer in the UI. Add some sanity checking around the inclines we're assigning to roads, but also, I realized a problem with how the elevation lookup not matching the trimmed roads. #82 2021-03-18 18:19:41 -07:00
Dustin Carlino
e841024025 Use the outline style for the before/after trip comparison button. 2021-03-18 10:20:50 -07:00
Dustin Carlino
a390f72a1c Change how the original map is loaded in the UI for checking the original route. Fixes this on the web.
This also solves the static case of #361.
2021-03-18 09:54:43 -07:00
Michael Kirk
119b0e8b7e fix mismatched icon sizes in challenge screen 2021-03-17 19:06:43 -07:00
Michael Kirk
546599e4f9 Replace ButtonImage with Image 2021-03-17 19:06:43 -07:00
Michael Kirk
463c48411a jump to time: slider width corresponds to traffic chart 2021-03-17 19:06:43 -07:00
Michael Kirk
c1dfdc4550 jump to time: theme traffic curve 2021-03-17 19:06:43 -07:00
Michael Kirk
b60a6d3d96 theme disclosure icon 2021-03-17 19:06:43 -07:00
Dustin Carlino
4b2eedd2f2 Only show the info panel or the layer panel, never both at the same time. 2021-03-17 14:15:13 -07:00
Dustin Carlino
1773782975 Place layer panels and info panels in the same place, on the left side of the screen. Simplify layer code, now that we don't need to align relative to the minimap. 2021-03-17 14:15:13 -07:00
Dustin Carlino
a0c82088b9 Use our native download function instead of external curl command from the importer. #523
This forces the main importer to include tokio and propagate async a
bit. That seems worth it.

Also removed the quiet param from the download helpers; we always want
progress.
2021-03-17 10:29:28 -07:00
Dustin Carlino
e071b39553 Add a button to save scenarios to a file if they're generated. This is useful for avoiding the performance hit of regenerating them again. 2021-03-17 10:02:52 -07:00
Dustin Carlino
9f2737b2b5 Don't offer the census-based scenario outside of the US or on oneshot test maps, since it won't work. 2021-03-16 19:03:03 -07:00
Michael Kirk
e0aa2ad279 fix jitter as agent meters update 2021-03-16 18:28:50 -07:00
Michael Kirk
264f1f939f minimap controls: agent toggles and meters into one row
Some ancillary changes:

Made the GeomBatchStack public and extracted the ImageSource
functionality from ButtonBuilder to Image.
2021-03-16 18:28:50 -07:00
Michael Kirk
810c89eeb1
meter shows "finished trips vs baseline" instead of time (#565) 2021-03-15 17:10:08 -07:00
Dustin Carlino
0d8cc27961 Move per-gameplay panels from top-center to top-right. Left align time. #551 2021-03-12 17:48:35 -08:00
Dustin Carlino
b6536122e0 Fold the score panel used by the 2 challenge modes into the gameplay mode-specific top-center panel. #551 2021-03-12 17:48:35 -08:00
Dustin Carlino
229f2d5dca Fix merge 2021-03-12 17:48:35 -08:00
Dustin Carlino
d7d994066a A few adjustments to the consolidated panels: #551
- invert the histogram icon colors
- stretch out the time bar
- put the time bar above the finished trips counter
2021-03-12 17:48:35 -08:00
Dustin Carlino
880a293093 Make the time panel height override stickier. Otherwise it jumps height quite noticeably when pausing/resuming. #551 2021-03-12 17:48:35 -08:00
Dustin Carlino
59e9735318 Force actdev top panels to have the same height. #551 2021-03-12 17:48:35 -08:00
Dustin Carlino
da1c133a67 Adjust actdev panel layout to work on narrow screens. #551 2021-03-12 17:48:35 -08:00
Dustin Carlino
69b248cd66 Move agent counters to the minimap, removing the top-right agent panel entirely. #551
Adjust the tutorial for these changes.
2021-03-12 17:48:35 -08:00
Dustin Carlino
5b386af6ba Move most things out of the top-right agent meter panel to reclaim more horizontal space. #551
1) Move finished trips to the top-left time panel.
2) Move "tentative results" and "recording trips" controls (only
   occasionally used) to the top-left time panel.
3) Move the "more data" button to the minimap.
2021-03-12 17:48:35 -08:00
Dustin Carlino
8ac62fed47 Trying out some UI changes suggested by Martin:
- Increase day mode panel opacity to 95% to help text legibility
- Combine the time/speed panels, and remove the sunrise/sunset icons
- 4 mode colors matching actdev, also changing night mode residential
  buildings
2021-03-12 17:48:35 -08:00
Dustin Carlino
95b1d884cf Rename Map::new to be more clear that it should only be used in non-UI
tools. There's one place in the UI that doesn't work on the web!
2021-03-12 06:38:17 -08:00
Dustin Carlino
522b902453 Improve the traffic signal timing UI. There's a choice between fixed and
variable timing, but currently you have to remember to toggle it; the
two extra spinners get ignored otherwise. The new version is still
confusing, but I think it's an improvement.
2021-03-11 11:39:58 -08:00
Dustin Carlino
8be24bf007 Use AsRef<str> in more widgetry methods, getting rid of &format at many
call-sites. #253

To make some of these work, changed Label to store a String. Ultimately
it gets transformed into Text, so we need to allocate eventually.
2021-03-11 11:29:18 -08:00
Dustin Carlino
f0de4e4583 Don't use Bezier curves for right/left turns at tiny intersections. They
wind up looping back on themselves in a nonsensical way, causing
vehicles to visually glitch when moving through.

This was started in 081819d86b, but it
used to gridlock 2 maps. All the recent roundabout fixes seems to have
resolved those! And adjusting offstreet parking for two maps.

But wallingford does regress; plunging forward for now.
2021-03-10 15:58:16 -08:00
Dustin Carlino
bf8f51ae05 Consistently count hours for a time. There was some disagreement between
recorded analytics and code that later summed things up, making the
relative throughput layer more confusing than it is already. #85
2021-03-10 13:59:38 -08:00
Dustin Carlino
957d08e8b9 Add tooltips to the relative throughput layer, to get exact before/after counts of the data being displayed. #85
(The before counts are still bucketed on the hour mark)
2021-03-10 13:24:56 -08:00
Dustin Carlino
f0b522f89a Figure out which files are in the us/huge_seattle DataPack more consistently. This'll now work from the proposals screen. 2021-03-10 12:40:55 -08:00
Dustin Carlino
fdc6601520 Prompt the user to download missing cities from the Proposals screen, too. 2021-03-10 12:10:16 -08:00
Dustin Carlino
db96b0a7c4 Add an included proposal for making Poundbury<->Dorchester use a pair of one-way roads. cyipt/actdev#114
And handle community proposals when the weekday scenario doesn't exist.
2021-03-09 13:23:40 -08:00
Dustin Carlino
d13478f355 Make Poundbury run more smoothly, and prebake sim data for all
scenarios, so we can run A/B tests with map edits. cyipt/actdev#114

To fix it up, I hand-timed
https://www.openstreetmap.org/node/2124133019, which could have smarter
heuristics as a button-operated half-signal in the future. And allowed
blocking-the-box on some small intersections near that area.
2021-03-09 10:45:44 -08:00
Dustin Carlino
65d7bc5c8e Rename {Text,TextSpan}::draw to into_widget, for consistency. #253 2021-03-09 09:59:30 -08:00
Dustin Carlino
a4a20ce1e5 draw_text renamed to text_widget, for consistency. #253 2021-03-09 09:56:41 -08:00
Dustin Carlino
b0bcdb2115
Replace Widget::draw_batch with batch.into_widget, for consistency. #253 (#554) 2021-03-09 08:55:12 -08:00
Dustin Carlino
e61e0c885b Backpeddle on bcde40d35c. If advancing time at startup takes too long, switch over to the jump-to-time dialog, so things don't seem frozen and the user can stop early if impatient. 2021-03-09 07:38:51 -08:00
Dustin Carlino
06e2f22ba9 Add a --time flag to jump the sim forward immediately. Faster gridlock debugging. 2021-03-08 15:10:18 -08:00
Dustin Carlino
bcde40d35c Add a deadline to actdev starting at 8am. If it takes too long to advance time, just start earlier. If it's taking a long time, then there must be active traffic to look at anyway. 2021-03-08 14:49:56 -08:00
Dustin Carlino
f260fc3b40 Fix warping to bikes by ID 2021-03-08 14:42:51 -08:00
Dustin Carlino
8082640da9 Add warp buttons to the blocked-by tool to jump to the worst problems, instead of squinting for the circles 2021-03-08 14:34:00 -08:00
Dustin Carlino
7ccdc217c7 Don't display a path from a building to the nearest parking when infinite parking is enabled. [rebuild] [release] 2021-03-07 11:09:09 -08:00
Dustin Carlino
3f32c7abf3 Move the minimap code from common to sandbox, reflecting where it's used. (Never in debug or edit mode) 2021-03-06 16:20:32 -08:00
Dustin Carlino
9118ae6216 Hook up the actdev UI to the new scenarios with background traffic mixed in. #556 2021-03-05 16:37:06 -08:00
Dustin Carlino
42bd63e79b Lift URL and viewport code from game to map_gui. Also use it for OSM viewer and the 15min tool. 2021-03-04 13:22:09 -08:00
Dustin Carlino
0c81b31d7e Also, just move the uber-turn viewer to debug mode. 2021-03-04 09:36:48 -08:00
Dustin Carlino
81678822bc Clean up the old MergeIntersections experiment in the uber-turn viewer. The map_editor can now live-debug intersection geometry and merge short roads; faster to iterate there. #114 2021-03-04 09:34:00 -08:00
Dustin Carlino
3875f6b542 Pick random people with the actdev 'follow someone' button, instead of focusing on the same arbitrary first match. 2021-03-04 08:56:45 -08:00
Dustin Carlino
9e92435859 Get 2 more Seattle maps to complete without gridlock! Just had to
increase offstreet parking to better match the demand.
2021-03-03 14:53:04 -08:00
Dustin Carlino
9dc181a7c5 Start to detect cases when one vehicle may want to over-take a slower-moving leader. #81 2021-03-03 14:07:32 -08:00
Dustin Carlino
0c12948c86 Also grey out unhighlighted people when zoomed in. #539 2021-03-02 12:03:26 -08:00
Dustin Carlino
17e2f485b4 Add support for highlighting certain people in the simulation. For now,
mark random people as highlighted when background traffic is active for
actdev. #539

This changes the unzoomed rendering to "fade out" unhighlighted people.
Next up, similar change for zoomed, info panels, and trip tables.
2021-03-02 10:46:21 -08:00
Dustin Carlino
0ee22ad58e Add a checkbox for mixing in background traffic to the actdev scenarios. No effect on the scenario yet... #539 2021-03-02 09:55:08 -08:00
Dustin Carlino
6cacaf1c8a Actdev tweaks: flip walking/biking button order, start with 3x speed 2021-03-02 09:30:44 -08:00
Dustin Carlino
c5cfe76b05 Fix turn type classification for four-way intersections that meet at
weird angles. This leads to really bad traffic signal heuristics, even
causing gridlock in Rainier Valley.
2021-03-01 10:57:27 -08:00
Michael Kirk
86799e2832 Remove StyledButtons - instead implement everything on the individual
ButtonStyle
2021-02-27 21:08:26 -08:00
Michael Kirk
11a904a4da WIP: separate style for plain 2021-02-27 21:08:26 -08:00
Michael Kirk
c3985ffdd1 btn_solid -> btn_tab and replace inappropriate uses 2021-02-27 21:08:26 -08:00
Michael Kirk
7fe0e521ee Use btn_destructive.* methods instead of btn_destructive_* 2021-02-27 21:08:26 -08:00
Michael Kirk
cee0e5dbbd Use btn_primary.* methods instead of btn_primary_* 2021-02-27 21:08:26 -08:00
Michael Kirk
87a1a3f027 fix outline for spinner (without crashing!) and cache drawable 2021-02-27 15:29:03 -08:00
Dustin Carlino
fd41d0c573 Fix missing study areas in some actdev maps. It was just me accidentally passing in the site name with underscores.
I verified all sites have a study area showing up.
2021-02-27 14:50:55 -08:00
Michael Kirk
1e75352ce0 Theme section bg
`Widget::outline` takes OutlineStyle
2021-02-27 13:13:41 -08:00
Michael Kirk
73280bc114 consolidate OutlineStyle
We had a lot of constants sprinkled around. This consolidates the
constants and packages the outline thickness and color into a tuple,
making for a (usually) cleaner callsite.
2021-02-27 13:13:41 -08:00
Michael Kirk
c0fe742810 section styling for lane panel 2021-02-27 10:30:41 -08:00
Michael Kirk
2378da9731 theme signal editor bg 2021-02-27 10:30:41 -08:00
Michael Kirk
7f3c07f601 better tab legibility 2021-02-26 16:30:14 -08:00
Michael Kirk
cf69dd0370 slightly better approach to get the cut-scene looking better 2021-02-26 16:30:14 -08:00
Michael Kirk
d99c0e0634 HACK to make cutscene look decent 2021-02-26 16:30:14 -08:00
Michael Kirk
bcba72cddf enable new day theme, but retain legacy theme for pregame 2021-02-26 16:30:14 -08:00
Michael Kirk
4b2f3888ed replace btn_solid w/ primary/outline as appropriate 2021-02-26 14:05:19 -08:00
Michael Kirk
b2a0ba1572 logo should always be black 2021-02-26 14:05:19 -08:00
Michael Kirk
143fdc3fd5 label_underlined_text for "link" buttons 2021-02-26 14:05:19 -08:00
Dustin Carlino
611b0e8045 Enable separate cycleways experiment for Seattle. #330
Cleaned up a few unused (and out-of-date) traffic signals. No impact on
gridlock. See issue for detailed rationale and plan.
2021-02-26 13:53:24 -08:00
Dustin Carlino
8e04cada2e actdev scenarios for the remainder of the sites.
Now the code can be simplified, because the scenario always exists.
2021-02-25 20:15:03 -08:00
Michael Kirk
3019a6fff1
Introduce Image component to handle themed icons (#537) 2021-02-25 18:06:19 -08:00
Michael Kirk
46593b01ed theme text field (and fixup layout) 2021-02-25 17:42:04 -08:00
Michael Kirk
22223d4338 per design, remove separator after title 2021-02-25 17:42:04 -08:00
Dustin Carlino
0feeb3cee4 When nothing's selected, don't display anything in the status bar. Previously, it was '...', which looked clickable. 2021-02-25 10:56:02 -08:00
Dustin Carlino
0320b2be89 Little actdev fixes:
- when leaving edit mode, still return to actdev mode
- rename "bike network" layer to "cycling activity", to emphasize it
  shows where cyclists have been going so far in the simulation and not
  everything on the ground
- add tooltip with exact counts to the cycling activity layer, just like
  throughput does
- add a "walking activity" button (throughput layer with filters
  pre-applied)
2021-02-25 10:54:03 -08:00
Dustin Carlino
6bfa569923
Support changing fonts in the middle of a line. Use this to draw numeric (#533)
IDs in the status bar as bold, not red.
2021-02-25 08:57:42 -08:00
Michael Kirk
494be704da style parking lot info like other info panels 2021-02-24 20:21:14 -08:00
Dustin Carlino
7e4d529872 Import all the actdev scenarios again, which have a fix for more diverse destinations.
Automated:
1) rm -fv `find data/system/gb/ | grep base.bin | xargs`
2) rm -fv `find data/system/gb/ | grep dutch.bin | xargs`
3) for city in allerton_bywater ashton_park aylesbury aylesham bailrigg bath_riverside bicester castlemead chapelford clackers_brook culm dickens_heath didcot dunton_hills ebbsfleet great_kneighton hampton handforth kidbrooke_village lcid long_marston micklefield newcastle_great_park poundbury priors_hall taunton_firepool taunton_garden tresham trumpington_meadows tyersal_lane upton wichelstowe wixams wynyard; do ./importer/actdev_scenarios.sh $city; done
2021-02-24 18:18:12 -08:00
Michael Kirk
ac30774b06 theme dropdowns and menus 2021-02-24 18:10:06 -08:00
Michael Kirk
c6d361c4b0 remove take_menu 2021-02-24 18:10:06 -08:00
Dustin Carlino
5577021ee5 When merging intersections and preserving simple turn restrictions, pay
attention to which intersection is being destroyed. Fixes #527 --
montlake and phinney both look correct now.

Regenerating everything. Actually, Phinney now runs, so adding a 4th
prebaked map!!! But Rainier regressed -- there's an issue with the
signal heuristics that's now a problem; I'll fix later.
2021-02-24 15:16:12 -08:00
Michael Kirk
d774aeae44 rename toggle/checkbox 2021-02-24 14:59:47 -08:00
Dustin Carlino
23b19fa7ce Add a quick debug tool to find roads with no turns between them, for #527 2021-02-24 11:00:59 -08:00
Michael Kirk
3ab7fc4361
Fix tooltips and hotkey for day-theme (#528) 2021-02-24 10:52:57 -08:00
Dustin Carlino
b36ebec0b9 Penalize unprotected left turns at the routing layer. #494
I experimented on the Rainier Valley map, which recently started
gridlocking due to too many cars doing this, to tune the value. Got it
running again! The two other maps keep running, with some trips on
average getting a little slower.
2021-02-23 19:32:00 -08:00
Dustin Carlino
0344e51170
Merge pull request #525 from a-b-street/prefetch
Make a web loader that can 'prefetch' abst in the background. cyipt/a…
2021-02-23 13:34:55 -08:00
Dustin Carlino
4c97687a5b Make a web loader that can 'prefetch' abst in the background. cyipt/actdev-ui#15 2021-02-23 11:45:39 -08:00
Michael Kirk
62a433ed8d btn_solid_panel is the same as btn_solid 2021-02-23 10:17:49 -08:00
Michael Kirk
e6ed2e67de Collapse button styles to be theme specified (no visible changes).
Button colors are now determined by the color scheme, but for now all
schemes are hardcoded to use the same "night" button colors. Read on for
rationale...

Previously, which button colors to use (dark/light) was specified inline
while building the UI.

Eventually we want to live in a world where color scheme determines:
- panel colors
- button colors
- text colors

The theme could already choose panel colors easily enough, but because
the buttons and text were not determined by theme, choosing anything
other than a black or dark grey panel color makes the buttons and text
unreadable.

This PR tackled the themeable "button colors" portion, but all themes
continue to use the "night" colors for now, because using the actual
"day" colors would still make the text unreadable.

next up: themeable text!

The one intentional regression is within the pregame tutorial,
which has always been styled differently from the rest of the app. An
expeditious hack has caused the prev/next/continue buttons to lose their
visible hover state. I'll restore this upon completing the day theme
work.
2021-02-23 09:52:33 -08:00
Dustin Carlino
ecf7c0c836
On HiDPI screens with low resolution, allow widgetry applications to (#521)
* On HiDPI screens with low resolution, allow widgetry applications to
override the default scale factor in order to achieve a minimum width.
2021-02-22 15:59:57 -08:00
Dustin Carlino
a7de2eef14 Disable parking simulation for actdev. I noticed people in Poundbury walking very far just to fetch their car, because the data about available parking is nonexistent. 2021-02-20 13:19:38 -08:00
Dustin Carlino
c7ae44d02a Start actdev simulations at 8, not 6. And refactor the ffw-after-starting pattern. cyipt/actdev#66 2021-02-20 13:12:41 -08:00
Dustin Carlino
0804f877dd Toggle between the baseline/go active scenario in actdev mode. Don't allow opening up any scenario. If we settle on a good background traffic generator, that can probably be exposed as an orthogonal checkbox. cyipt/actdev#66 2021-02-20 13:03:42 -08:00
Dustin Carlino
7592d192e3 Rename the blog gameplay mode to actdev, since it's specific to that integration. In the future if we have a simplified simulation running in a blog, we can figure out common requirements and refactor. 2021-02-20 12:44:27 -08:00
Dustin Carlino
b11cd48fb3 On the web, constantly update the --cam param in the URL with the current viewport. 2021-02-20 11:10:14 -08:00
Dustin Carlino
05622760fc Fix crash when opening the tutorial when the wrong map is previously opened. 2021-02-19 10:15:48 -08:00
Dustin Carlino
2d182a4582 Fix crash in commuter viz layer. The block-finding algorithm was written before pedestrian-only roads. 2021-02-17 12:00:13 -08:00
Dustin Carlino
4de7cb68c0 Start actdev mode with the baseline scenario, if it exists. Improve the follow shortcut. cyipt/actdev#66 2021-02-16 17:58:20 -08:00
Dustin Carlino
12d73e10bc Add a few shortcut buttons to the actdev UI. cyipt/actdev#66 2021-02-16 17:34:56 -08:00
Dustin Carlino
3f23a3c57c Remove hotkey buttons entirely, to get closer to Yuwen's button spec. 2021-02-15 13:02:29 -08:00
Dustin Carlino
bc2767b89e Refactor lots of places that construct paths to the data/input dir, which is always organized by city. This would've made the previous change way easier. #326 2021-02-13 18:30:01 -08:00
Dustin Carlino
52ca5f5ede Fix lakeslice gridlock with a manual signal policy at 23rd/Rainier. 2021-02-13 17:44:34 -08:00
Dustin Carlino
0f1c30a889 Exclude collisions.bin from KML viewer; it's not KML anymore.
And fix a crash on the challenges screen by not considering the actions
of inactive buttons to count as duplicates.
2021-02-13 17:06:06 -08:00
Dustin Carlino
39f5d50fcd The grand country split. #326
City names are now disambiguated by a two-letter country code. This
commit handles almost everything needed to make this transition. Main
next steps are fixing up map edits automatically and making the city
picker UI understand the extra level of hierarchy.

A little bit of fallout: lakeslice gridlocks again; this regression is
actually from the recent traffic signal changes, but I'm just now
regenerating everything. Will fix soon.
2021-02-13 15:45:59 -08:00
Dustin Carlino
a938b9c1e2 Move building procgen to a standalone tool. 2021-02-12 16:28:15 -08:00
Dustin Carlino
c43af59004 Change the building procgen algorithm to just use the Map, now DrawMap. Preparing to move it into the import phase, where we won't be able to generate the DrawMap. 2021-02-12 16:06:49 -08:00
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