Commit Graph

1190 Commits

Author SHA1 Message Date
Dustin Carlino
03796fcd66 introduce the tiny walkable shoulder lane type. pathfinding penalty,
rendering adjustments. #176

the SharedSidewalkCorner geometry looks bad, but acceptable for now.
2020-07-30 13:42:36 -07:00
Dustin Carlino
edb1cb87cd Make all vehicles, including buses, start with ~0 length when spawning
from borders and gradually appear. This looks more realistic and lets
more trips succeed, especially buses spawning at short borders.

This fixes #220 in a hopefully simpler way. Extending the geometry of
incoming roads is possible, but it may look visually overwhelming,
because two border intersections could sometimes overlap.
2020-07-28 11:39:57 -07:00
Dustin Carlino
6a11a13d36 fix the remainder?! of pathfinding bugs for #190. have to make sure the
candidate route has the stops in the correct order. now people correctly
ride a bus off-map!

regen everything now!
2020-07-27 12:36:46 -07:00
Dustin Carlino
74bf6e0974 get riding off-map to work for #190.
- handle living streets that allow buses in berlin
- don't connect LeaveMap nodes to anything else; people were getting
  creative and using them as shortcuts to effectively warp to a border,
  then come back into the map
- make should_use_transit understand transfers (and still just return
  the first leg)
- warp to bus routes by ID

still at least one weird bug left, seen in krakow. working on it next,
trying to keep these commits "small." not regenerating maps quite yet.
2020-07-27 10:37:21 -07:00
Dustin Carlino
2239059961 UI fixes discovered during riding buses off-map
- speed limit dropdown crash
- link to bus route from bus stop panel, not some currently running bus
- show number of waiting people per stop in route panel and route dash
2020-07-27 08:19:14 -07:00
Dustin Carlino
e79e186784 ALMOST make people ride the bus off-map, for #190. the pathfinding
gymnastics isn't quite right. still want to commit this though, with it
disabled.

