mirror of
https://github.com/a-b-street/abstreet.git
synced 2024-12-27 16:36:02 +03:00
organizing TODOs... well, some of them
This commit is contained in:
parent
d76c0d0652
commit
317c6ecd6c
@ -1,4 +1,11 @@
|
|||||||
# Halloween visual demo
|
# TODO - Extra side-projects
|
||||||
|
|
||||||
|
## Themed rendering
|
||||||
|
|
||||||
|
- halloween, winter, jungle, 8bit, organic (deform buildings), floorplan,
|
||||||
|
machine (make buildings pump along front paths)
|
||||||
|
|
||||||
|
## Halloween visual demo
|
||||||
|
|
||||||
- cars with headlights
|
- cars with headlights
|
||||||
- pumpkins
|
- pumpkins
|
||||||
@ -10,3 +17,11 @@
|
|||||||
- fog effects
|
- fog effects
|
||||||
- in 3D, what if roads are sunken rivers and buildings giant skyscrapers?
|
- in 3D, what if roads are sunken rivers and buildings giant skyscrapers?
|
||||||
- eyes on the houses, that blink
|
- eyes on the houses, that blink
|
||||||
|
- trick-or-treaters wandering around
|
||||||
|
|
||||||
|
## Conga line idea
|
||||||
|
|
||||||
|
- try constructive approach for snake idea
|
||||||
|
- with interactive mode?
|
||||||
|
- try destructive approach for snake idea
|
||||||
|
- with interactive mode?
|
23
docs/TODO_game.md
Normal file
23
docs/TODO_game.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# TODO - Core gameplay
|
||||||
|
|
||||||
|
- parking vs bus tutorial level
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- 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
|
||||||
|
|
||||||
|
- easter eggs
|
||||||
|
- name agents, with some good names scattered in (Dustin Carlino, Dustin Bikelino, Dustin Buslino...)
|
||||||
|
|
||||||
|
|
||||||
|
## The very detailed driving model
|
||||||
|
|
||||||
|
- different lookahead reaction times
|
||||||
|
- could see if we ever have a lookahead constraint to deaccel more than what
|
||||||
|
we're capable of. it might mask problems. but since things like
|
||||||
|
accel_to_stop_in_dist don't have a careful notion of how much time will pass,
|
||||||
|
they recommend big rates sometimes.
|
||||||
|
- no way for an agent to request a turn and ASAP have it granted. are there cases where they might slow down unnecessarily?
|
11
docs/TODO_logistic.md
Normal file
11
docs/TODO_logistic.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# TODO - Project logistics
|
||||||
|
|
||||||
|
- enable more clippy lints
|
||||||
|
- enforce consistent style (derive order, struct initialization order)
|
||||||
|
- cross-platform builds
|
||||||
|
|
||||||
|
- document map model
|
||||||
|
- diagram of data sources and stages
|
||||||
|
- explanation of intermediate formats
|
||||||
|
- autogenerate diagrams of the data schemas
|
||||||
|
- list invariants
|
@ -1,60 +0,0 @@
|
|||||||
# TODO for Phase 1 (Basemap)
|
|
||||||
|
|
||||||
- huge maps
|
|
||||||
- manually mark polygon for the part of seattle to simulate
|
|
||||||
- maybe need a quadtree for sidewalk finding to actually work (slightly weird, because no render layer -- use center points only)
|
|
||||||
- look into all the warnings (trim failing, no driving lane for buses, duplicate turns)
|
|
||||||
|
|
||||||
- lots more data
|
|
||||||
- lanes: https://data-seattlecitygis.opendata.arcgis.com/datasets/49d417979fec452981a068ca078e7070_3
|
|
||||||
- not filled out for most streets
|
|
||||||
- traffic circles: https://data-seattlecitygis.opendata.arcgis.com/datasets/717b10434d4945658355eba78b66971a_6
|
|
||||||
- https://data-seattlecitygis.opendata.arcgis.com/datasets/sidewalks
|
|
||||||
- disagrees with OSM road centers sometimes
|
|
||||||
- https://data-seattlecitygis.opendata.arcgis.com/datasets/curb-ramps
|
|
||||||
- high quality thick roads: https://seattlecitygis.maps.arcgis.com/apps/webappviewer/index.html?id=86cb6824307c4d63b8e180ebcff58ce2
|
|
||||||
- OSM has footways
|
|
||||||
- but theyre not marked everywhere
|
|
||||||
- and theyre hard to associate with roads (sometimes need to infer a planter strip)
|
|
||||||
|
|
||||||
- maybe also the time to split into different lane types? what's similar/not between them?
|
|
||||||
- graph querying?
|
|
||||||
- rendering (and other UI/editor interactions)?
|
|
||||||
- sim state?
|
|
||||||
- Sidewalk, Parking, Street
|
|
||||||
|
|
||||||
- more data
|
|
||||||
- draw ALL water and greenery areas
|
|
||||||
- draw benches, bike racks
|
|
||||||
- more generally, a way to display random GIS data from seattle site (kml)
|
|
||||||
- render trees
|
|
||||||
- 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/
|
|
||||||
|
|
||||||
- polish geometry
|
|
||||||
- new center polylines
|
|
||||||
- explode out at some angles
|
|
||||||
- draw intersections at dead-ends
|
|
||||||
- shift turn icons and stop markings and such away from crosswalk
|
|
||||||
- interpret failed shifting/polyline attempt as implying something about the lane specs
|
|
||||||
- figure out what to do about yellow center lines
|
|
||||||
- yellow and white lines intersect cars and turn icons and such
|
|
||||||
- who should own drawing them?
|
|
||||||
- trim them back too (maybe to avoid hitting the intersection?)
|
|
||||||
|
|
||||||
- code cleanup
|
|
||||||
- move map_model geometry stuff elsewhere (sim stuff also needs it though)
|
|
||||||
|
|
||||||
- better drawing
|
|
||||||
- bezier turns for lane markings, turn icons, agent turn signals?
|
|
||||||
- rooftops
|
|
||||||
- https://thumbs.dreamstime.com/b/top-view-city-street-asphalt-transport-people-walking-down-sidewalk-intersecting-road-pedestrian-81034411.jpg
|
|
||||||
- https://thumbs.dreamstime.com/z/top-view-city-seamless-pattern-streets-roads-houses-cars-68652655.jpg
|
|
||||||
- https://gifer.com/en/2svr
|
|
||||||
|
|
||||||
- color tuning
|
|
||||||
- neutral (white or offwhite) color and make noncritical info close to
|
|
||||||
that. http://davidjohnstone.net/pages/lch-lab-colour-gradient-picker,
|
|
||||||
chroma < 50
|
|
@ -1,32 +0,0 @@
|
|||||||
# TODO for Phase 2 (Editor)
|
|
||||||
|
|
||||||
- support massive maps
|
|
||||||
- render to a bitmap and clip that in?
|
|
||||||
- sometimes UI zooms in at once, then unzooms slowly. drop events?
|
|
||||||
|
|
||||||
- different UIs
|
|
||||||
- 3D UI sharing the same structure as the 2D one
|
|
||||||
- svg export some area, for manual mockups
|
|
||||||
- web version
|
|
||||||
- ggez, quicksilver, unrust could work
|
|
||||||
|
|
||||||
- easy UI bugs
|
|
||||||
- big maps start centered over emptiness
|
|
||||||
- deal with overlapping keys that still kinda happen (sim ctrl, escape game)
|
|
||||||
- and missing keys, like no tooltip for turns, since they're only shown in editors now
|
|
||||||
- bug: do need to recalculate current_selection whenever anything potentially changes camera, like follow
|
|
||||||
|
|
||||||
- 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
|
|
||||||
|
|
||||||
- be able to change road directions
|
|
||||||
|
|
||||||
- tests that edits + reload from scratch are equivalent
|
|
||||||
|
|
||||||
- undo support!
|
|
@ -1,57 +0,0 @@
|
|||||||
# TODO for Phase 3 (Simulation)
|
|
||||||
|
|
||||||
## cars
|
|
||||||
|
|
||||||
- features
|
|
||||||
- different lookahead reaction times
|
|
||||||
- figure out lanechanging (and turns that dont make sense)
|
|
||||||
|
|
||||||
- code cleanup
|
|
||||||
- figure out responsibility btwn agents and managers, then fix up visibility
|
|
||||||
- things like ParkingSimState have so many methods -- some are only
|
|
||||||
meant for spawner, or driving/walking to query. separate out some
|
|
||||||
traits.
|
|
||||||
- on a lane vs turn permeates so many places
|
|
||||||
|
|
||||||
- better visualization
|
|
||||||
- draw moving / blocked colors (gradually more red as they wait longer)
|
|
||||||
- make lookahead buffer follow the shape of the road and extend into other lanes and stuff
|
|
||||||
- render cars with textures?
|
|
||||||
|
|
||||||
- reversible sim
|
|
||||||
|
|
||||||
- be careful
|
|
||||||
- could see if we ever have a lookahead constraint to deaccel more than
|
|
||||||
what we're capable of. it might mask problems. but since things like
|
|
||||||
accel_to_stop_in_dist don't have a careful notion of how much time will pass,
|
|
||||||
they recommend big rates sometimes.
|
|
||||||
- no way for an agent to request a turn and ASAP have it granted. are there cases where they might slow down unnecessarily?
|
|
||||||
|
|
||||||
## bikes
|
|
||||||
|
|
||||||
- model bikes as slow cars
|
|
||||||
|
|
||||||
## pedestrians
|
|
||||||
|
|
||||||
- render overlapping peds reasonably
|
|
||||||
|
|
||||||
## General
|
|
||||||
|
|
||||||
- savestating a sim has nondet output due to hashes; switching to btree is kind of weird
|
|
||||||
- consider overriding encoding for TurnID and such, instead of remembering to stick maps everywhere
|
|
||||||
- diffing two sim states is tedious no matter what; is there a nice macro-driven deep equals we could do instead?
|
|
||||||
- will need programmatic diffs later for pointing out changes to players in A/B tests
|
|
||||||
- consider refactoring car/ped sim
|
|
||||||
- basic structure with actions, react, stepping is same. SimQueue, lookahead, can goto? differs.
|
|
||||||
|
|
||||||
- handle map borders
|
|
||||||
- manually mark polygon, not a bbox, as the border
|
|
||||||
- be able to start/end trips there
|
|
||||||
- start to model demand data with manually selecting a source/dest area
|
|
||||||
|
|
||||||
- figure out how to capture stacktraces kinda optionally
|
|
||||||
- manual call at a fxn to dump its stacktrace somewhere (to a file? ideally shared global state to dedupe stuff)
|
|
||||||
- macro to insert a call at the beginning of a fxn
|
|
||||||
- macro to apply a macro to all fxns in an impl
|
|
||||||
- then i can manually edit a few places when I want to gather data
|
|
||||||
- https://en.wikipedia.org/wiki/File:A_Call_Graph_generated_by_pycallgraph.png
|
|
@ -1,9 +0,0 @@
|
|||||||
# TODO for Phase 4 (Game)
|
|
||||||
|
|
||||||
- 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
|
|
||||||
|
|
||||||
- easter eggs
|
|
||||||
- name agents, with some good names scattered in (Dustin Carlino, Dustin Bikelino, Dustin Buslino...)
|
|
27
docs/TODO_quality.md
Normal file
27
docs/TODO_quality.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# TODO - Map quality
|
||||||
|
|
||||||
|
## Geometry
|
||||||
|
|
||||||
|
- ped paths through sidewalk corners are totally broken
|
||||||
|
|
||||||
|
- figure out what to do about yellow center lines
|
||||||
|
- yellow and white lines intersect cars and turn icons and such
|
||||||
|
- who should own drawing them?
|
||||||
|
|
||||||
|
## More data
|
||||||
|
|
||||||
|
- lanes: https://data-seattlecitygis.opendata.arcgis.com/datasets/49d417979fec452981a068ca078e7070_3
|
||||||
|
- not filled out for most streets
|
||||||
|
- traffic circles: https://data-seattlecitygis.opendata.arcgis.com/datasets/717b10434d4945658355eba78b66971a_6
|
||||||
|
- https://data-seattlecitygis.opendata.arcgis.com/datasets/sidewalks
|
||||||
|
- disagrees with OSM road centers sometimes
|
||||||
|
- https://data-seattlecitygis.opendata.arcgis.com/datasets/curb-ramps
|
||||||
|
- high quality thick roads: https://seattlecitygis.maps.arcgis.com/apps/webappviewer/index.html?id=86cb6824307c4d63b8e180ebcff58ce2
|
||||||
|
- OSM has footways
|
||||||
|
- but theyre not marked everywhere
|
||||||
|
- and theyre hard to associate with roads (sometimes need to infer a planter strip)
|
||||||
|
- draw ALL water and greenery areas
|
||||||
|
- draw benches, bike racks
|
||||||
|
- render trees
|
||||||
|
- look for current stop sign priorities
|
||||||
|
- https://gis-kingcounty.opendata.arcgis.com/datasets/traffic-signs--sign-point/
|
33
docs/TODO_refactoring.md
Normal file
33
docs/TODO_refactoring.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# TODO - Refactoring
|
||||||
|
|
||||||
|
- easier way to define magic tuneable constants
|
||||||
|
- and maybe to recalculate fixedish things if they change?
|
||||||
|
|
||||||
|
## Map layer
|
||||||
|
|
||||||
|
- pt2d resolution
|
||||||
|
- then my own physics types
|
||||||
|
|
||||||
|
- maybe also the time to split into different lane types? what's similar/not between them?
|
||||||
|
- graph querying?
|
||||||
|
- rendering (and other UI/editor interactions)?
|
||||||
|
- sim state?
|
||||||
|
- Sidewalk, Parking, Street
|
||||||
|
|
||||||
|
## Sim layer
|
||||||
|
|
||||||
|
- consider refactoring car/ped sim
|
||||||
|
- basic structure with actions, react, stepping is same. SimQueue, lookahead, can goto? differs.
|
||||||
|
|
||||||
|
- detangle sim managers... but first, figure out how to capture stacktraces
|
||||||
|
- manual call at a fxn to dump its stacktrace somewhere (to a file? ideally shared global state to dedupe stuff)
|
||||||
|
- macro to insert a call at the beginning of a fxn
|
||||||
|
- macro to apply a macro to all fxns in an impl
|
||||||
|
- then i can manually edit a few places when I want to gather data
|
||||||
|
- https://en.wikipedia.org/wiki/File:A_Call_Graph_generated_by_pycallgraph.png
|
||||||
|
- figure out responsibility btwn agents and managers, then fix up visibility
|
||||||
|
- things like ParkingSimState have so many methods -- some are only
|
||||||
|
meant for spawner, or driving/walking to query. separate out some
|
||||||
|
traits.
|
||||||
|
|
||||||
|
- on a lane vs turn permeates so many places
|
47
docs/TODO_ux.md
Normal file
47
docs/TODO_ux.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# TODO - GUI and UX
|
||||||
|
|
||||||
|
## Quick n easy
|
||||||
|
|
||||||
|
- audit all panics
|
||||||
|
- tune text color, size, padding
|
||||||
|
- sort the top menus
|
||||||
|
|
||||||
|
- click cycle diagram to edit duration
|
||||||
|
- lane edit validity
|
||||||
|
- make it easy to see current lane when changing it
|
||||||
|
|
||||||
|
## Less easy
|
||||||
|
|
||||||
|
- revamp stop sign editor
|
||||||
|
- toggle rewind mode
|
||||||
|
- sim stuff feels like a modal menu that's kinda omniprescent, but gets hidden sometimes
|
||||||
|
|
||||||
|
## General ezgui stuff
|
||||||
|
|
||||||
|
- trigger screencap from a top menu debug thing WITHOUT a hotkey.
|
||||||
|
- optionally limit canvas scrolling/zooming to some map bounds
|
||||||
|
- T top menu doesnt know when we have a more urgent input thing going!
|
||||||
|
- cant use G for geom debug mode and contextual polygon debug
|
||||||
|
- on a menu with preselected thing, clicking ANYWHERE does stuff...
|
||||||
|
- X on all menus
|
||||||
|
|
||||||
|
## New features
|
||||||
|
|
||||||
|
- swap direction of one-way
|
||||||
|
- convert between one- and two-way if there's enough space
|
||||||
|
|
||||||
|
- undo support for edits
|
||||||
|
|
||||||
|
## Better rendering
|
||||||
|
|
||||||
|
- render overlapping peds reasonably
|
||||||
|
- draw moving / blocked colors (gradually more red as they wait longer)
|
||||||
|
- render cars with textures?
|
||||||
|
- rooftops
|
||||||
|
- https://thumbs.dreamstime.com/b/top-view-city-street-asphalt-transport-people-walking-down-sidewalk-intersecting-road-pedestrian-81034411.jpg
|
||||||
|
- https://thumbs.dreamstime.com/z/top-view-city-seamless-pattern-streets-roads-houses-cars-68652655.jpg
|
||||||
|
- https://gifer.com/en/2svr
|
||||||
|
- color tuning
|
||||||
|
- neutral (white or offwhite) color and make noncritical info close to
|
||||||
|
that. http://davidjohnstone.net/pages/lch-lab-colour-gradient-picker,
|
||||||
|
chroma < 50
|
@ -1,24 +0,0 @@
|
|||||||
# Backlog
|
|
||||||
|
|
||||||
## Code cleanup
|
|
||||||
|
|
||||||
- easier way to define magic tuneable constants
|
|
||||||
- and maybe to recalculate fixedish things if they change?
|
|
||||||
- add/plan tests
|
|
||||||
- document pieces that're stabilizing
|
|
||||||
- run clippy everywhere
|
|
||||||
- presubmit script
|
|
||||||
- also enforce consistent style (derive order, struct initialization order)
|
|
||||||
|
|
||||||
## Conga line idea
|
|
||||||
|
|
||||||
- try constructive approach for snake idea
|
|
||||||
- with interactive mode?
|
|
||||||
- try destructive approach for snake idea
|
|
||||||
- with interactive mode?
|
|
||||||
|
|
||||||
## Generally useful rust stuff
|
|
||||||
|
|
||||||
- better test runner
|
|
||||||
- summary of pass/fail at the end, with timings
|
|
||||||
- log output from failures to tmp files
|
|
@ -1,31 +0,0 @@
|
|||||||
# Project plan
|
|
||||||
|
|
||||||
## Phase 1: Basemap
|
|
||||||
|
|
||||||
Produce a high-quality map of Seattle, modeling everything relevant. Input is
|
|
||||||
OSM, elevation data, King Country GIS data, etc, and also manual edits.
|
|
||||||
|
|
||||||
- Polygons shouldn't overlap
|
|
||||||
- Can export to various formats and announce for anyone's use (though waiting for the editor might be wiser)
|
|
||||||
- Have fun with themed rendering: halloween, winter, jungle, 8bit, organic
|
|
||||||
(deform buildings), floorplan, machine (make buildings pump along front
|
|
||||||
paths)
|
|
||||||
|
|
||||||
## Phase 2: Editor
|
|
||||||
|
|
||||||
Have an easy UI to modify the basemap -- changing lanes and intersections mainly.
|
|
||||||
|
|
||||||
- Can use this to make the basemap more realistic, and also later for the game
|
|
||||||
|
|
||||||
## Phase 3: Simulator
|
|
||||||
|
|
||||||
Model people moving around the map.
|
|
||||||
|
|
||||||
- Will need realistic demand data for this or the next phase
|
|
||||||
- Reversible simulation would be amazing
|
|
||||||
|
|
||||||
## Phase 4: Game
|
|
||||||
|
|
||||||
Turn everything into a game by introducing tutorial levels, specific challenges, scoring, etc.
|
|
||||||
|
|
||||||
- Figure out how to represent A/B tests
|
|
Loading…
Reference in New Issue
Block a user