abstreet/TODO.md
2018-06-25 09:14:44 -07:00

98 lines
3.3 KiB
Markdown

# TODO
## Map editor
- still key overlap bugs with floodfilling
- master UI exclusive state -- one plugin at a time
- traffic signal editor
- button to reset intersection to original cycles
- turns can belong to multiple cycles; the colors become slightly meaningless
- support left turn yield
- stop sign editor
- cant have no stop signs for two roads whose center line crosses
- infer default policy
- draw as red octogon with thin white trim, off to the right side of the road
- better visualization
- why are some icons in the intersection?
- draw detailed turns better, like https://i.ytimg.com/vi/NH6R3RH_ZDY/maxresdefault.jpg
## Driving model
- try to simplify straw_model step (less phases?)
- make cars pathfind to their destination
- better visualization
- draw moving / blocked colors (gradually more red as they wait longer)
- draw stop buffer in front/behind of cars
- draw cars in intersections, even when slightly zoomed out
- draw cars in slightly different colors, to distinguish them better
- start implementing a second AORTAish driving model
- reversible sim
## Map model
- more data
- parse shp, get traffic signals in the right places
- do need to mouseover shapefile things and see full data
- grab number of phases from traffic signal shp
- look for current stop sign priorities
- https://gis-kingcounty.opendata.arcgis.com/datasets/traffic-signs--sign-point/
- multiple lanes
- solve the multiline problem
- move it out of experimental
- use it for real
- clean up oneway osm way hacks
- model bikes in driving lanes (as slow cars)
- add random bike lanes, figure out how turns would work
- be able to convert between parking and bike lanes, recompute the turns
- model cars parking
- maybe render numbers on the cars to distinguish them
- document the FSM (on lane driving, waiting, turning, parking, etc)
- model pdestrians
- maybe draw crosswalks?
- regression testing
- goldenfile approach for map_model, geom, and render layer from a small OSM chunk
- or maybe a visual demo approach with a list of things to manually check
- unit test that Centered thick line yields same geometry with points reversed
## Code cleanup
- clean up code
- master Map struct
- line type / ditch vec2d / settle on types
- one-at-a-time UI plugins
- UI colors in one place
- cleaner pipeline of map construction
- serde, not pb
- logically be able to shift what gets recomputed or not
- better layering: GeomParcel, GeomIntersection, etc, so that render layer doesn't need to know Bounds and use gps_to_screen
- more uniformity with polygon + center line?
- add/plan tests
- document pieces that're stabilizing
- run clippy everywhere
- presubmit script
- also enforce consistent style (import order, extern crate only in mod.rs or lib.rs, derive order)
- extract common crates
- ask about mut vs returning new version of self (and what that requires of all the contained stuff)
- https://stackoverflow.com/questions/28385339/mutable-self-while-reading-from-owner-object
## Example use cases
- montlake/520 turn restrictions with pedestrian scramble
- close interior neighborhoods to most cars (except for src/dst), see how traffic restricted to arterials would work
- create a bike network with minimal hills, dedicated roads, minimal crossings