Commit Graph

2046 Commits

Author SHA1 Message Date
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