mirror of
https://github.com/a-b-street/abstreet.git
synced 2024-12-28 08:53:26 +03:00
clean up and compact the old TODO files
This commit is contained in:
parent
46b340728f
commit
d40de898b8
@ -1,27 +0,0 @@
|
||||
# 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
|
||||
- fences / bushes / features in houses or triangulation on a block with buildings
|
||||
- buildings as rooms in a hotel
|
||||
- silent hill soundtrack
|
||||
- deformed buildings pulsing on front path springs
|
||||
- lighting?
|
||||
- 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?
|
@ -1,33 +0,0 @@
|
||||
# TODO - Core gameplay
|
||||
|
||||
- Example use cases
|
||||
- montlake/520 turn restrictions with pedestrian scramble
|
||||
- need intersection merging before this is understandable
|
||||
- close interior neighborhoods to most cars (except for src/dst), see how traffic restricted to arterials would work
|
||||
- puzzle: with only X miles of retained road, where would you leave them? what roads would go away?
|
||||
- parking garages on the edges of neighborhoods?
|
||||
- create a bike network with minimal hills, dedicated roads, minimal crossings
|
||||
|
||||
- charm
|
||||
- name agents, with some good names scattered in (Dustin Carlino, Dustin Bikelino, Dustin Buslino...)
|
||||
- music / sound effects
|
||||
- as you zoom in, overhear conversations and such
|
||||
- some buildings could have extra detail
|
||||
- zoom in too much, what might you see? ;)
|
||||
- loading screen: snakey cars
|
||||
- game intro/backstory: history of seattle urban planning
|
||||
- player context: a drone. people will look up eventually.
|
||||
|
||||
## Tutorial
|
||||
|
||||
- parking vs bus tutorial level
|
||||
- big vertical road. some neighborhoods off to the side. everyone trying to go north or south. one driving, one parking lane. a bus that makes a loop. some horizontal roads connected to borders that force the vertical road to not be fast. just make a dedicated bus lane! oops, except some of the bus stops are at narrow places, so traffic has to slow down anyway for the bus. maybe there's a bypass road through a neighborhood?
|
||||
- introduce elements gradually... fix a silly traffic signal with just cars, then add peds and bikes...
|
||||
- spawn cars somewhere
|
||||
- run sim, pause, change speed, reset
|
||||
|
||||
## More things to simulate
|
||||
|
||||
- Light rail and downtown bus tunnel
|
||||
- seed parked cars in neighborhood with no owner or a far-away owner, to model reasonable starting state
|
||||
- outgoing border nodes can throttle to simulate traffic downstream
|
@ -1,29 +0,0 @@
|
||||
# TODO - Project logistics
|
||||
|
||||
- enable more clippy lints
|
||||
- enforce consistent style (derive order, struct initialization order)
|
||||
|
||||
- trailer
|
||||
- show common parts of routes in A/B, point of divergence
|
||||
- "Two parallel universes sit at your fingertips, and with the flick of a key, you can glide between the two. Buses jumping past traffic in one world, snarly traffic jam in the other. An A/B test revealing what currently is, and what could be, compared meticulously and deterministically. A/B Street -- which world do you prefer?"
|
||||
|
||||
## Tooling
|
||||
|
||||
- play with https://github.com/glennw/thread_profiler
|
||||
- and https://github.com/ferrous-systems/cargo-flamegraph
|
||||
- display percentage breakdowns in Timer (need tree structure)
|
||||
|
||||
## Stability
|
||||
|
||||
- test results per git commit
|
||||
- https://github.com/spotify/git-test
|
||||
- way to view later
|
||||
- also could be benchmarks; just arbitrary data over time
|
||||
|
||||
- layered invariants
|
||||
- first: all the maps fully convert and display in some form; all tests pass or are disabled
|
||||
- slowly hone away at problems currently with errors printed (like bad pl shift angles)
|
||||
- eventually: every intersection has at least a turn, minimum lengths enforced, etc
|
||||
|
||||
- useful unit tests
|
||||
- for a given intersection with lanes, check all the turns generated
|
@ -1,96 +0,0 @@
|
||||
# TODO - Map quality
|
||||
|
||||
## Boundary clipping
|
||||
|
||||
- some border intersections have weird OOBish geometry, or the arrows look weird
|
||||
- simplify border node detection, only do it in convert_osm?
|
||||
|
||||
## Geometry
|
||||
|
||||
- bad polyline shifting remains
|
||||
- from the remaining cases, looks like we need to totally remove some tight points and retry
|
||||
- make polygons use the corrections too?
|
||||
- bad polyline shifting causes jagged lane endings in generalized_trim_back
|
||||
|
||||
- car turns often clip sidewalk corners now
|
||||
- draw SharedSidewalkCorners just around the ped path, not arbitrarily thick
|
||||
- dont forget to draw the notches
|
||||
|
||||
- figure out what to do about yellow center lines
|
||||
- intersections on one-ways look weird
|
||||
- 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 benches, bike racks
|
||||
- render trees
|
||||
- look for current stop sign priorities
|
||||
- https://gis-kingcounty.opendata.arcgis.com/datasets/traffic-signs--sign-point/
|
||||
- http://guides.lib.uw.edu/research/gis/uw-lib_data has cool stuff, but .lyr??
|
||||
|
||||
## Low-priority geometry issues
|
||||
|
||||
- if building front path intersects another building, then scrap that building.
|
||||
- or wait, just require bldgs to be even closer to sidewalk first.
|
||||
- need to do polygon vs polygon check!
|
||||
- will need to speed it up with quadtree containing entire buildings. make sure these are easy to use.
|
||||
|
||||
- can we make OSM buildings with holes?
|
||||
- experiment with https://docs.rs/clipping/0.1.1/clipping/gh/struct.CPolygon.html and https://github.com/21re/rust-geo-booleanop
|
||||
|
||||
## More problems to fix
|
||||
|
||||
- Disconnected map
|
||||
- now that LCing model is simple...
|
||||
- Impossible turns (from a far bus lane to a crazy left)
|
||||
- Buildings intersecting roads, probably because bad lane inference
|
||||
- when this happens, get rid of parking lanes first (one or both sides?)
|
||||
- iterative process... have to redo affected roads and intersections
|
||||
- we havent filtered buildings by proximity to sidewalk yet
|
||||
- if we dont filter at all, we pick up some houseboats! :) should draw water...
|
||||
|
||||
## Map edits
|
||||
|
||||
- lane type can affect border intersections
|
||||
- lane type can affect turn idx
|
||||
- assert turns are the same
|
||||
|
||||
## Sim bugs/tests needed
|
||||
|
||||
- do bikes use bike lanes?
|
||||
- test that peds will use buses organically
|
||||
- make sure that we can jump to a ped on a bus and see the bus
|
||||
- park/unpark needs to jump two lanes in the case of crossing a bike lane or something
|
||||
- should only be able to park from the closest lane, though!
|
||||
- explicit tests making cars park at 0 and max_dist, peds walk to 0 and max_dist
|
||||
- lanechange rebalancing
|
||||
- parking/unparking on offside of oneway
|
||||
|
||||
## Discrete-event sim model
|
||||
|
||||
- perf
|
||||
- dig into individual events, still too many?
|
||||
- for laggy heads, often round down and try slightly too early
|
||||
|
||||
## Laundry list of intersection geometry ideas
|
||||
|
||||
- make sure road widths are reasonable first
|
||||
- SDOT dataset
|
||||
- channelization
|
||||
- extend all the thick roads until they poke out of stuff (except for roads continuing straight)
|
||||
- play with https://github.com/w8r/polygon-offset
|
||||
- https://github.com/migurski/Skeletron
|
||||
- stitch together orig center line of adj roads. then do polyline shifting, which already handles angle eating?
|
||||
- manually draw intersections
|
||||
- montlake/520 4 traffic signal case. existing road geometry in OSM doesn't even cover everything.
|
@ -1,39 +0,0 @@
|
||||
# TODO - Refactoring
|
||||
|
||||
- easier way to define magic tuneable constants
|
||||
- and maybe to recalculate fixedish things if they change?
|
||||
|
||||
## Map layer
|
||||
|
||||
- fixed precision math
|
||||
- more careful geom types, with negative/positive cases
|
||||
- also bounds?
|
||||
- cant get rid of the ccw intersection check... different answer in some cases that looks bad
|
||||
|
||||
- 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
|
||||
|
||||
- rename Car->Vehicle?
|
||||
- spawning is convoluted
|
||||
- popdat trip -> Scenario SpawnTrip -> pick ped speed and make spawner's TripSpec -> create trip and schedule a Command -> last minute rewriting when executing the command
|
||||
- more precise car FSM by putting scheduler pointer into carstate
|
||||
|
||||
## ezgui layer
|
||||
|
||||
- probably use f32, not f64 everywhere... but after Pt2D becomes fixed size
|
||||
- undo the y inversion hacks at last!
|
||||
- ezgui passes EventCtx and DrawCtx with appropriate things exposed.
|
||||
- maybe move glyph ownership out of canvas entirely. dont need RefCell.
|
||||
- need to pass around a NonDrawCtx very uniformly first for this to work
|
||||
- canvas owning text-drawing is maybe a bit weird, at least API-wise
|
||||
- hide stuff inside the ctx's? canvas and prerender shouldnt even be known outside of crate
|
||||
- generic World with quadtree should have actions on objects
|
||||
- loading screen
|
||||
- FileWithProgress should go directly into Timer
|
||||
- need to understand lifetimes
|
||||
- cleanup abstutil Timer stuff generally
|
@ -1,62 +0,0 @@
|
||||
# TODO - GUI and UX
|
||||
|
||||
## Fix existing stuff
|
||||
|
||||
- if a lane could feasibly have multiple turn options but doesnt, print "ONLY"
|
||||
- audit all panics
|
||||
- tune text color, size, padding
|
||||
|
||||
- click cycle diagram to edit duration
|
||||
|
||||
- yellow or flashing red/yellow for yields
|
||||
- text box entry: highlight char looks like replace mode; draw it btwn chars
|
||||
|
||||
## General ezgui stuff
|
||||
|
||||
- arbitrary viewports?!
|
||||
- tiling wm
|
||||
|
||||
## New features
|
||||
|
||||
- collapse smaller roads/neighborhoods and just show aggregate stats about them (in/out flow, moving/blocked within)
|
||||
|
||||
## Better rendering
|
||||
|
||||
- depict residential bldg occupany size somehow
|
||||
- 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
|
||||
- general inspiration
|
||||
- https://gifer.com/en/2svr
|
||||
- https://www.fhwa.dot.gov/publications/research/safety/05078/images/fig6.gif
|
||||
- http://gamma.cs.unc.edu/HYBRID_TRAFFIC/images/3d-topdown.jpg
|
||||
- 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
|
||||
|
||||
## Performance
|
||||
|
||||
- it's a pity we have to redo DrawCar work for all those parked cars every tick
|
||||
- show FPS or some kind of measure of lag
|
||||
- sleep better in the event loop
|
||||
- first make UserInput borrow state and not need to consume
|
||||
- more speculative performance ideas
|
||||
- specialized shaders for common shapes like circles?
|
||||
- try https://docs.rs/dymod/0.1.0/dymod/ to link in a release-mode ezgui crate?
|
||||
|
||||
## Depicting traffic unzoomed
|
||||
|
||||
- strange things to depict
|
||||
- cars partly straddling roads
|
||||
- some lanes backed up, others moving
|
||||
- peds (lots of them in one position maybe!)
|
||||
- intersections (simultaneous turns, some blocked, others not)
|
||||
- peds waiting for bus
|
||||
- general ideas
|
||||
- darked colors (contrast map bg and road)
|
||||
- show min/max bounds (exact max is hard, but could calculate best-case easily)
|
||||
- percentage of capacity instead of an exact, moving length
|
||||
- criteria
|
||||
- at low zoom, easily pinpoint where things are moving and stuck
|
||||
- include all agents
|
144
docs/backlog.md
Normal file
144
docs/backlog.md
Normal file
@ -0,0 +1,144 @@
|
||||
# Backlog
|
||||
|
||||
These are very old TODOs that aren't captured elsewhere.
|
||||
|
||||
## Themed rendering
|
||||
|
||||
- halloween, winter, jungle, 8bit, organic (deform buildings), floorplan,
|
||||
machine (make buildings pump along front paths)
|
||||
|
||||
## Halloween visual demo
|
||||
|
||||
- cars with headlights
|
||||
- pumpkins
|
||||
- fences / bushes / features in houses or triangulation on a block with buildings
|
||||
- buildings as rooms in a hotel
|
||||
- silent hill soundtrack
|
||||
- deformed buildings pulsing on front path springs
|
||||
- lighting?
|
||||
- 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?
|
||||
|
||||
## Charm
|
||||
|
||||
- music / sound effects
|
||||
- as you zoom in, overhear conversations and such
|
||||
- some buildings could have extra detail
|
||||
- zoom in too much, what might you see? ;)
|
||||
- loading screen: snakey cars
|
||||
- game intro/backstory: history of seattle urban planning
|
||||
- player context: a drone. people will look up eventually.
|
||||
|
||||
## More things to simulate
|
||||
|
||||
- seed parked cars in neighborhood with no owner or a far-away owner, to model reasonable starting state
|
||||
- outgoing border nodes can throttle to simulate traffic downstream
|
||||
|
||||
## Tooling
|
||||
|
||||
- play with https://github.com/glennw/thread_profiler
|
||||
- and https://github.com/ferrous-systems/cargo-flamegraph
|
||||
- display percentage breakdowns in Timer (need tree structure)
|
||||
|
||||
## Boundary clipping
|
||||
|
||||
- some border intersections have weird OOBish geometry, or the arrows look weird
|
||||
- simplify border node detection, only do it in convert_osm?
|
||||
|
||||
## 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
|
||||
- render trees
|
||||
- look for current stop sign priorities
|
||||
- https://gis-kingcounty.opendata.arcgis.com/datasets/traffic-signs--sign-point/
|
||||
- http://guides.lib.uw.edu/research/gis/uw-lib_data has cool stuff, but .lyr??
|
||||
|
||||
## Map edits
|
||||
|
||||
- lane type can affect border intersections
|
||||
|
||||
## Sim bugs/tests needed
|
||||
|
||||
- do bikes use bike lanes?
|
||||
- test that peds will use buses organically
|
||||
- make sure that we can jump to a ped on a bus and see the bus
|
||||
- park/unpark needs to jump two lanes in the case of crossing a bike lane or something
|
||||
- should only be able to park from the closest lane, though!
|
||||
- explicit tests making cars park at 0 and max_dist, peds walk to 0 and max_dist
|
||||
- lanechange rebalancing
|
||||
- parking/unparking on offside of oneway
|
||||
|
||||
## Laundry list of intersection geometry ideas
|
||||
|
||||
- make sure road widths are reasonable first
|
||||
- SDOT dataset
|
||||
- channelization
|
||||
- extend all the thick roads until they poke out of stuff (except for roads continuing straight)
|
||||
- play with https://github.com/w8r/polygon-offset
|
||||
- https://github.com/migurski/Skeletron
|
||||
- stitch together orig center line of adj roads. then do polyline shifting, which already handles angle eating?
|
||||
- manually draw intersections
|
||||
- montlake/520 4 traffic signal case. existing road geometry in OSM doesn't even cover everything.
|
||||
|
||||
## Map layer
|
||||
|
||||
- fixed precision math
|
||||
- more careful geom types, with negative/positive cases
|
||||
- also bounds?
|
||||
- cant get rid of the ccw intersection check... different answer in some cases that looks bad
|
||||
|
||||
## Sim layer
|
||||
|
||||
- rename Car->Vehicle?
|
||||
- spawning is convoluted
|
||||
- popdat trip -> Scenario SpawnTrip -> pick ped speed and make spawner's TripSpec -> create trip and schedule a Command -> last minute rewriting when executing the command
|
||||
- more precise car FSM by putting scheduler pointer into carstate
|
||||
|
||||
## ezgui layer
|
||||
|
||||
- probably use f32, not f64 everywhere... but after Pt2D becomes fixed size
|
||||
- undo the y inversion hacks at last!
|
||||
- ezgui passes EventCtx and DrawCtx with appropriate things exposed.
|
||||
- hide stuff inside the ctx's? canvas and prerender shouldnt even be known outside of crate
|
||||
- loading screen
|
||||
- FileWithProgress should go directly into Timer
|
||||
- need to understand lifetimes
|
||||
|
||||
## Fix existing stuff
|
||||
|
||||
- if a lane could feasibly have multiple turn options but doesnt, print "ONLY"
|
||||
- text box entry: highlight char looks like replace mode; draw it btwn chars
|
||||
|
||||
## New features
|
||||
|
||||
- collapse smaller roads/neighborhoods and just show aggregate stats about them (in/out flow, moving/blocked within)
|
||||
|
||||
## Better rendering
|
||||
|
||||
- depict residential bldg occupany size somehow
|
||||
- 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
|
||||
- general inspiration
|
||||
- https://gifer.com/en/2svr
|
||||
- https://www.fhwa.dot.gov/publications/research/safety/05078/images/fig6.gif
|
||||
- http://gamma.cs.unc.edu/HYBRID_TRAFFIC/images/3d-topdown.jpg
|
||||
- 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
|
Loading…
Reference in New Issue
Block a user