Repository navigation
Releases
Intersection Lab 0.4.0
Changes
-
Training counts every delayed person. The reward now includes vehicles held at the edge of the map and pedestrians waiting to cross, not just vehicles on the road, so a controller can no longer starve an approach or a crosswalk for free.
-
Honest model selection. Checkpoints are chosen on 16 validation scenarios (design demand, lighter and heavier traffic, randomized demand, bad weather, failed loop detectors) and then scored on 24 separate test scenarios that no choice ever uses. A checkpoint is accepted only if its pedestrian waits stay within 5 s of the predictive controller's.
-
Deep RL protects pedestrians. Its safety shield now gives the next walk to any pedestrian who has waited 40 s. On the held-out test set (mean of three training seeds), pedestrian waits fall by 4 to 26 s against 0.3.0, most on the T-junction (45.6 → 19.7 s). Person delay is about the same on three layouts and 2.1 s lower on major/minor. On the four-way layouts the rule also lowers vehicle delay.
-
Both AI controllers retrained with one hidden layer of 128 units for 800 episodes (
train all 800 900 dqnandtrain all 800 900 hybridreproduce them). The hybrid now beats predictive control on every layout's test set, by 0.4 to 1.3 s. Most of that comes from a better fixed tuning of the planner; its network adds to that on the arterial and town layouts. -
Benchmark person delay (
bench all 20 6):Arterial Major/minor Town T-junction Hybrid, 0.3.0 17.9 s 21.5 s 22.4 s 13.4 s Hybrid, 0.4.0 16.8 s 21.5 s 21.6 s 13.7 s Deep RL, 0.3.0 19.4 s 24.4 s 30.0 s 11.7 s Deep RL, 0.4.0 21.3 s 26.0 s 29.0 s 12.3 s The benchmark scores one network per layout at design demand. Networks trained from different seeds differ by 1 to 3 s, so the README's held-out comparison across three seeds is the fairer measure of Deep RL's change.
-
Accessibility. Dropdowns can be opened and used from the keyboard, Escape closes the About and benchmark windows, and Space pauses only when no control has focus. Dropdowns are named for screen readers in the desktop app. Small text is larger (11 px), and all panel and chart text meets 4.5:1 contrast. ACCESSIBILITY.md describes what works and the known barriers.
-
Training options:
RESUME=1must still beat the best fixed tuning before saving, andSEEDandHIDDENset the seed and hidden layers. -
Project: a code of conduct, contributing guide, security policy (with private vulnerability reporting), issue forms and a pull request template. Windows signing moved to the renamed Azure Artifact Signing action.
Downloads
Signed and notarized installers for macOS (DMG), signed installers for Windows x64 and arm64 (MSI, ZIP), and Linux packages (deb, rpm, tar.gz) for x86_64 and aarch64. Checksums are in SHA256SUMS.txt. The browser version is on the project's GitHub Pages site.
Full Changelog: v0.3.0...v0.4.0
Intersection Lab 0.3.0
Changes
-
A smaller, better Deep RL network. The Deep RL controller's network now has one hidden layer of 128 units instead of two. In tests on scenarios held back from training, one layer gave lower person delay than two on every layout, and doubling the training didn't close the gap. The networks were retrained for 800 episodes (
train all 800 900 dqn). -
Deep RL's benchmark results improve on every layout:
Person delay Arterial Major/minor Town T-junction 0.2.2 31.1 s 34.3 s 40.0 s 13.1 s 0.3.0 19.4 s 24.4 s 30.0 s 11.7 s Pedestrian waits under Deep RL also fall by 4 to 10 s on the four-way layouts. On the T-junction they stay long, at about 46 s, because pedestrian delay isn't part of what the network is trained to reduce.
-
The Hybrid controller is unchanged. Retrained with one hidden layer, it did worse on the town layout and the T-junction, so it keeps its earlier networks. Every other controller is unchanged too.
-
The README, the insights write-up and the app's training hint are updated to match.
Downloads
Signed and notarized installers for macOS (DMG), signed installers for Windows x64 and arm64 (MSI, ZIP), and Linux packages (deb, rpm, tar.gz) for x86_64 and aarch64. Checksums are in SHA256SUMS.txt. The browser version is on the project's GitHub Pages site.
Full Changelog: v0.2.2...v0.3.0
Intersection Lab 0.2.2
Changes
- Corrected spelling errors in the app's text, the documentation and the code comments. The simulation itself is unchanged: every result is the same as in 0.2.1.
Downloads
Signed and notarized installers for macOS (DMG), signed installers for Windows x64 and arm64 (MSI, ZIP), and Linux packages (deb, rpm, tar.gz) for x86_64 and aarch64. Checksums are in SHA256SUMS.txt. The browser version is on the project's GitHub Pages site.
Full Changelog: v0.2.1...v0.2.2
Intersection Lab 0.2.1
Fixes
- The last gridlocks are gone. A vehicle stuck in the intersection could choose to wait across a path whose traffic was only held by a red light. When the light changed it blocked that traffic, and on a busy arterial three vehicles could end up each stopped in another's path. Vehicles now treat traffic waiting at a red as traffic that will need the space, and wait short of its path if they still can. A sweep of 960 long runs (6 controllers × 16 seeds on every signalized layout, at 1×–1.6× traffic for 5–20 simulated hours) now finishes with no gridlock and no collisions, and a regression test replays one of the old cases.
Results
- Every benchmark and study has been re-run and the README and insights updated. Most numbers moved by a few tenths of a second; a few findings changed: predictive control now edges out the hybrid on the town layout, sharing upstream outflow no longer helps on the arterial, and a leading pedestrian interval on its own does little (combined with no-turn-on-red it still cuts near-misses on busy crosswalks by a half to two-thirds).
- The Deep RL and Hybrid networks are unchanged; the docs note they were trained before the 0.2 right-of-way fixes, which barely change normal traffic.
Code quality
- The code is clippy-clean (desktop and browser builds), and CI now fails on any clippy warning. The cleanup changes no results: every benchmark gives identical output.
Downloads
Signed and notarized installers for macOS (DMG), signed installers for Windows x64 and arm64 (MSI, ZIP), and Linux packages (deb, rpm, tar.gz) for x86_64 and aarch64. Checksums are in SHA256SUMS.txt. The browser version is on the project's GitHub Pages site.
Full Changelog: v0.2.0...v0.2.1
Intersection Lab 0.2.0
Fixes
- No more gridlock in the intersection. Under heavy traffic a vehicle could pull into a crossing behind another one that was still creeping up to where it would wait, leaving both stuck across each other's paths (e.g. the 4-way arterial with the Hybrid controller, seed 1, within 20 simulated hours). Vehicles now stop short of a crossing in that situation and only commit when they can clear it.
- Fixed a rare T-junction collision between a left-turner clearing on red and a car that went through late on the yellow. When two vehicles commit to a crossing at the same instant, the one that can still stop now yields.
- Fixed a rare rear-end collision at diverges: followers keep seeing a long vehicle that turns off until its tail has cleared the split.
- New regression tests cover the gridlock and collision cases; controller benchmark tables in the README and insights were refreshed.
Build and packaging
- macOS builds now run on macOS 15 runners.
- Updated CI actions (attest-build-provenance, upload/download-artifact, setup-dotnet, azure/login).
Downloads
Signed and notarized installers for macOS (DMG), signed installers for Windows x64 and arm64 (MSI, ZIP), and Linux packages (deb, rpm, tar.gz) for x86_64 and aarch64. Checksums are in SHA256SUMS.txt. The browser version is at the project's GitHub Pages site.
Full Changelog: v0.1.0...v0.2.0
Intersection Lab 0.1.0
Full Changelog: https://github.com/schreck61/intersection-lab/commits/v0.1.0