Commit Graph

962 Commits

Author SHA1 Message Date
Dustin Carlino
b8489cbea8 switched sim scheduler to a proper BinaryHeap + tracker for valid time
of a command. approximately 3x speedup in release mode -- simulating
midnight -> 5am for full psrc day on 23rd goes from ~30s to ~9s!!!
further optimization definitely possible
2019-08-09 16:09:13 -07:00
Dustin Carlino
758c5494d8 remove old unused deps 2019-08-09 13:34:40 -07:00
Dustin Carlino
950fb65bea visually expose time since last completed turn 2019-08-07 10:37:25 -07:00
Dustin Carlino
04566efbd9 tracking time since last turn completed. want to expose this in the
unzoomed view, but major perf regression from plumbing it back...
2019-08-06 15:57:15 -07:00
Dustin Carlino
c64243cd4f remove slow, useless ShowActivity plugin 2019-08-06 15:22:51 -07:00
Dustin Carlino
bf5c45cd72 menu to load any savestate 2019-08-06 13:18:34 -07:00
Dustin Carlino
1ff4933f6a unblock agents at stop signs in a few cases 2019-08-06 11:56:46 -07:00
Dustin Carlino
e5850dcc7b fix crash in trip_status for border trips 2019-08-06 09:45:44 -07:00
Dustin Carlino
77c01580f1 refactoring path references... 2019-08-04 17:11:33 -07:00
Dustin Carlino
27e933fbf8 replace small_spawn with something to instantiate any scenario for the map 2019-08-04 08:18:53 -07:00
Dustin Carlino
4a9a40c09f cycle indices got out of sync easily. no need to store them at all. 2019-08-02 16:25:22 +02:00
Dustin Carlino
334081b844 very basic tool to explore an agent's full trip 2019-06-27 11:58:55 -07:00
Dustin Carlino
ab088479dd use bincode, not json, for savestates. add loading screens around saving/loading 2019-06-27 09:56:04 -07:00
Dustin Carlino
284a0f8c69 dont start crossing a traffic signal if the timer will run out. optimistically move at full speed. 2019-06-20 15:36:31 -07:00
Dustin Carlino
5a3862dda0 expunge the concept of traffic signals being in overtime. not realistic to how people drive, the current rules allow progress without impacting safety. also disable gridlock detection -- noisy results, easier to visually spot, and slow. 2019-06-19 14:51:09 -07:00
Dustin Carlino
1835155a47 dont recalculate pathfinder after every map edit; just once at the end 2019-06-18 14:28:14 -07:00
Dustin Carlino
b2874193ec limit the amount of realtime spent on sim step when running live. that way, if speed is too high, the UI doesnt seem to just freeze 2019-06-14 12:28:13 -07:00
Dustin Carlino
0acfc84c3c browse trips in scoreboard 2019-06-13 17:19:50 -07:00
Dustin Carlino
8b5690c1a4 now actually plumbing data for scoreboard 2019-06-13 14:46:28 -07:00
Dustin Carlino
e0edc4851d starting a blank scoreboard for sandbox mode. removing old defunct attempts at
score stuff first...
2019-06-13 14:06:35 -07:00
Dustin Carlino
4e2d16af29 consistently using file extensions of .json and .bin, merging duplicate abstutil io functions accordingly 2019-06-11 14:30:11 -07:00
Dustin Carlino
3ab49fd795 use a loading screen and timer when jumping forward large amounts 2019-06-10 12:32:54 -07:00
Dustin Carlino
c76738a678 upgraded to rustc 1.35, fixing a few cases of https://github.com/rust-lang/rust/issues/59159 2019-06-09 14:09:27 -07:00
Dustin Carlino
8eb03b81c3 remove edits_name from SimFlags and refactor loading MapEdits by name. fixes bug where quitting an a/b test breaks loading other maps by retaining edits_name 2019-06-08 16:32:10 -07:00
Dustin Carlino
d0de5d8bd6 make sim.get_stats actually fast; why was I ever doing the other way? 2019-06-08 13:05:29 -07:00
Dustin Carlino
7d4df3df8e do a/b test setup in one loading screen timer 2019-06-07 11:04:16 -07:00
Dustin Carlino
c29769a6b4 print bus stops and routes nicely in OSD 2019-06-06 15:31:59 -07:00
Dustin Carlino
5ab5b7b3d3 actually apply scenario name when instantiating to sim run name, so savestates look nice. fix find next/prev savestate to not require exact current match -- why did I ever do that? 2019-06-06 11:55:49 -07:00
Dustin Carlino
df88486b5e better default for run name when there are scenarios 2019-06-05 17:23:04 -07:00
Dustin Carlino
4f6cb2db60 fixed bug with UpdateLaggyHead's blind retry 2019-06-05 17:08:45 -07:00
Dustin Carlino
0923bfd1ac write scenarios in binary, not json. -shrug- 2019-06-05 13:32:02 -07:00
Dustin Carlino
b2ad0b5ae7 converting PSRC trips to a repeatable scenario. along the way,
parallelizing and refactoring a bit of psrc stuff
2019-06-05 12:58:06 -07:00
Dustin Carlino
c8846b9e74 color unzoomed agents by mode, not stuckness 2019-06-04 18:38:26 -07:00
Dustin Carlino
12d981c654 speed up initial trip spawning by not constantly maintaining an in-order priority queue 2019-06-04 17:37:53 -07:00
Dustin Carlino
69a7b92499 make headless use something custom, remove Benchmark. oops, and also convert ab test mode to SpeedControls. 2019-06-04 16:15:46 -07:00
Dustin Carlino
46bf806b49 make loading screens more accurately portray what's happening, by adjusting timers 2019-06-03 11:50:34 -07:00
Dustin Carlino
661fedaa28 fix PSRC trips with borders on larger maps 2019-06-01 18:41:45 -07:00
Dustin Carlino
314489c63f overhaul unzoomed agent rendering -- just colored circles 2019-06-01 10:13:17 -07:00
Dustin Carlino
142f84a232 display passengers on a bus in debug mode. also sort PSRC trips by
departure time to make later viz a little easier to follow
2019-05-31 13:52:14 -07:00
Dustin Carlino
c65bb09801 dont allow spawning random agents after seeding psrc trips 2019-05-27 18:00:28 -07:00
Dustin Carlino
72ac85f540 stability round: loading ballard broke, spawning PSRC trips in most maps hit little bugs 2019-05-27 10:45:53 -07:00
Dustin Carlino
0e298c756f make it a bit easier to jump to the time when trips are actually
starting. and prepping popdat for release
2019-05-26 21:31:44 -07:00
Dustin Carlino
40efcc7b05 generalize a parallelize method for timers, use for all trip viz 2019-05-25 19:35:35 -07:00
Dustin Carlino
bc69a6b4d4 spawn as many trips from PSRC as possible 2019-05-25 18:34:50 -07:00
Dustin Carlino
ef60359cc8 spawn trips from data. not working yet; hitting a problem with
sidewalk->bike lane on oneways
2019-05-25 18:22:07 -07:00
Dustin Carlino
1cdbe0ea81 refactor parallelized pathfinding and use it in trip viz too 2019-05-24 12:50:01 -07:00
Dustin Carlino
f674527ef2 interpolate along route for trip viz 2019-05-24 12:28:57 -07:00
Dustin Carlino
6819889f49 draw car blinkers for everybody Queued too 2019-05-15 15:05:45 -07:00
Dustin Carlino
75d1cdd3b9 slightly improve traffic signal runtime: Priority > Yield 2019-05-13 15:47:25 -07:00
Dustin Carlino
ba71d2d5e6 dont be so confusing with CarAppearing in interactive commands -- dont retry if there's not room 2019-05-12 15:06:12 -07:00
Dustin Carlino
b9f80f3e0f make cars pause at stop signs properly 2019-05-12 08:50:46 -07:00
Dustin Carlino
8bd4ab72d4 draw full stop sign octagon when editing a single intersection 2019-05-10 15:23:31 -07:00
Dustin Carlino
8e949d5fa9 make --num_agents work exactly when specified 2019-05-09 10:51:07 -07:00
Dustin Carlino
a4f6a773a9 fix up time limits for headless/tests. fix a few tests now that peds
walk slowly.
2019-05-08 20:05:52 -07:00
Dustin Carlino
fce5d0f6dc animate pedestrian feet smoothly regardless of sim speed 2019-05-08 18:34:41 -07:00
Dustin Carlino
60eea9b413 change sim API to step forward by a variable duration, not a fixed timestep. adjust UI callers accordingly. some bugs introduced, but solid start 2019-05-08 17:44:01 -07:00
Dustin Carlino
73ae88bd98 adjust how periodic savestating happens to prep for truly variable timesteps 2019-05-08 12:36:46 -07:00
Dustin Carlino
89b74b9137 random ped speeds. lots of plumbing needed to implement this. :\ 2019-05-07 10:54:58 -07:00
Dustin Carlino
d66b0cb511 in most causes, dont have route previews cover half of peds 2019-05-06 19:19:20 -07:00
Dustin Carlino
fd6155ef0e make peds travel at a realistic speed 2019-05-06 18:51:16 -07:00
Dustin Carlino
95b664e394 one fixed bike length. makes rendering easier, and having different lengths is pretty useless 2019-05-06 18:06:49 -07:00
Dustin Carlino
b060a3ecc2 giving pedestrians more shape 2019-05-06 12:45:52 -07:00
Dustin Carlino
103e7f28ca combine TripLeg::Bike and ::Drive, fixing a bug and simplifying some cases 2019-05-06 11:21:29 -07:00
Dustin Carlino
3ba56a76fb fix a panic with bike parking 2019-05-06 11:00:41 -07:00
Dustin Carlino
f31f46e483 draw peds on one side of the sidewalk 2019-05-05 23:18:24 -07:00
Dustin Carlino
e25af2e450 remove sim's dependency on ezgui and hopefully speed up draw_unzoomed in the process 2019-05-01 19:32:39 -07:00
Dustin Carlino
1fabf29747 start the sandbox mode, just with sim controls. remove unused sim score
plugin.
2019-04-25 12:22:12 -07:00
Dustin Carlino
beba58924c pedestrian turn arrows 2019-04-19 15:35:51 -07:00
Dustin Carlino
dc2649ad59 fix some crashes when spawning agents 2019-04-18 18:42:52 -07:00
Dustin Carlino
5ed6f2256e also spawn peds around an intersection 2019-04-16 13:37:30 -07:00
Dustin Carlino
7885477e59 a round of clippy 2019-04-15 18:54:19 -07:00
Dustin Carlino
834384fb10 remove the Trace type rename; serves no purpose. also the unused
stopping_buffer; no more lookahead
2019-04-11 10:27:28 -07:00
Dustin Carlino
c25d544fe2 fixing edits_name in map paths and also supporting Windows backslashes in paths 2019-04-10 11:22:36 -07:00
Dustin Carlino
20e41fa2b4 cleaning up unused data in ParkingSpotGeometry 2019-04-10 10:37:16 -07:00
Dustin Carlino
27fc74c05a implement a stop sign-ish policy 2019-04-10 10:22:13 -07:00
Dustin Carlino
da3152a0e7 revamp road editor plugin. recalculate DrawMap changes. fixing some
apply_edits bugs
2019-03-18 18:53:32 -07:00
Dustin Carlino
3f47c00e03 slowly reintroduce MapEdits, just with lane type overrides. load and
"apply" them
2019-03-18 16:40:27 -07:00
Dustin Carlino
3ea3ea199a completely remove most traces of MapEdits. quietly disconnect some
editor plugins
2019-03-18 15:37:02 -07:00
Dustin Carlino
f99a20163d rip out stubbed MapEdits stuff in sim layer, letting basic UI for
editing work again. only let UI plugins work if sim is empty.
2019-03-18 13:36:46 -07:00
Dustin Carlino
c7dc028601 Display for Traversable 2019-03-18 13:21:57 -07:00
Dustin Carlino
1a395d7e4f clean up dead code 2019-03-17 20:31:48 -07:00
Dustin Carlino
7422877bcb handle ending while clipping into stuff 2019-03-17 18:48:24 -07:00
Dustin Carlino
440ff358cd option to headless to 'draw' everything, flush out all bugs 2019-03-17 18:13:30 -07:00
Dustin Carlino
ef4a4b18cf handle short lanes for get_car_positions 2019-03-17 18:04:25 -07:00
Dustin Carlino
96785a3c5c oops, considering somebody out of the way slightly early wasnt actually safe, it turns out 2019-03-17 17:55:24 -07:00
Dustin Carlino
652e01ba87 deal with short lanes. also dont mark turn_finished until the car is
totally out the intersection.
2019-03-17 17:13:28 -07:00
Dustin Carlino
b8c15b5ced different formulation, where follower of laggy leader immediately at end of queue when laggy leader is out of the way. make get_car_positions recurse. great start! 2019-03-16 15:26:37 -07:00
Dustin Carlino
c40c4fdff4 eager impl to not hit the back of cars. no handling of short lanes, and
follower waits before starting to cross the end of a lane.
2019-03-16 14:53:46 -07:00
Dustin Carlino
db536a04d5 refactor an exact_slice for polylines 2019-03-15 14:02:43 -07:00
Dustin Carlino
961b70d1f4 kind of improved draw_unzoomed, except there are just tons of weird
situations to represent
2019-03-15 13:39:25 -07:00
Dustin Carlino
88c9630f7a check for gridlock every 5m and savestate when it happens 2019-03-15 12:17:35 -07:00
Dustin Carlino
dd198bb37f overly conservative gridlock detection, triggered kind of manually 2019-03-15 12:10:47 -07:00
Dustin Carlino
1ba7e5d325 woops, not so easy to figure out a proper retry for room_at_end 2019-03-14 16:05:07 -07:00
Dustin Carlino
e482e10666 show agent state in tooltips 2019-03-14 14:36:46 -07:00
Dustin Carlino
17ef2c5a3a separate Queued and WaitingToTurn states for cars. populate
waiting_to_turn in DrawCar
2019-03-13 15:14:49 -07:00
Dustin Carlino
15f6981b1d make tests pull events new way, stop returning from step(). fix termion
and test runner.
2019-03-12 13:29:58 -07:00
Dustin Carlino
505b0a9496 store events in Sim, not a plugin. switch tutorial mode. 2019-03-12 13:23:39 -07:00
Dustin Carlino
5711e343e8 spawn cars around an intersection 2019-03-12 11:06:42 -07:00
Dustin Carlino
5ca359998c upgrade some dependencies and list data source licenses in README 2019-03-11 16:04:47 -07:00
Dustin Carlino
5bba5ce31e track num_active_trips to speedup is_done query 2019-03-08 16:02:56 -08:00
Dustin Carlino
8f5dd61ce5 handle cars with one-step routes 2019-03-08 15:57:20 -08:00
Dustin Carlino
7adf7d4e27 print what paths fail in trip transitions, fix a tiny parking sim bug 2019-03-08 12:52:37 -08:00
Dustin Carlino
5013cae4f9 fixing tests 2019-03-08 12:19:05 -08:00
Dustin Carlino
6fd021be91 filter out nonsense trips 2019-03-08 11:06:55 -08:00
Dustin Carlino
1eebea8001 cutting over to new graph search in some cases. adding support for
one-step walking paths.
2019-03-08 10:47:39 -08:00
Dustin Carlino
08e54612b8 cache bus routes 2019-03-06 18:16:08 -08:00
Dustin Carlino
a975d0efd4 print progress while calculating paths in parallel 2019-03-06 17:41:28 -08:00
Dustin Carlino
4ae478a7a5 smarter estimate about cars queued on last step... but disabled it :( 2019-03-05 18:12:32 -08:00
Dustin Carlino
ce340f5668 more frequent status updates, based on real time passing, not sim time 2019-03-05 17:10:27 -08:00
Dustin Carlino
063fb85155 amp up BLIND_RETRY to something reasonable for the remaining, difficult cases. fix a race condition where a bus blips through the Queued state. and deal with idling state causing queued followers 2019-03-05 16:57:27 -08:00
Dustin Carlino
84d24da73d decent retries for intersections 2019-03-05 15:32:36 -08:00
Dustin Carlino
2a7da98a09 give some control of retries to intersections 2019-03-05 14:32:33 -08:00
Dustin Carlino
1d0dca77b8 woops, was still advancing time in 0.1s chunks 2019-03-05 14:02:39 -08:00
Dustin Carlino
bc9a9aa360 histogram of how far events are in the future 2019-03-05 13:43:49 -08:00
Dustin Carlino
3567f2451f count active agents better 2019-03-05 10:08:06 -08:00
Dustin Carlino
194d3b3b57 keep simple state when roaming for parking 2019-03-05 10:00:05 -08:00
Dustin Carlino
0bcb18b4b0 handle unreachable case 2019-03-05 09:36:48 -08:00
Dustin Carlino
0c824e8d0d flag to headless to control sim size, roughly 2019-03-05 09:30:39 -08:00
Dustin Carlino
f866c99758 add some basic stats for how many events go through, how many are EPSILON in the future 2019-03-05 09:17:36 -08:00
Dustin Carlino
3047c67e2b modest speedup using binary search 2019-03-04 21:08:45 -08:00
Dustin Carlino
b69c01ea5f preps to swap out scheduler priority queue impl 2019-03-04 20:50:36 -08:00
Dustin Carlino
88ce753243 making one PriorityQueue for all of sim, doing dispatch 2019-03-04 14:56:38 -08:00
Dustin Carlino
434a4aa019 cutover driving sim to events! 2019-03-04 14:11:27 -08:00
Dustin Carlino
b58a4097b5 changing PriorityQueue to emit one item at a time 2019-03-04 13:12:38 -08:00
Dustin Carlino
6f0dffdc75 move all driving sim to per-car updates, by calculating distances only
when needed
2019-03-04 13:04:23 -08:00
Dustin Carlino
0cfbc2f7da move the code to advance Queued head cars to next turn/lane into the
main per-car loop
2019-03-04 12:15:16 -08:00
Dustin Carlino
8e7cc2c11e delete peds inline 2019-03-04 11:03:15 -08:00
Dustin Carlino
b52e7bd991 lift Idling handler to the loop that's trivially event-based 2019-03-04 10:47:20 -08:00
Dustin Carlino
385a9044db store requests to intersections, as a prep for notifying them when to retry 2019-03-03 20:01:38 -08:00
Dustin Carlino
d8ad1675dc handle sim running too damn fast ;) 2019-03-03 19:05:57 -08:00
Dustin Carlino
2ac973f245 properly update followers that're Crossing and become unblocked 2019-03-03 18:41:45 -08:00
Dustin Carlino
ab52e9ac38 stop returning borrows from get_car_positions 2019-03-03 18:19:12 -08:00
Dustin Carlino
b1dff917c9 make a new WaitingToTurn state for peds 2019-03-03 17:50:13 -08:00
Dustin Carlino
92fd802f83 vague cleanup before making driving sim be event-based 2019-03-03 16:05:17 -08:00
Dustin Carlino
5f08bfca0c store Cars in DrivingSimState, not Queue 2019-03-03 15:12:25 -08:00
Dustin Carlino
f2b0468b8b speed up tests by loading precomputed map 2019-03-03 14:40:59 -08:00
Dustin Carlino
348c7b2b35 making walking sim be (mostly) event-based 2019-03-03 14:39:39 -08:00
Dustin Carlino
8f3b2b8224 extract out a priority queue helper, still slow impl 2019-03-03 14:22:25 -08:00
Dustin Carlino
9d1bb00fbd adding a test for bikes 2019-03-02 17:22:41 -08:00
Dustin Carlino
bcb0268f7a refactoring TripManager 2019-03-01 22:43:27 -08:00
Dustin Carlino
0f71ee5210 make peds leave bus 2019-03-01 22:33:15 -08:00
Dustin Carlino
313841b9de make peds board buses 2019-03-01 22:09:33 -08:00
Dustin Carlino
9c916e5d11 make sure buses dont block a sim from being considered done 2019-03-01 15:39:34 -08:00
Dustin Carlino
81d604367e make buses cycle between stops. move the waiting at stop state to
CarState, since idling in Queued doesn't make sense
2019-03-01 15:25:42 -08:00
Dustin Carlino
c99d9f5138 bringing back skeleton of transit sim... 2019-03-01 13:30:41 -08:00
Dustin Carlino
5f6d7e1b66 fix sim nondet test failure by using BTreeMap in my MultiMap 2019-03-01 12:16:52 -08:00
Dustin Carlino
8d9a44fd76 making sure to call TripManager and publish events for most transitions 2019-02-28 19:07:40 -08:00
Dustin Carlino
05ffb18fbc publishing an event to make the parking tests work 2019-02-28 10:54:03 -08:00
Dustin Carlino
e6ff4481e7 do ID allocation more up-front 2019-02-27 14:29:45 -08:00
Dustin Carlino
84c1a94f49 implement test helper for seeding parked cars 2019-02-27 13:23:13 -08:00
Dustin Carlino
50451b6120 make tests build again. cleanup sim::load 2019-02-27 13:16:28 -08:00
Dustin Carlino
dd6921323d delete a little commented out code 2019-02-27 12:24:57 -08:00
Dustin Carlino
54935ab5de draw unzoomed cars, color peds preparing bikes 2019-02-27 12:23:15 -08:00
Dustin Carlino
c6f64cbec5 clean up imports and visibility in sim 2019-02-27 12:19:38 -08:00
Dustin Carlino
f6a6bb888e cleanup crate dependencies, fix spawning car from lane, reduce
mutability of debug_car
2019-02-27 12:06:29 -08:00
Dustin Carlino
11c549331e finally, the big cutover! editor and headless work. tests dont compile. 2019-02-27 11:53:45 -08:00
Dustin Carlino
8e522e13dc prepping helpers to spawn ala carte trips 2019-02-27 11:25:13 -08:00
Dustin Carlino
be797e7e6f rearrange sim crate code to prep for easier cutover 2019-02-27 09:38:52 -08:00
Dustin Carlino
350428b6e9 impl remaining Sim methods 2019-02-27 09:33:49 -08:00
Dustin Carlino
b3b4f82f45 rename CarState enum 2019-02-26 16:41:32 -08:00
Dustin Carlino
b0abf7abff make time private in Sim, force clear API 2019-02-26 14:23:59 -08:00
Dustin Carlino
76ee37c077 get rid of Tick externally 2019-02-26 14:21:57 -08:00
Dustin Carlino
42c7c21246 removing many external dependencies on Tick. moving time parsing to
Duration.
2019-02-26 14:09:08 -08:00
Dustin Carlino
d5181f6bf8 own time inside of Sim 2019-02-26 13:08:56 -08:00
Dustin Carlino
b6eb62aa62 give commands to spawn peds, but don't do anything with them yet 2019-02-23 11:48:42 -08:00
Dustin Carlino
6673807422 bring in parking code and some structures needed for it. dont use it yet. switch to Vehicle. 2019-02-22 11:09:33 -08:00
Dustin Carlino
a45b4510b6 speed up neighborhood<->building and road matching during scenario instantiation 2019-02-21 11:33:56 -08:00
Dustin Carlino
e4ef1ec79d removing log from sim 2019-02-20 11:22:51 -08:00
Dustin Carlino
c2791a6ead using Warn in all of geom 2019-02-20 10:36:58 -08:00
Dustin Carlino
46fb2c94b5 implement DrawAgents 2019-02-20 08:11:03 -08:00
Dustin Carlino
ad16247695 active agents per road in unzoomed mode 2019-02-16 17:55:02 -08:00
Dustin Carlino
2578219610 skip spawning vehicles when they wont fit in the requested spot. improve
some error messages related to spawning and add a timer for an
apparently very slow step
2019-02-16 11:51:42 -08:00
Dustin Carlino
ec01207369 try upgrading rand and serde again 2019-02-10 15:57:28 -08:00
Dustin Carlino
51399e19ed organize convert_osm lib better. also make clippy build everything
again.
2019-02-10 15:52:21 -08:00
Dustin Carlino
f6a53797f0 manually glueing together some fixed intervals 2019-02-06 22:53:43 -08:00
Dustin Carlino
3bf4807364 thoughts on a different simulation model and a plugin skeleton to play
with it
2019-02-06 19:14:19 -08:00
Dustin Carlino
f454c691f0 making a profiler to breakdown what parts of sim are slowest 2019-02-05 14:04:03 -08:00
Dustin Carlino
6b29a2a38d fixing issues with bikes spawning close to intersections, by making the
bound be really conservative
2019-02-05 09:56:07 -08:00
Dustin Carlino
6b3a77c9ec solve the problem with bikes entering too short 2019-02-04 21:05:43 -08:00
Dustin Carlino
17a0b57644 squeeze in vehicle type to CarID, for debugging convenience 2019-02-04 20:26:22 -08:00
Dustin Carlino
acc298a6ab dont spawn under vehicle length... but hmm, seeing another problem. need
easier debugging first.
2019-02-04 19:16:17 -08:00
Dustin Carlino
91ae32cd4a dont spawn in front of turning agents 2019-02-04 18:32:55 -08:00
Dustin Carlino
84df699927 remove hack for cars winding up too close. if this is still happening, let's solve using the Intent stuff in a different way. 2019-02-04 15:49:39 -08:00
Dustin Carlino
be1735d715 just skip bike trips that are silly loops 2019-02-04 15:32:46 -08:00
Dustin Carlino
a0aed4f200 fix bugs where cars couldnt loop around to reach a building earlier on
the same lane
2019-02-04 14:58:27 -08:00
Dustin Carlino
09193d5f51 be able to spawn cars from buildings too 2019-02-04 13:58:23 -08:00
Dustin Carlino
13698cdb20 small fixes... debug buildings, spawn from headless, timer for
instantiating a scenario
2019-02-04 11:56:54 -08:00
Dustin Carlino
793410aa16 make peds on_exit intersections when they try to chain two turns. ALL
TESTS PASS.
2019-02-04 09:14:32 -08:00
Dustin Carlino
177f639f7b make sure bikes can actually start moving 2019-02-03 22:38:21 -08:00
Dustin Carlino
2f812e6265 correct slight overshooting. investigate a bus reaching a stop with
non-zero speed
2019-02-03 18:47:47 -08:00
Dustin Carlino
7b045146da ah, there are speeds low enough to round off to zero distance when applied with the timestep. systematically get rid of EPSILON_SPEED. 2019-02-03 18:10:29 -08:00
Dustin Carlino
bfd0465a3d track the intent of chosen acceleration, to see why overshooting is happening 2019-02-03 09:41:29 -08:00
Dustin Carlino
f9ccecad26 fix spawning of vehicles on borders 2019-02-02 14:25:50 -08:00
Dustin Carlino
e330061b91 undo rendering hacks for tiny cars at borders, without fixing the spawning problem yet 2019-02-02 14:16:15 -08:00
Dustin Carlino
bc4ba647bc caching Renderables for agents 2019-02-01 15:10:35 -08:00
Dustin Carlino
3451b65823 lazily compute SimStats 2019-02-01 14:31:35 -08:00
Dustin Carlino
58c4cb5e1b dont look up full SimStats unless needed 2019-02-01 13:45:37 -08:00
Dustin Carlino
0a79b354b2 remove ability to create Map from InitialMap, now that we have a separate debugger 2019-02-01 11:09:22 -08:00
Dustin Carlino
097d1591e1 load previous/next initial map. refactor this functionality for sim
savestates
2019-02-01 11:03:57 -08:00
Dustin Carlino
0346166304 starting a generic viewer that works with InitialMap 2019-01-31 16:33:43 -08:00
Dustin Carlino
48a5556f17 improving debuggability of merged maps by printing intersections to look at 2019-01-31 14:54:30 -08:00
Dustin Carlino
2282c5658d make geom types Ord now 2019-01-31 14:29:47 -08:00
Dustin Carlino
b9e96618da stop abusing max distance for path tracing. disable some newly brokenish stuff 2019-01-31 13:09:15 -08:00
Dustin Carlino
23db7cc646 try really dumb trimming... it works :O 2019-01-31 08:53:30 -08:00
Dustin Carlino
7519fdf584 using strong Distance types in many more places 2019-01-30 15:54:54 -08:00
Dustin Carlino
3e00789960 allow a NaN in kinematics 2019-01-30 15:02:12 -08:00
Dustin Carlino
ac2b8f5a9a switch to new units in sim... and editor, darnit, accidentally ammended
commit
2019-01-30 14:19:48 -08:00
Dustin Carlino
2a70efde5f simplify: slice can fail. all the callers dont have to check for EPSILON_DIST
(also, disable not-so-useful geom unit tests that use randomness)
2019-01-29 18:53:04 -08:00
Dustin Carlino
ca058331e5 fixing path trace cases that wind up with points too squished together 2019-01-29 16:23:01 -08:00
Dustin Carlino
6aaa55891e saving lots of InitialMaps... and manually loading one at a time 2019-01-28 09:42:28 -08:00
Dustin Carlino
a25f358295 hacking around top menu issue mostly 2019-01-23 16:19:32 -08:00
Dustin Carlino
1e7b8f2dfc end interactive trips at border nodes 2019-01-21 13:53:24 -08:00
Dustin Carlino
c87c7b32ae make interactive driving trips still end at a building 2019-01-21 12:21:26 -08:00
Dustin Carlino
4b42f70da4 actually spawning walking trips... 2019-01-21 11:59:59 -08:00
Dustin Carlino
f018158aa3 remove copyright comment from remaining files 2019-01-20 13:57:55 -08:00
Dustin Carlino
0c32faa40c moving neighborhood to map_model crate, so convert_osm can stop depending on sim 2019-01-17 15:29:00 -08:00
Dustin Carlino
76dc85d5c8 remove unnecessarily boxed closures, and use generics instead 2019-01-17 15:22:31 -08:00
Dustin Carlino
e8e119dbbf remove all the polyline shifting/polygon variants that might fail 2019-01-15 15:25:00 -08:00
Dustin Carlino
daa55026ae making shift left/right for polyline too 2019-01-12 14:13:15 -08:00
Dustin Carlino
41e487bbcc time limit on completion tests 2019-01-11 11:28:42 -08:00
Dustin Carlino
c09fa98f57 upgrade a few dependencies 2019-01-11 10:55:58 -08:00
Dustin Carlino
eefd9abdc6 render cars using slice 2019-01-10 17:11:34 -08:00
Dustin Carlino
3f2a7d6e68 display when a traffic signal is in overtime 2018-12-14 12:01:00 -08:00
Dustin Carlino
a8ee229793 fix traffic signal bugs letting TurnPriority::Banned cars in on a cycle 2018-12-14 11:40:18 -08:00
Dustin Carlino
28d025103c show accepted agents when hovering over an intersection 2018-12-14 11:29:14 -08:00
Dustin Carlino
577e674e51 setting up a scenario for the first tutorial (commit 1,000!) 2018-12-11 10:14:21 -08:00
Dustin Carlino
e76dede109 label synthetic intersections 2018-12-10 15:59:48 -08:00
Dustin Carlino
dbfd410b0a force synthetic intersections into being border nodes too 2018-12-10 15:45:34 -08:00
Dustin Carlino
4018f1bbf6 dealing with a bike stuck trying to end a trip near the end of a lane 2018-12-10 14:27:03 -08:00
Dustin Carlino
dcd60dce88 dealing with c1483, who's overshooting a weird ending at 0m along a lane 2018-12-10 14:02:30 -08:00
Dustin Carlino
79e9e24cf6 few tiny rewrites now that we have NLL 2018-12-09 18:26:32 -08:00
Dustin Carlino
9ef7e68421 work around the poor sucker who's trying to park, but winds up on 520. 2018-12-09 18:25:03 -08:00
Dustin Carlino
ebc5419f9a jump to previous/next savestate 2018-12-09 17:47:54 -08:00
Dustin Carlino
b1d76b62ba include trip goal in agent tooltip, to figure out what c1470 is up to 2018-12-09 14:55:16 -08:00
Dustin Carlino
897833e446 hacking around bug where cars follow too closely. 2018-12-09 14:20:03 -08:00
Dustin Carlino
caae9bcc36 clippy pt3 2018-12-09 11:33:24 -08:00
Dustin Carlino
f48757c5e7 clippy pt2 2018-12-08 19:56:54 -08:00
Dustin Carlino
ab86835611 initially playing with clippy... pt1 2018-12-08 18:21:56 -08:00
Dustin Carlino
e71fa25229 moving sim_controls into SimMode, expressing it as a Paused/Running state 2018-12-08 13:51:31 -08:00
Dustin Carlino
b7edc07580 moving a few inlined unit tests to my test framework. didnt spot these before. 2018-12-06 12:59:08 -08:00
Dustin Carlino
6a32166452 rewrite lots of stuff with NLL! \o/ 2018-12-06 12:47:20 -08:00
Dustin Carlino
91b2b07fbd remove more extern crate's; import macros directly 2018-12-06 11:22:12 -08:00
Dustin Carlino
375a923a9d try removing most extern crate's 2018-12-06 11:00:13 -08:00
Dustin Carlino
f64f411093 upgrade all crates to 2018 in Cargo.toml. this requires switching to
crate:: paths everywhere. not yet fiddling with 'extern crate's
2018-12-06 10:57:31 -08:00
Dustin Carlino
927d8e8f25 fixing warnings caught by cargo fix 2018-12-06 10:15:51 -08:00
Dustin Carlino
6a0cd7f71e rust 2018: run the new fmt, delete the unneeded script 2018-12-06 10:05:50 -08:00
Dustin Carlino
afea20cf1b rearrange parking model data to speed things up more 2018-12-03 11:59:21 -08:00
Dustin Carlino
96ca681979 speeding up time travel plugin by pulling all agents, not iterating map elements 2018-12-03 11:45:21 -08:00
Dustin Carlino
ac00e24dda woops, agent_to_trip isn't defined for parked cars 2018-12-03 10:57:00 -08:00
Dustin Carlino
4d7c1203a6 the great control layer merge 2018-11-30 13:52:50 -08:00
Dustin Carlino
609c731fa0 implement yielding in traffic signals. pretty untested. 2018-11-30 12:28:32 -08:00
Dustin Carlino
73b2d0ac24 ah, was forgeting multiple ped turns in sequence 2018-11-30 08:47:46 -08:00
Dustin Carlino
87a357d67c adjusting pathfinding costs, trying to figure out why walking routes are awful 2018-11-29 16:47:04 -08:00
Dustin Carlino
ecc5a6efb1 make some percentage of walking trips use transit, if it's reasonable.
haven't observed it working yet.
2018-11-29 14:53:11 -08:00
Dustin Carlino
14097bebfc moving BusRouteID to map_model layer from sim 2018-11-29 12:38:06 -08:00
Dustin Carlino
17262063a1 following logic wasn't considering length of lead vehicle properly?
adjusted code a bit, but still seeing a violation
2018-11-28 14:27:12 -08:00
Dustin Carlino
6bdb28cced oops, bike starting at border was using a router to car-style park 2018-11-28 13:53:36 -08:00
Dustin Carlino
211019efd2 no more VanishAtDeadEnd. if it's happening, let's notice it. 2018-11-28 13:42:40 -08:00
Dustin Carlino
34f8e93bad dont need pt_and_angle, just pt of Positions 2018-11-28 13:14:49 -08:00
Dustin Carlino
bdd07a7246 woops, missed a should-be caller of equiv_pos 2018-11-28 13:13:12 -08:00
Dustin Carlino
5c3ca41722 associate buses with trips, so some UI plugins can handle them 2018-11-27 14:33:35 -08:00
Dustin Carlino
c2783ab56e making a new Position tuple and equiv_dist_along 2018-11-27 09:55:37 -08:00
Dustin Carlino
d0beb7f41e simplify get_draw_blah API by just having one call for traversable. simplify inner walking state 2018-11-26 15:53:04 -08:00
Dustin Carlino
cd8d9adec4 radical speedup and simplification to driving state: only store SimQueues for active lanes/turns 2018-11-26 15:40:22 -08:00
Dustin Carlino
f26de57039 revive the other transit test 2018-11-26 14:36:59 -08:00
Dustin Carlino
56c885e7ab revive the first parking test. make helpers to look up labeled stuff from synthetic maps. make helpers to seed specific parked cars and start certain trips again. 2018-11-26 11:22:17 -08:00
Dustin Carlino
6fbb22d9e4 port over the last two tests, partly 2018-11-25 08:57:33 -08:00
Dustin Carlino
cec29beda5 moving two sim tests over to the new runner 2018-11-23 16:11:27 -08:00
Dustin Carlino
fcf7ea161c prototyping a better rust test runner that captures output in files
and prints results nicely
2018-11-23 14:51:14 -08:00
Dustin Carlino
2e8cd7ff7a dont spawn bikes on highway border nodes 2018-11-23 11:03:45 -08:00
Dustin Carlino
9368c42c6e improve error message for cars too close, and add error dumping to headless 2018-11-23 10:03:33 -08:00
Dustin Carlino
b55d609c37 fix a bug where car drives from border to a parking spot 2018-11-23 09:02:09 -08:00
Dustin Carlino
e6b1188874 add some debugging to kinematics and... seemingly solve the
stop-too-late bug, by arbitrarily increasing the time allowed for a
stop.
2018-11-22 19:53:08 -08:00
Dustin Carlino
c808d60fd5 woops, can't just scrape active agents 2018-11-22 14:57:57 -08:00
Dustin Carlino
b2c976b439 make Sim or TimeTravel be able to serve up Draw agents 2018-11-22 14:46:28 -08:00
Dustin Carlino
ced04798b4 basic controls for time travel, showing state in OSD 2018-11-22 11:53:35 -08:00
Dustin Carlino
29e1f3f6c0 starting a plugin to scrape agents... 2018-11-22 11:38:00 -08:00
Dustin Carlino
20b79038f4 dont clone bounds by default 2018-11-21 14:55:26 -08:00
Dustin Carlino
ca95c58b3b fix a path trace bug for paths with one step, but no geometry 2018-11-21 10:00:40 -08:00
Dustin Carlino
f3c76c4416 hack around accel_to_stop_in_dist problem, for now 2018-11-21 09:39:26 -08:00
Dustin Carlino
e2d2660b38 reproducing the bike accel_to_stop problem 2018-11-21 09:35:11 -08:00
Dustin Carlino
b22cfe7c9b gets tests to at least build again, by commenting out some of them 2018-11-20 14:36:11 -08:00
Dustin Carlino
7278719a04 consolidating all of the road query methods 2018-11-20 13:36:10 -08:00
Dustin Carlino
37c5a1ddb5 lookup sidewalk properly when bike reaches end 2018-11-18 19:10:14 -08:00
Dustin Carlino
30a03d3159 fix ped<->bike animation 2018-11-18 17:08:59 -08:00
Dustin Carlino
b618842ad2 WIP woops, found a bug with bike_reached_end 2018-11-18 17:02:30 -08:00
Dustin Carlino
fb298e4706 animate bike parking better 2018-11-18 16:53:11 -08:00
Dustin Carlino
044a25fce2 give up on Sim being Eq; settle for PartialEq, get rid of all of the annoying 'ignore this field' hacks. also getting rid of unnecessary PartialEq impls in map_model 2018-11-18 16:28:43 -08:00
Dustin Carlino
71d4df2e6d save editor view when sim 'gracefully' blows up 2018-11-18 15:16:39 -08:00
Dustin Carlino
99d0d27837 adjust debug logs 2018-11-18 15:03:02 -08:00
Dustin Carlino
a863283571 different parser for ticks from filenames 2018-11-18 14:54:36 -08:00
Dustin Carlino
0df92bab75 debug from the most recent but relevant savestate 2018-11-17 20:10:00 -08:00
Dustin Carlino
889214ccdf splitting off just the scheduling portion of spawn. no more
recalculating paths!
2018-11-17 18:41:53 -08:00
Dustin Carlino
6dbdfcb18b proper enum for vehicle type 2018-11-17 17:38:10 -08:00
Dustin Carlino
343aeba3b6 deleted some aging code only used for tests that definitely needs overhaul anyway 2018-11-17 17:28:19 -08:00
Dustin Carlino
9084f0060b PathRequest instead of massive confusing tuples. also can now use bike lanes from spawn layer 2018-11-17 17:12:03 -08:00
Dustin Carlino
0b53b2e44f make bike from border work by adding a bit in spawn 2018-11-17 07:34:06 -08:00
Dustin Carlino
d7efdfc86d rendering bikes differently 2018-11-16 14:51:41 -08:00
Dustin Carlino
3036511c9e another darn bike/parking lane case, unrelated 2018-11-16 14:34:01 -08:00
Dustin Carlino
1e43f33939 render peds preparing bikes 2018-11-16 14:28:36 -08:00
Dustin Carlino
5db8b4edb6 make finished bikes become peds 2018-11-16 14:14:36 -08:00
Dustin Carlino
b9770dc4bd plumbing through the commands in spawn, finally... 2018-11-16 13:40:14 -08:00
Dustin Carlino
705adfcf08 representing the preparing-to-bike state in walking sim 2018-11-16 12:07:26 -08:00
Dustin Carlino
a2a6b16fdc plumbing biking option from scenario all the way down... incomplete 2018-11-16 11:31:27 -08:00
Dustin Carlino
fb2ec0bcd0 plumbing some bits for bikes 2018-11-16 10:38:05 -08:00
Dustin Carlino
ee9f2a0430 make a vehicle type for bikes and introduce a cap speed 2018-11-16 09:44:04 -08:00
Dustin Carlino
952e97d942 starting to write down an enum for the massive FSM revamp. having more
reservations about going this direction.
2018-11-15 18:58:03 -08:00
Dustin Carlino
febf3a1cad saving and loading synthetic models 2018-11-14 10:54:07 -08:00
Dustin Carlino
88334d50ca WIP rewriting pathfinding natively in terms of PathSteps 2018-11-13 14:06:52 -08:00
Dustin Carlino
a002e034d7 splitting out physics types 2018-11-13 11:48:35 -08:00
Dustin Carlino
6b5a012038 organizing sim drawing things 2018-11-13 11:38:35 -08:00
Dustin Carlino
11c2bbd11e grouping sim query methods 2018-11-13 11:32:17 -08:00
Dustin Carlino
af7785d6a3 always send along CarState in DrawCarInput, removing an annoying query method 2018-11-13 10:57:28 -08:00
Dustin Carlino
b2e3f25393 moving RNG helpers from sim to abstutil 2018-11-13 10:50:54 -08:00
Dustin Carlino
df5a151f8b rearranging some sim code into make/ 2018-11-13 10:39:42 -08:00
Dustin Carlino
ecae90eb8a refactor scenario instantiate 2018-11-13 10:11:32 -08:00
Dustin Carlino
462539b558 spawning cars at a border 2018-11-13 08:50:12 -08:00
Dustin Carlino
62182e6736 make cars end at borders properly by slightly extending the protocol for routers 2018-11-12 21:05:50 -08:00
Dustin Carlino
7214cd43d2 model cars finishing at a border... with a hack. :( 2018-11-12 20:51:13 -08:00
Dustin Carlino
98620ece6b sending some peds to border nodes, testing it 2018-11-12 17:20:09 -08:00
Dustin Carlino
7f62537085 oops. border could have been represented in sidewalkspot. merge the madness. 2018-11-12 17:01:49 -08:00
Dustin Carlino
257d051585 update walking model to handle ending at a border 2018-11-12 16:45:33 -08:00
Dustin Carlino
70c1fae4f1 encoding ability to go to a border node in scenarios 2018-11-12 16:02:14 -08:00
Dustin Carlino
8e7021e958 update walking model to handle starting at a border 2018-11-12 15:34:09 -08:00
Dustin Carlino
0c95122576 encoding spawn-peds-at-border in scenario layer 2018-11-12 14:11:50 -08:00
Dustin Carlino
7cf6aa0eeb new_trip API was needlessly complicated; ditched start/end_bldg 2018-11-12 13:39:26 -08:00
Dustin Carlino
f577cc9948 consolidate the panic/unwind code 2018-11-12 11:20:26 -08:00
Dustin Carlino
474d92f5db modeling border nodes in map, control, sim, editor layers 2018-11-11 14:49:27 -08:00
Dustin Carlino
40cc81ca6f make intersection policies handle one agent with multiple turns 2018-11-10 15:39:02 -08:00
Dustin Carlino
7ddbd753f4 storing neighborhoods as GPS 2018-11-09 14:12:20 -08:00
Dustin Carlino
9ba9acb3d2 modeling bus lanes 2018-11-07 13:50:22 -08:00
Dustin Carlino
c6cd36071c make the large maps still work: fixes to bus route verification and
degenerate stop sign handling
2018-11-06 12:39:27 -08:00
Dustin Carlino
02f24bfe15 removing annoying duplicated fields in Turn 2018-11-06 09:29:50 -08:00
Dustin Carlino
9f0d3b610a introducing TurnType 2018-11-05 18:42:33 -08:00
Dustin Carlino
bd96b4ff5f storing src/dst intersection with Road directly 2018-11-05 17:39:23 -08:00
Dustin Carlino
9cb1337785 starting a rewrite of the code to find turns between sidewalks, based on
road adjacencies. needs a few more intermediate steps.
2018-11-05 17:15:54 -08:00
Dustin Carlino
aa23d76243 simplify API: PathStep is Copy 2018-11-05 14:37:26 -08:00
Dustin Carlino
d69804e485 fixing chokepoints plugin by looking at paths 2018-11-04 15:25:48 -08:00
Dustin Carlino
376f9bd3c5 new, simple implementation of trace_route and lots of deleted old code 2018-11-04 08:27:35 -08:00
Dustin Carlino
df6628e5b5 preps for filling out pathfind impl 2018-11-03 20:57:58 -07:00
Dustin Carlino
d4dc5fc658 percolating changes to sim layer slowly... 2018-11-03 20:46:41 -07:00
Dustin Carlino
58025c027d fixing trace_route with contraflow on last step 2018-11-03 12:29:00 -07:00
Dustin Carlino
6ecfac0bd3 precomputing canonical pt per trip, since so much stuff kinda cares about it 2018-11-01 17:05:15 -07:00
Dustin Carlino
db34ddb2b7 changing the activity plugin to show a heatmap of what's currently in view 2018-11-01 16:07:48 -07:00
Dustin Carlino
b593d3f5cf WIP plugin to highlight lanes with movement 2018-11-01 14:42:43 -07:00
Dustin Carlino
b7e184eeca adjusting scripts to convert OSM polygons 2018-10-29 15:53:04 -07:00
Dustin Carlino
f8f2ea3f95 switching to a simpler GPS<->Pt2D scheme that's bijective 2018-10-29 15:01:15 -07:00
Dustin Carlino
bb9c98b54e splitting into two Bounds types 2018-10-29 14:16:30 -07:00
Dustin Carlino
cc9f0289ab exporting polygons in the osmosis format... wait, may need to change the
coordinate system first. let's first refactor bounds to be more careful
about existing code.
2018-10-29 12:29:11 -07:00
Dustin Carlino
949529b780 adding some initial neighborhood summary for an a/b test 2018-10-29 11:24:01 -07:00