mirror of
https://github.com/a-b-street/abstreet.git
synced 2024-12-26 16:02:23 +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
|
||||
- pumpkins
|
||||
@ -10,3 +17,11 @@
|
||||
- fog effects
|
||||
- in 3D, what if roads are sunken rivers and buildings giant skyscrapers?
|
||||
- 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