found a few bugs along the way...
2020-07-27 07:54:33 -07:00
Dustin Carlino
f056080106 fix area under curve on jump-to-time when active agents isnt 0 at end of day. also... fail loudly when we make it to the end of the day and too many active agents are left. at some point lakeslice broke and I didnt notice. :( ... but actually it's just a crowd of people waiting on a bus that isnt managing to spawn. 2020-07-26 22:50:45 -07:00
Dustin Carlino
a4e09ca91f add border stop/start to route info panel. move the route drawing there, stop being a weird layer. 2020-07-26 13:13:48 -07:00
Dustin Carlino
adbbc8764a much smarter opportunistic lane-changing. almost got #217. but we don't
do opportunistic LCing when approaching an uber-turn, so we need to use
these costs when building the CH also...
2020-07-23 12:39:00 -07:00
Dustin Carlino
9757750bfa gather penalties based on sim state too. #217 2020-07-23 10:58:25 -07:00
Dustin Carlino
328cbcd1f1 stop melting my laptop when generating scenarios 2020-07-23 09:15:25 -07:00
Dustin Carlino
56a892f789 improve error for parking seeding. closes #224 2020-07-22 12:19:18 -07:00
Dustin Carlino
d2e8dc95d1 split the new traffic generation code out into its own file. it'll make
iterating on #227 easier
2020-07-22 11:20:48 -07:00
Dustin Carlino
38b8557c82 bring in living streets from OSM, interpreting them as normal roads with
access restrictions. makes old town in krakow look much better and
brings in stay healthy streets in seattle. also commit some code related
to footways that isn't exercised yet.
2020-07-21 17:18:56 -07:00
Dustin Carlino
435b4ce8fb track passengers boarding/alighting. further rearrange stop/bus/route
info panels
2020-07-21 08:55:07 -07:00
Dustin Carlino
28d0469d10 filter out random border no-op trips. they crash poor berlin 2020-07-20 16:16:01 -07:00
Dustin Carlino
9be94f9a70 don't spawn bikes on tiny lanes, it causes queue spillover 2020-07-20 10:38:56 -07:00
Dustin Carlino
042145ef1b start cleaning up bus info panels. the delay between stop measurement has never been clear, and i'm not sure if it's what we even want to measure. and use route shortname in titles. 2020-07-20 09:14:41 -07:00
Dustin Carlino
ec9ba28891 stop using simsearch for matching road names. it has odd behavior when the query is just a few charactes, and it often has the wrong results after typing most of a name. just use simple string containment for now. 2020-07-20 08:36:32 -07:00
Mateusz Konieczny
66287ccda6
further work on #154 - better trip generator (#211)
* further work on #154 - better trip generator

use single trip mode selection function
(still extremely primitive, based on a distance)
border-to-border traffic is now more varied
rewrite TODOs

* stylistic improvements
2020-07-20 08:26:16 -07:00
Dustin Carlino
a837c79500 better errors when failing to spawn. it's either the starting lane is
too small for the vehicle, or there's no appropriate lane type at the
border. closes #206
2020-07-19 13:33:36 -07:00
Dustin Carlino
68d3c5b340 intersection delay is broken down by agent type, not trip mode 2020-07-19 13:22:08 -07:00
Dustin Carlino
233b662bfa actually count transit passengers in throughput analytics 2020-07-19 13:10:24 -07:00
Mateusz Konieczny
3c9bb0f706
add transit traffic for #154 (#207)
for now solely cars, next step would be having function deciding on trip mode based on distance and using it also here
note #206, this code may be buggy though at least sometimes transit traffic works
next potential step - some distribution of transit traffic over day
2020-07-19 12:36:39 -07:00
Dustin Carlino
523eb690f5 refactor tripinfo struct 2020-07-18 07:46:58 -07:00
Dustin Carlino
6d27547b6a prep for hackathon. make the block map a sandbox dashboard, work off of a live sim. [rebuild] 2020-07-18 07:22:18 -07:00
Dustin Carlino
db00c18536 use AgentType, not TripMode, in throughput 2020-07-17 16:39:16 -07:00
Dustin Carlino
c08fd4ae7e UsingBike trips always start at a building 2020-07-17 15:56:58 -07:00
Dustin Carlino
e06faa3c33 make an AgentType enum, stop abusing TripMode. a small first step,
showing agent meters properly
2020-07-17 15:13:36 -07:00
Dustin Carlino
a86fb5c73d upgrade to rust 1.45 after fixing an issue in fastpaths [rebuild] 2020-07-17 12:54:14 -07:00
Dustin Carlino
82dd1fd01a spawn a new bus for every route every hour 2020-07-16 11:58:09 -07:00
Dustin Carlino
8a70e105e8 make buses actually start/end at borders [rebuild] 2020-07-16 10:11:43 -07:00
Dustin Carlino
d15a842e43 Revert "new rust version. finally strip_prefix is available!"
This reverts commit d16ac9713a.

I'm seeing mysterious brokenness with fast_paths:
https://github.com/easbar/fast_paths/issues/20
Reverting so I can get work done
2020-07-16 08:59:16 -07:00
Dustin Carlino
d16ac9713a new rust version. finally strip_prefix is available!
include berlin and krakow by default in the release, since they're small
and it'll make some collaboration easier [rebuild]
2020-07-16 08:41:28 -07:00
Dustin Carlino
acc82b4f06 dont crash on info panels after buses are done 2020-07-15 16:39:27 -07:00
Dustin Carlino
ff8a62c9e2 retry spawning buses 2020-07-15 15:41:20 -07:00
Dustin Carlino
891a1746d6 try to figure out border endpts for routes for #190. just visualize
them, dont enforce connectivity yet. so many problems...

regenerate stuff, to unbreak map binary format
2020-07-15 15:35:57 -07:00
Dustin Carlino
91a9a9a1bc start revamping bus route data model for #190. routes are one-way. make
buses appear at the first stop and vanish at the last.

not regenerating anything yet
2020-07-15 13:15:32 -07:00
Dustin Carlino
ccf0b2f647 improve car/bike zordering when crossing z levels 2020-07-15 10:04:47 -07:00
Dustin Carlino
5806e60eec represent cancelled trips differently than aborted trips 2020-07-15 09:11:01 -07:00
Dustin Carlino
eeb70030c2 clean up old experiments from the intersection geometry code.
imperceptible changes to some (already broken) intersections.

also grab fresh osm and a new traffic signal
2020-07-14 17:41:56 -07:00
Dustin Carlino
614354271a see modified trips in the table and info panels 2020-07-14 16:10:50 -07:00
Dustin Carlino
7341c0189a plumb through which trips (and people) are affected by an experiment. no
UI exposure yet.
2020-07-14 14:49:04 -07:00
Dustin Carlino
7cd0c77068 plot scheduled arrival rate at borders. downtown is crazy. 2020-07-14 12:57:58 -07:00
Dustin Carlino
d31ead5788 clearly show cars just cruising around trying to park, so it's
abundantly clear when parking availability is squeezed. need to change
the minimap legend now.
2020-07-14 09:33:10 -07:00
Mateusz Konieczny
6b337c10ec
drop unneded todo (#194) 2020-07-14 07:42:36 -07:00
Dustin Carlino
f76b40b8f7 remove old hacks that disabled different checks on certain intersections. new progress fixes the gridlock in a more general way 2020-07-13 15:33:32 -07:00
Dustin Carlino
46789847a7 offstreet parking blocks the road for less time. seeing unrealistic
gridlock near the huge parking lots downtown from this

and fix a bug with spawning bike trips. never OK to silently not
schedule a trip, because it breaks the schedule continuity
2020-07-13 15:17:14 -07:00
Dustin Carlino
b68e233125 trying to handle gridlock near tiny roads for #114. treat the entire
sequence as one thing to lock -- don't start it until it's clear, and
prevent new conflicting turns once started. disable block-the-box
protection inside.

I'm not sure this is helping at all yet. maybe it's just more complex.
2020-07-13 12:30:24 -07:00
Dustin Carlino
b058d5d926 cargo fmt and regenerate map data 2020-07-13 10:11:48 -07:00
Mateusz Konieczny
885fdefb5d
playing with processing modifications (#183)
* WIP set up plumbing for calculating building info in the Raw layer and using it later for #154

* WIP playing with processing modifications

* experiment with some possibilities for tag processing

* fix an embarassing typo

* enable busses in work-home traffic

* refactor, add multiuse

* seed more parking in Kraków

* parse integers properly - thanks for a help!

* rebalance generated trips

* add hack providing some background traffic

more realistic traffic

even mess realistic people

* attempt to further reduce parking deficit

* add TODO

Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-07-13 09:56:05 -07:00
Dustin Carlino
35a63af590 don't lane-change unnecessarily 2020-07-12 10:42:28 -07:00
Dustin Carlino
faedffae99 finally flushed out one of the common crashes: shifting some car bodies
to make wheels breaks sometimes. just skip the wheels.
2020-07-11 17:10:36 -07:00
Dustin Carlino
07ed1fec95 more polyline work... get rid of Warn<>. extremely spammy and hasn't
been helpful in ages.
2020-07-11 15:17:16 -07:00
Dustin Carlino
f8b8c501ae tighten up more PL scariness 2020-07-11 14:51:25 -07:00
Dustin Carlino
cce624edd8 start the big one: Polyline::new 2020-07-11 13:42:19 -07:00
Dustin Carlino
0593aa52d9 more caution in Line API 2020-07-11 13:05:34 -07:00
Dustin Carlino
98c6f46c78 the first real big change: Line::new always returns Option 2020-07-11 12:37:38 -07:00
Dustin Carlino
4919fbf90f autodetect ICs across the whole map, not just when there are complex
turn restrictions

and... enable the new "run the red light" after starting an uber-turn. I
can get to 6am on downtown with a few simple edits now.
2020-07-10 17:39:25 -07:00
Dustin Carlino
7ab78d543a ignore red lights in the middle of an uber-turn. currently disabled
until a few more things are in place, but this is headed in the right
direction. [rebuild]
2020-07-10 16:03:22 -07:00
Dustin Carlino
4c8ad5a8da determine if a vehicle is currently performing an uber-turn, without
modifying the low-level PathSteps. also make sure to not try LCing when
going into one.

on the cusp of being able to treat complicated intersections as one...
2020-07-10 12:40:51 -07:00
Dustin Carlino
98ca2341c8 adjust params on the people generator for #154 2020-07-09 13:48:49 -07:00
Dustin Carlino
ead4a99682 prototype a better random traffic generator 2020-07-09 13:04:41 -07:00
Dustin Carlino
4340ad585b convert the rest of usize IDs to u32. savings:
maps: 645mb -> 625mb
scenarios: 431mb -> 390mb (before all the u32 optimizations, this as
500mb!!!)
prebaked: 80mb -> 73mb

and while I'm at it, grab fresh OSM, with lots of manual lane fixes,
especially near divided highways
2020-07-09 11:43:34 -07:00
Dustin Carlino
a2623bfd6a wait wait, the light rail cars are way longer. wiki says one car is about 30m, so using double cars for now 2020-07-08 14:38:03 -07:00
Dustin Carlino
7c0aaed370 the first link light rail has left the staton. #numtot 2020-07-08 14:29:02 -07:00
Dustin Carlino
14010e3be2 transform trip mode, filtering on existing mode and departure time range 2020-07-08 10:46:23 -07:00
Dustin Carlino
9f72b3dd51 cleanup after the relative dir fix, and add support for hardcoding the
data dir, for #137
2020-07-07 12:14:02 -07:00
Dustin Carlino
6919c24bf8 detect the data/ dir more intelligently. fixes #73. still need to
- consider collapsing the directory structure in the releases
- fix wasm

[rebuild]
2020-07-07 11:09:35 -07:00
Dustin Carlino
d52a0e8a35 new scenario mod: force everyone to make a mode change 2020-07-06 16:29:51 -07:00
Dustin Carlino
d987879389 gracefully handle editing the currently active traffic signal phase live in the challenge mode 2020-07-05 14:18:00 -07:00
Dustin Carlino
5427d8ea40 also express lane type changes using the new approach 2020-07-05 14:04:49 -07:00
Dustin Carlino
6e8eef8d09 start refactoring how edits are validated. need to deal with lane types
next
2020-07-05 13:20:19 -07:00
Dustin Carlino
505311a93f improve the signal synchronization a bit for #8. hardcode a few small
intersections to make the downtown map make more progress. make it
easier to copy OSM node IDs.
2020-07-04 08:53:13 -07:00
Dustin Carlino
2c7440b03f start representing access restrictions by mode 2020-06-30 13:15:57 -07:00
Dustin Carlino
2b50e7969c refactor position 2020-06-29 20:55:36 -07:00
Dustin Carlino
c97bd0fe4b some cleanup after #106. unbreak importer 2020-06-28 11:13:35 -07:00
phimuemue
a675e72d25
Avoid collect et al (#106)
* Avoid unconditional collect in get_lane_types

* Introduce Road::children(fwds)

Simplifies direction-aware lane retrieval.

* Simplify all_lanes

* Avoid unneeded collect

* Avoid some Vec copying

* Avoid unconditional collect

* Avoid some collect

* Avoid clone

* Avoid collect

* Avoid collect

* Avoid collect

* Avoid collect

* Avoid collect

* Avoid collect

Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-06-28 11:00:09 -07:00
Dustin Carlino
bb3da1f8eb Make a very primitive form of adaptive traffic signal phases. It should
be easier to write better policies now; this mostly does the work of
changing the map model and UI to handle variable timing. A small step
towards #91
2020-06-28 10:20:47 -07:00
Dustin Carlino
a6b90d00d8 very simple modifier to cancel all trips for some percentage of people 2020-06-27 14:20:25 -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
b3a480b4c1 clean up old trip positions from Sim. implement the all-route debugger
in a more straightforward way
2020-06-25 09:20:54 -07:00
Dustin Carlino
bc6482c522 include camera state and edits in the crash report. would make it easier to repro #98 and #72 2020-06-25 09:02:50 -07:00
Dustin Carlino
2630fabf83 link to fixed windows build, and make a few small adjustments 2020-06-23 12:57:06 -07:00
Dustin Carlino
f5385b83df restore raw throughput counts deleted in
ca33695431, flagged off, for further
exploration of compressed representations. also, apparently lakeslice
prebaked results have been missing for a while due to dropbox snafu! fix
2020-06-19 11:04:07 -07:00
Dustin Carlino
bc8f352600 when people are riding a bus, map them to the bus instead of just crashing 2020-06-18 11:23:09 -07:00
Dustin Carlino
26cdde056c fix throughput and delay max_x and disable comparison by default 2020-06-17 15:05:31 -07:00
Dustin Carlino
d437152be4 add an intro story cutscene to motivate the whole game [rebuild] 2020-06-13 20:44:46 -07:00
Dustin Carlino
42ea64a680 changing parking seeding to fill in private spots first. makes progress
in larger maps. i made sure the optimize challenge is still interesting
after this change.
2020-06-13 15:14:23 -07:00
Dustin Carlino
c20a8ea36b tuning plot appearance: labels, grid, titles, bg and outline 2020-06-12 12:12:01 -07:00
Dustin Carlino
14c7518787 break down delay by agent 2020-06-12 11:37:12 -07:00
Dustin Carlino
be3b93625d dont compute pathfinding upfront by default. [rebuild] 2020-06-11 12:20:51 -07:00
Dustin Carlino
0cff318d0a start a layer to compare delay. needs work. 2020-06-10 11:04:48 -07:00
Dustin Carlino
a96b77ba3f more granular profiling 2020-06-09 18:56:33 -07:00
Dustin Carlino
cb829558b4 adjust jump-to-time UI 2020-06-09 15:58:52 -07:00
Dustin Carlino
287d56efd9 generalizing the old gridlock checker. removing unused savestate_every
support. reimpl it later using the callbacks if needed.
2020-06-09 14:29:35 -07:00
Dustin Carlino
2445bddeb9 prepping to work on sim step 2020-06-09 12:39:31 -07:00
Dustin Carlino
fafcf57240 make most offstreet spots private 2020-06-06 18:37:20 -07:00
Dustin Carlino
b15664727d flesh out info panels for parking lots 2020-06-06 14:23:47 -07:00
Dustin Carlino
65b500509e make peds use front paths for parking lots too 2020-06-06 14:04:09 -07:00