Commit Graph

5176 Commits

Author SHA1 Message Date
Dustin Carlino
45e6a79e7d Use a HashMap to store driving queues. Modest speedup on the downtown
benchmark from ~101s to ~96s. #368
2020-10-20 16:23:18 -07:00
Dustin Carlino
36c1ce02ac Fix how scenario modifiers cancel trips, from
c435d3fce2. If we cancel one trip, have to
cancel all others after that.
2020-10-20 15:39:27 -07:00
Michael Kirk
6025d89598
Mkirk/perf 2 (#370)
* perf: return Line iterator rather than Vec

avoids allocating vector memory, cleans up some call sites too.
2020-10-20 11:51:00 -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
262c48721b Track some very basic stats on how many events we're processing. #368
Didn't run the benchmarks yet, but hopefully this should't slow things
down.
2020-10-19 19:12:19 -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
87d233299a Use a HashMap instead of a BTreeMap in Scheduler's internals. Doesn't
affect determistic simulation, but yields a crazy speedup. #54

- 8 hours of downtown: 122s to 102s!!!
- prebake: 181s to 160s
2020-10-19 16:30:41 -05:00
Michael Kirk
82827bd60b
perf: only allocate vector for inner_get_car_positions when necessary (#369) 2020-10-19 14:58:16 -05:00
Dustin Carlino
bb669b7c1a Dump a savestate in the run_scenario tool when interrupted. Useful for
investigating why downtown has 45k live agents by 5pm... #368
2020-10-19 14:52:26 -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
0a64cda947 Distinguish cancellation reasons for capped trips better. #325 2020-10-17 09:39:37 -05:00
Dustin Carlino
0259750eb3 Add a flag to detect drivers who're destined to pass through a currently delayed area. #325 2020-10-17 09:22:49 -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
32b11f03e8 Avoid cloning a car's path when creating it. #368
- 8 hours of downtown: 135s down to 126s
- prebaking: still hovering around 3m4s, plus or minus a few seconds
2020-10-16 13:12:19 -05:00
Dustin Carlino
e66b058439 Disable a simulation sanity check that happens frequently and hasn't had
problems in a long time. Marginal speedup of a few seconds. #368
2020-10-16 12:29:46 -05:00
Dustin Carlino
491f4bbffe Speed up the simulation by replacing BTreeMaps with a simple Vec lookup. #368
No behavioral changes. Dramatic performance boost:

- 8 hours of downtown: 170s down to 135s
- prebaking: 3m33s down to 3m4s
2020-10-16 12:10:05 -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
b3525f95a2 Enable profiling in the headless server. #368
(Although actually, I'm liking cargo flamegraph better than cpuprofiler.
Might rip out the support for cpuprofiler.)
2020-10-15 16:21:57 -05:00
Dustin Carlino
39ec4a13de Import forests as park areas (for Salzburg) and add a warning about JOSM. #366 2020-10-15 15:10:12 -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
20b4f15e86 Another attempt to write down a sort of roadmap for modularizing abst 2020-10-14 13:14:53 -05:00
Dustin Carlino
c0513a3d64 Reduce time to park/unpark offstreet when --infinite_parking is used.
Downtown forms gridock just from everyone pouring into Harborview! The
point of --infinite_parking is to simplify the sim by not modelling the
impact of parking. #368
2020-10-14 12:40:26 -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
ab270ce9f5 Some versions of python apparently need to explicitly be told utf8
encoding to read a .json
2020-10-14 11:28:02 -05:00
Dustin Carlino
cd1d790659 And fix the headless example scripts to not pass an argument to headless, woops 2020-10-14 10:49:24 -05:00
Dustin Carlino
eb7ee6d57d Fix a few build warnings and breaks, and document the headless server a
bit more
2020-10-14 10:46:18 -05:00
Dustin Carlino
aee053312d Document strategy for resolving gridlock 2020-10-13 11:44:13 -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
4d549f80df A fresh attempt at overviewing the map model docs 2020-10-11 12:54:17 -07: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
df873a5cf9 Add an option to totally disable turn conflicts in the simulation. Can we make progress on large scenarios only with vehicle queueing rules? (Didn't evaluate this yet, don't want to burn through laptop battery currently)
Also fix zooming in on traffic signals crashing with freeform policy
2020-10-11 10:14:48 -07:00
Dustin Carlino
212ad761fd Switch to Box<dyn Error> in abstutil. This makes it easier to have
higher-level APIs return some kind of string error. Pretty much nowhere
do we care about error types.
2020-10-11 08:36:02 -07:00
Dustin Carlino
b9c8e2231e new release 2020-10-10 14:02:34 -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