From a9823c28e98f8295838184c25901cca605641394 Mon Sep 17 00:00:00 2001 From: Jim Schreckengast Date: Tue, 10 Nov 2026 22:03:56 -0700 Subject: [PATCH] Add a roadmap through 2027 ROADMAP.md says what the project plans to work on through the end of 2027, grouped as next, later in 2027 and if time allows, and what it doesn't plan to take on, such as large networks, connections to real signal hardware, plugins, Python bindings and translations. The README, CONTRIBUTING.md and GOVERNANCE.md link to it, and the maintainer's role now includes keeping it current. Signed-off-by: Jim Schreckengast --- CONTRIBUTING.md | 3 +- GOVERNANCE.md | 2 +- README.md | 7 ++-- ROADMAP.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 ROADMAP.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 72af4c2..e2bcf69 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,8 @@ public issue. How decisions are made and who does what is described in * **Anything larger:** open an issue describing the change before writing much code. That includes new controllers, changes to vehicle, pedestrian or signal behavior, new dependencies, and anything that would change the published results. Agreeing on the - approach first saves rework. + approach first saves rework. Check [ROADMAP.md](ROADMAP.md) too: it lists what's + planned and what isn't. * **Simulation realism:** if something behaves unrealistically, say what real traffic would do and, where you can, cite a source (for example the *Highway Capacity Manual*, the *MUTCD* or a published study). diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 175e8f8..beb9538 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -32,7 +32,7 @@ This document describes how decisions are made and who does what. | Role | Who | Responsibilities | |---|---|---| -| Maintainer | Jim Schreckengast ([schreck61](https://github.com/schreck61)) | Sets the project's direction; triages issues; reviews and merges pull requests; keeps CI, dependencies and documentation up to date; makes releases and publishes them on GitHub and crates.io; manages the code-signing and publishing settings; responds to vulnerability reports as [SECURITY.md](SECURITY.md) describes; enforces the [Code of Conduct](CODE_OF_CONDUCT.md) | +| Maintainer | Jim Schreckengast ([schreck61](https://github.com/schreck61)) | Sets the project's direction and keeps the [roadmap](ROADMAP.md) current; triages issues; reviews and merges pull requests; keeps CI, dependencies and documentation up to date; makes releases and publishes them on GitHub and crates.io; manages the code-signing and publishing settings; responds to vulnerability reports as [SECURITY.md](SECURITY.md) describes; enforces the [Code of Conduct](CODE_OF_CONDUCT.md) | | Backup maintainer | Chris Miller ([csm0513](https://github.com/csm0513)) | Keeps the project going if the maintainer can't, as [Continuity](#continuity) describes: answers and closes issues, merges pull requests whose required checks pass, makes releases, and settles the project's long-term future; has no duties otherwise | | Contributor | Anyone who opens an issue or pull request | Follows [CONTRIBUTING.md](CONTRIBUTING.md), signs off every commit under the [Developer Certificate of Origin](https://developercertificate.org/), and follows the Code of Conduct | | Security reporter | Anyone who finds a vulnerability | Reports it privately as [SECURITY.md](SECURITY.md) describes, not in a public issue | diff --git a/README.md b/README.md index 5edc72c..b99d95c 100644 --- a/README.md +++ b/README.md @@ -487,6 +487,8 @@ docs/ insights.md (every finding), cooperative-intersections.md (desig per core: `RESUME=1 cargo run --release --bin train all 300 900 hybrid` fine-tunes the shipped weights. +[ROADMAP.md](ROADMAP.md) says which of these the project plans to work on. + ![Three-signal corridor](docs/corridor.png) ![Side-by-side comparison](docs/compare.png) @@ -494,8 +496,9 @@ docs/ insights.md (every finding), cooperative-intersections.md (desig ## Contributing Bug reports, realism fixes and new experiments are welcome; see -[CONTRIBUTING.md](CONTRIBUTING.md) and the [Code of Conduct](CODE_OF_CONDUCT.md). Every -commit must be signed off under the +[CONTRIBUTING.md](CONTRIBUTING.md) and the [Code of Conduct](CODE_OF_CONDUCT.md). +[ROADMAP.md](ROADMAP.md) says what's planned and what isn't. Every commit must be +signed off under the [Developer Certificate of Origin](https://developercertificate.org/) (`git commit -s`). [GOVERNANCE.md](GOVERNANCE.md) describes how decisions are made and who does what. Please report security vulnerabilities privately, as described in [SECURITY.md](SECURITY.md). diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..c79cdf2 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,95 @@ +# Roadmap + +This is what Intersection Lab plans to work on through the end of 2027, and what it +doesn't plan to take on. It's a statement of direction, not a promise: this is a +one-maintainer project, and plans can change with what the experiments find, what users +ask for and the time available. The maintainer reviews it at least once a year and +whenever plans change. + +Last reviewed: November 2026, version 0.5.1. + +## Next + +* **Transit signal priority.** Buses get a green extension or an early green, optionally + only when they're running late, so the benchmarks can weigh what priority saves bus + riders against what it costs everyone else. +* **Pedestrian scramble and slower walkers.** An exclusive pedestrian phase, with + pedestrians crossing in every direction at once, to compare with the leading + pedestrian interval and the no-turn-on-red sign. An option for a share of slower + walkers, such as older pedestrians and people using mobility aids, will test whether + clearance times leave anyone in the road. +* **Safety measures for vehicle conflicts.** Time-to-collision and post-encroachment + time, the standard surrogate safety measures, alongside the overlaps and pedestrian + near-misses measured today. +* **Bring your own controller.** An example and guide showing how to implement the + `Controller` trait in your own crate and benchmark it against the built-in controllers + on identical arrivals. +* **Export results as CSV.** Key results, per-vehicle trips and benchmark tables, as a + download from the app and from `bench`. + +## Later in 2027 + +* **Coordinated adaptive corridors.** Adaptive signals along a corridor that plan + together, as SURTRAC does, compared with coordinated-actuated control, the usual setup + on US arterials. The [corridor study](docs/insights.md#4-corridors) found that telling + each signal what its upstream neighbor released isn't enough, and that the real gains + need coordinated plans. This will also test whether tuning the planner with + reinforcement learning, which helps at a single intersection, helps along a corridor + too. +* **Mixed traffic and failures at the cooperative crossing.** Human drivers mixed in with + automated vehicles at different shares, and lost messages, a failed intersection + manager and a vehicle stalled in the box. These are the crossing's main untested + assumptions. +* **Save, load and share scenarios.** A scenario's layout, demand, sensors and control + settings saved to a file and loaded again, and in the browser version a link that + carries the scenario itself. Scenario files and links are a new kind of untrusted + input, so they'll get the same typed parsing, checks and fuzzing as weights files, and + [SECURITY.md](SECURITY.md) and the [assurance case](docs/assurance-case.md) will be + updated to match. +* **Accessibility.** Work through the known limitations listed in + [ACCESSIBILITY.md](ACCESSIBILITY.md): keyboard ways to select a vehicle, place sensors + and choose a crosswalk corner, shortcuts between panels, map views that don't rely on + color alone, and a light or high-contrast theme. + +## If time allows + +* **A two-lane roundabout,** to test whether the roundabout's strong results at moderate + volumes hold at arterial volumes. +* **Bicycles:** cyclists in bike lanes, bike boxes, and right-hook conflicts with turning + vehicles. +* **Small grids:** corridors that run north–south as well as east–west, then a 2×2 grid + of intersections. +* **Importing traffic counts:** demand set from turning-movement counts in a CSV file, to + replay a real intersection's peak hour. + +## Not planned + +To keep the project focused, small and safe to run, it doesn't plan to take on: + +* **Large networks:** city-scale or regional networks, freeways, ramps and interchanges. + Network simulators such as SUMO, VISSIM and Aimsun cover these. +* **Designing real intersections.** Results are for exploring, teaching and research, + not a substitute for an engineering study. +* **Connections to the outside world:** real signal controllers, field hardware or live + data feeds, and network features such as accounts, cloud runs or telemetry. The app + makes no network connections of its own, and that won't change. +* **Plugins, scripting or loading code at run time.** Your own controller is compiled + in, as described under *Next*. +* **Driver errors and crashes.** Drivers stay law-abiding, and safety is measured with + surrogates. +* **Python bindings,** such as a Gymnasium environment. They would add a second + language, package and supply chain to build, sign and publish. +* **Translations and other countries' rules.** The interface stays in English, and the + traffic rules follow US practice (the MUTCD), with vehicles driving on the right. +* **3D graphics, phones and tablets.** The app stays a 2D, top-down view on desktop + computers and in desktop browsers. +* **A stable Rust API.** The crate stays at 0.x, so its API can change between minor + versions. + +## Suggesting a change + +To propose something for the roadmap, including something listed as not planned, open +an [issue](https://github.com/schreck61/intersection-lab/issues). Help with anything +under *Next*, *Later in 2027* or *If time allows* is welcome; as +[CONTRIBUTING.md](CONTRIBUTING.md#before-you-start) asks, please open an issue before +writing much code, so the approach can be agreed first.