abstreet/TODO.md
2018-06-19 10:10:30 -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

    • display + mouseover parking lane and sidewalk

      • make the center lines in geom layer work (use debug mode to verify)
      • something broke curved roads
      • make extra lanes for oneways work
        • have to switch from Centered to DrivingDirection somehow
        • either translate points up-front and be normal or fix geom layer (for turns and intersections)
    • model cars parking

      • maybe render numbers on the cars to distinguish them
      • document the FSM (on lane driving, waiting, turning, parking, etc)
    • 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 pdestrians

      • maybe draw crosswalks?
    • when rendering sidewalks, have an option for a grass buffer

    • 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
    • better layering: GeomParcel, GeomIntersection, etc, so that render layer doesn't need to know Bounds and use gps_to_screen
  • 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