Commit Graph

127 Commits

Author SHA1 Message Date
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
3eda17627b Handle binary or JSON scenarios 2020-11-30 14:00:19 -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
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
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
f30e1e2fff Dump the entire map to geojson 2020-11-10 13:02:00 -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
e17273dc31 Expose distance crossed per agent in the API. 2020-11-05 12:19:58 -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
1707b6fe37 Consolidate some PolyLine geometry code, and refactor some geom->geojson
mappings
2020-10-29 12:23:39 -07:00
Dustin Carlino
f187cf4bd8 Add an API call to export intersection geometry to geojson, for experimental streetmix3d integration.
To get an example:
> cargo run --bin headless -- --port=1234
> curl http://localhost:1234/map/get-intersection-geometry?id=291
2020-10-29 12:00:34 -07:00
Dustin Carlino
3ed7e73aa8 Use a u64 RNG seed, not a u8 2020-10-29 09:25:07 -07:00
Dustin Carlino
a579cb4f74 Add a sanity check to catch live map edit bugs faster. Deleted turns
aren't getting cleaned up properly.

Also fix broken headless build, woops.
2020-10-21 10:23:56 -07: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
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
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
6fd8422cf5 Woops, fix headless build break 2020-10-06 13:05:23 -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
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
cfa203a4d3 Add an API call to dump all traffic signals' current state 2020-10-02 21:03:29 -07:00
Dustin Carlino
4e4e11b404 A few documentation adjustments after
5de05a6fe3
2020-09-29 09:21:36 -07:00
Dustin Carlino
2c0f3a13f7 Distinguish capped/uncapped trips in experiment results. #325 2020-09-24 18:08:05 -07:00
Dustin Carlino
0d8ab143f9 Slightly better error handling in the API 2020-09-24 17:26:46 -07:00
Dustin Carlino
e1b079900a Don't touch SimFlags in headless at all 2020-09-24 17:10:07 -07:00
Dustin Carlino
c9fbf67989 Rearrange headless API to explicitly apply edits at the same time as
specifying the scenario to run. #325
2020-09-24 13:14:49 -07:00
Dustin Carlino
07a8a21fec Cap the busiest road. Not actually working yet, because all the commands
to manage edits are stomping on each other. #325
2020-09-24 12:08:46 -07:00
Dustin Carlino
47061fcb6c Expose road throughput through the API. Start a second Python
experiment, refactor a bit. #325
2020-09-24 11:23:19 -07:00
Dustin Carlino
fb377d3326 Fix headless --edits; was forgetting to fully apply the edits 2020-09-23 08:46:32 -07:00
Dustin Carlino
e1de43b75c Add a /map/set-edits API call 2020-09-21 10:18:02 -07:00
Dustin Carlino
5dd761ceb9 Add an --edits flag to headless 2020-09-18 10:43:58 -07:00
Dustin Carlino
9e38eedaaf Plumb sim flags through headless properly. Make the Go experiment print
comparison results ASAP.
2020-09-15 13:47:04 -07:00
Dustin Carlino
122bc82867 Add flags to Go example, use it to figure out if downtown can run with lots of people cancelled 2020-09-14 12:37:21 -07:00
Dustin Carlino
8cc61aafc8 Add a method to the API to modify a scenario. No callers/tests yet. 2020-09-09 19:52:15 -07:00
Dustin Carlino
5be4c2ca84 Add an API to add a new trip in the middle of the simulation. Fixes #313
[rebuild]
2020-09-06 13:53:31 -07:00
Dustin Carlino
74aca40c0c
Mechanicallyish rename TurnGroup -> Movement for #197, as decided in (#306)
https://github.com/dabreegster/abstreet/pull/302#discussion_r479571931
2020-08-29 15:18:54 -07:00
Dustin Carlino
0eb1309ace Add an API to get back all of the map edits so far 2020-08-28 14:09:44 -07:00
Dustin Carlino
83a5df7886 Add an API for the Xi'an group to get agent positions 2020-08-26 09:22:33 -07:00
Dustin Carlino
11832aa606 Record throughput through a traffic signal by direction, expose through
the API (#245), and beef up the Python example.

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

[rebuild]
2020-08-22 09:13:16 -07:00
Dustin Carlino
2783c3e180 Expose the granular delays through an API for reinforcement learning (#245). 2020-08-20 16:21:52 -07:00
Dustin Carlino
02569b1642 Get an end-to-end sample experiment working through the API and Python client 2020-08-18 12:52:38 -07:00
Dustin Carlino
5c337e2e8e Add some methods to the headless API for manipulating traffic signals, and start a Python client example. Everything still WIP. 2020-08-18 11:31:20 -07:00
Dustin Carlino
8ce2568280
turn the headless runner into a demo of a JSON API, for #245 (#268)
turn the headless runner into a demo of a JSON API, for #245
2020-08-11 16:44:19 -07:00
Dustin Carlino
5e8be61e6d fix #158, build break 2020-07-07 12:45:11 -07:00
Dustin Carlino
6696263a08 fix map_editor and headless build break, for #108 2020-06-30 13:49:24 -07:00
Dustin Carlino
90b556ac1f carve out a way to modify the weekday scenario in the UI. express the 5 day repeat using this 2020-06-27 11:56:45 -07:00
Dustin Carlino
0aaf9a1487 workaround repeated scenario running out of parking 2020-04-28 10:12:08 -07:00
Dustin Carlino
0eaf33ff46 stop generating RNGs from entropy. use the prebaked seed by default. allow explicitly changing the rng, but no use for that yet 2020-04-26 11:38:32 -07:00
Dustin Carlino
6594de3000 remove a hack from multi-day trips and stumble upon the people needing
10 cars

also prebake data again
2020-04-23 12:37:21 -07:00