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

3.3 KiB

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

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

  • 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)

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