The evidence: 27 genuine screenshots from the audit
14 are sumo-gui screenshots of the running simulation, taken over TraCI during held-out trials on seed 95000. Each comes from one of eight GUI runs whose signal sequence and mean time loss equal those of the headless trial with the same scenario, arm and seed, so each picture shows the experiment that is reported. 13 are audit-dashboard renderings of recorded result files.
None is drawn, edited, cropped or composited. Cards show a resized copy for speed; every original PNG is linked and is byte-identical to the audit’s file. 27 of 27 originals matched the SHA-256 in the audit’s evidence manifest when this page was built. Captions, claims and limitations are the manifest’s own; six planned captions that did not match the captured state were corrected from the recorded data before release.
Reading the simulator images: thin red, yellow and green lines at the stop lines are the signal states SUMO is showing; cyan bars just past junctions are the lane-area detectors the harness uses to measure spillback; the ambulance is white with a cross, the fire engine red, the police car blue, ordinary cars yellow. An image shows the state one simulation step after the capture call.
Pilot scope: offline, shadow-only research. No connection to live public traffic signals.
Showing 27 of 27
Network and testbed
The 36-junction grid as the simulator drew it, and the validation of its topology.
city36, all 36 signalised junctions (C00-C55), VECTOR controlling every one, t=301 s
sumo-gui screenshot · scenario A · arm vector · seed 95000 · t = 301 s
- What it shows
- the evaluated network is the 36-junction grid, under live control
- What it does not establish
- an image shows layout and traffic; junction count is proven by topology_report.json
Original 1590×963 PNGsha256 5707b9171dbdc312… · verified
Topology validation of city36: 36 signal-controlled intersections, gate A
dashboard rendering of recorded results
- What it shows
- the executed network has 36 connected signal-controlled intersections, validated from the SUMO network files
- What it does not establish
- a synthetic 6x6 grid, not a real city; validation is structural (junctions, links, programmes), not behavioural
Original 1500×1000 PNGsha256 d3f8ab9ab508884a… · verified
reference scenario R0 at 601 s under SUMO's native actuated baseline: the traffic state with no VECTOR and no event
sumo-gui screenshot · scenario R0 · arm native_actuated · seed 95000 · t = 601 s
- What it shows
- the baseline network state before any intervention or disturbance
- What it does not establish
- one instant of one seed
Original 1590×963 PNGsha256 9a75291eec5848fc… · verified
Controller behaviour
Individual decisions, a corridor of independent decisions, and one control cycle traced end to end.
C21 at its first commanded change after 1200 s: after clearance VECTOR gives EW green to 3 halting vehicles (VEHICLE_DEMAND); C11, left, is in all-red after ending EW green on gap-out
sumo-gui screenshot · scenario A · arm vector · seed 95000 · t = 1201 s
- What it shows
- a VECTOR decision was executed by SUMO (commanded = reported state, checked each step)
- What it does not establish
- the reason is in the decision record beside the image, not in the image
Original 1590×963 PNGsha256 d690b5bf344b0d43… · verified
row-1 corridor, same instant: six junctions, six independent decisions
sumo-gui screenshot · scenario A · arm vector · seed 95000 · t = 1211 s
- What it shows
- each corridor junction responds to its own queues
- What it does not establish
- there is NO coordination mechanism (no offsets, no shared state); this shows its absence, not coordination
Original 1590×963 PNGsha256 ee081fd837e930f8… · verified
One control cycle end to end at C21, t=1200 s, scenario A: measurement, sensor, observer, law, adapter, SUMO, shadow
dashboard rendering of recorded results · scenario A · arm vector · seed 95000 · t = 1200 s
- What it shows
- the live path is SUMO -> observer -> decide_signals -> SignalAdapter -> SUMO; the shadow has no path to the decision
- What it does not establish
- a single decision record; that the shadow has no influence is proven by the paired signal-sequence check, not by this image
Original 1500×1000 PNGsha256 141d5874a1ff9bf8… · verified
Congestion and downstream blockages
Surges, capacity cuts and blocked exits — including the clearest picture of where VECTOR fails.
the same corridor, same seed and surge, under SUMO's native actuated baseline
sumo-gui screenshot · scenario A · arm native_actuated · seed 95000 · t = 1201 s
- What it shows
- the baseline faces identical demand at the same instant
- What it does not establish
- one instant of one seed; the comparison is in the metrics, not in two pictures
Original 1590×963 PNGsha256 e38b744a138a1b53… · verified
row-1 corridor at 1201 s, during the x4 surge from W1 and E1 (600-1500 s): the queue is concentrated at the western entry C01 (52 halting on EW); the downstream corridor junctions hold 0-3
sumo-gui screenshot · scenario A · arm vector · seed 95000 · t = 1201 s
- What it shows
- the surge congests the corridor entry, and VECTOR's input there is the halting count
- What it does not establish
- VECTOR has no congestion detector; 'detection' here is the halting count it is shown
Original 1590×963 PNGsha256 d690b5bf344b0d43… · verified
capacity reduction on C12->C13 (column-1 arterial northbound), 1001 s: a vehicle stalled at C13's stop line in lane 0 since 700 s, speed limit 30% on the link; traffic passes in lane 1
sumo-gui screenshot · scenario F · arm vector · seed 95000 · t = 1001 s
- What it shows
- the incident removes one of two lanes at C13's northbound stop line
- What it does not establish
- VECTOR is not told of the incident; it sees only queues (the stalled vehicle is excluded from the count it is shown)
Original 1590×963 PNGsha256 cadee3ee103686b5… · verified
the same view at 1401 s: lane 0 still blocked, traffic still on its assigned route
sumo-gui screenshot · scenario F · arm vector · seed 95000 · t = 1401 s
- What it shows
- no vehicle was rerouted (route changes 0 across every run)
- What it does not establish
- documents the ABSENCE of rerouting; there is no rerouting module in the SUMO path
Original 1590×963 PNGsha256 4fb9dc94d7dbc94c… · verified
C41 at 1291 s, scenario I: both lanes of the C31->C41 approach blocked by vehicles stalled at the stop line since 641/662 s; VECTOR has held EW green for 43 s on a 32-vehicle queue that cannot move (it ends at max green, 45 s, and is re-served)
sumo-gui screenshot · scenario I · arm vector · seed 95000 · t = 1291 s
- What it shows
- VECTOR's law serves a queue that cannot discharge: halting count is its only demand signal (the mechanism of section 5.2)
- What it does not establish
- one junction, one instant; the decision sequence is in the trace (E27) and the aggregate in ineffective green (S18)
Original 1590×963 PNGsha256 dc41e4ba6740e197… · verified
combined stress at 1041 s: row-1 surge, C31->C41 blocked, ambulance and fire engine en route, a capacity cut due at 1100 s
sumo-gui screenshot · scenario O · arm vector · seed 95000 · t = 1041 s
- What it shows
- VECTOR ran the whole network under simultaneous stresses
- What it does not establish
- the effect of VECTOR, if any, is in the paired metrics
Original 1590×963 PNGsha256 485c39939a69215c… · verified
end of the combined stress run (2691 s): demand stopped at 2100 s, yet 601 vehicles are still in the network (569 halting at approaches); it did not drain
sumo-gui screenshot · scenario O · arm vector · seed 95000 · t = 2691 s
- What it shows
- under combined stress VECTOR leaves a residual queue at the end of the run
- What it does not establish
- final metrics are in the results tables
Original 1590×963 PNGsha256 3c31c958b8f865bf… · verified
Scenario I, junction C41, 1243-1320 s: every decision while both lanes of the C31->C41 approach are blocked at the stop line
dashboard rendering of recorded results · scenario I · arm vector · seed 95000 · t = 1243 s
- What it shows
- VECTOR serves EW green to max green (45 s) on a 29-34 vehicle queue that does not discharge, then re-serves EW after clearance; its reason string labels the queue 'discharging'
- What it does not establish
- one junction, one seed; the aggregate is ineffective green (S18) and the cross-cell correlation in DIAGNOSIS.md D4
Original 1500×1925 PNGsha256 19b9176ddc0358b6… · verified
Emergency-vehicle scenarios
Ambulances, fire engines and police cars, including the saturated scenario where priority did not get the police car through.
ambulance amb1 (white, eastbound on row 1) approaching C21; the decision record beside it shows whether VECTOR gave its approach priority
sumo-gui screenshot · scenario C · arm vector · seed 95000 · t = 947 s
- What it shows
- VECTOR's emergency rule acts on an ambulance it is shown
- What it does not establish
- detection is ideal (simulator ground truth, confidence 0.95); vehicles do not yield
Original 1590×963 PNGsha256 0dbd4c40bcafc2aa… · verified
fire engine fire1 (red, northbound on column 2) after the C21 conflict, approaching C22
sumo-gui screenshot · scenario D · arm vector · seed 95000 · t = 960 s
- What it shows
- the fire engine is handled by the same emergency rule
- What it does not establish
- one vehicle at one instant; its full journey is in the EV table
Original 1590×963 PNGsha256 d19491dfb6a859d4… · verified
C21 as the ambulance (EW) and the fire engine (NS) converge on conflicting approaches
sumo-gui screenshot · scenario D · arm vector · seed 95000 · t = 938 s
- What it shows
- competing requests at one junction: the record shows which approach was served
- What it does not establish
- VECTOR's input admits ONE emergency per junction; the harness reports the most recently dispatched one, so the other gets no priority
Original 1590×963 PNGsha256 0b3131306852c7fc… · verified
Scenario E, seed 95000: ambulance, fire engine and police in every arm
dashboard rendering of recorded results · scenario E · seed 95000
- What it shows
- VECTOR's emergency override gives the shortest trip for all three emergency vehicles, against every baseline, on this seed and in the 10-seed means
- What it does not establish
- ideal detection from simulator ground truth; ordinary vehicles do not yield; one seed shown, the 10-seed result is in emergency.json
Original 1500×1000 PNGsha256 2ebc273701da36ca… · verified
Scenario K, seed 95000: three emergency vehicles in a saturated network
dashboard rendering of recorded results · scenario K · seed 95000
- What it shows
- under saturation the override does not guarantee arrival: on this seed the police car (pol1, E4->W1) is still in the network at the end under VECTOR, vehicle-actuated and fixed-time control; only the native programme gets it through (over 10 seeds: VECTOR 5/10, native 7/10, vehicle-actuated 0/10, fixed 2/10)
- What it does not establish
- one seed shown; arrival counts over 10 seeds are in emergency.json
Original 1500×1000 PNGsha256 4cb54e8ca439002a… · verified
Sensor corruption and adversarial conditions
What VECTOR was shown when the observations were noisy, stale, swapped or invalid.
Scenario G, junction C00 (congested corner), t 1688-1726 s: true queue, what the sensor model showed VECTOR, the QueueObserver belief and the decision
dashboard rendering of recorded results · scenario G · arm vector · seed 95000 · t = 1688 s
- What it shows
- VECTOR decided on corrupted observations (noise, dropouts, phantom spikes); the observer clamps impossible jumps
- What it does not establish
- the sensor model is the audit's own simple model (Gaussian noise, Bernoulli dropout, spikes), not a real detector's failure physics
Original 1500×1000 PNGsha256 418fe6a5392029f9… · verified
Scenario L, junction C44 (approaches swapped), t 1134-1172 s: stale (10 s delayed), contradictory, dropped and invalid observations
dashboard rendering of recorded results · scenario L · arm vector · seed 95000 · t = 1134 s
- What it shows
- VECTOR acts on contradictory input without detecting it: at C44, 32-42 vehicles queue on EW while the swapped, 10 s-delayed view shows them on NS; VECTOR extends NS green until max green ends it, then serves NS again
- What it does not establish
- the corruption is the audit's model; the ExtremisCanonical adapter drops the stale flag, so VECTOR cannot see it; one junction, one window
Original 1500×1000 PNGsha256 1b92b662602c82e3… · verified
Results and performance comparisons
Recorded results rendered by the audit dashboard: the primary comparison, the secondary one, and forecast accuracy.
Scenario R0, junction C21: shadow forecast of total queue at t+8 s against what happened
dashboard rendering of recorded results · scenario R0 · arm vector · seed 95000
- What it shows
- the shadow forecasters run in the live loop and are scored against the realised queue
- What it does not establish
- shadow only: no forecast reaches a signal decision; held-out MAE is worse than persistence in 15 of 16 scenarios
Original 1500×1000 PNGsha256 ecf7915ba5998169… · verified
Scenario H, junction C21: shadow forecast across the concept shift at 900 s
dashboard rendering of recorded results · scenario H · arm vector · seed 95000
- What it shows
- prediction error rises after the demand shift; nothing adapts online
- What it does not establish
- one junction and one seed are shown; the aggregate is in prediction.json
Original 1500×1000 PNGsha256 0e39288d3d853fea… · verified
Primary endpoint on the held-out seeds: VECTOR minus SUMO's native actuated control, per scenario, paired 95% t-intervals; the coloured label is the unadjusted interval, the Holm column is the family-wise test (only B rejects)
dashboard rendering of recorded results
- What it shows
- VECTOR does not beat the native actuated controller on mean time loss; it is significantly worse in B after Holm correction
- What it does not establish
- 10 paired seeds per scenario; one synthetic network; the native controller uses SUMO's own detectors
Original 1500×1000 PNGsha256 0aba1b3daa80d6a6… · verified
Maximum red wait: VECTOR minus native, per scenario
dashboard rendering of recorded results
- What it shows
- VECTOR's starvation guard (90 s) lets some approaches wait about 50 s longer than under native control, in every scenario
- What it does not establish
- a worst-case statistic; it says nothing about how many vehicles waited that long
Original 1500×1000 PNGsha256 fb1210785ca68170… · verified
Primary endpoint: VECTOR minus the simple vehicle-actuated rule controller
dashboard rendering of recorded results
- What it shows
- against a simple actuated rule VECTOR is better in several scenarios unadjusted, with no Holm rejection
- What it does not establish
- secondary family; the vehicle-actuated baseline is a simple gap-out rule on the same harness
Original 1500×1000 PNGsha256 16b4a1db6448c135… · verified
Runtime, safety and reproducibility
Module failure injected and caught, with the executed signal sequence unchanged.
Scenario M: forecasters fail at 900 s, the whole advisory orchestrator at 1500 s; control continues unchanged
dashboard rendering of recorded results · scenario M · arm vector · seed 95000
- What it shows
- advisory-module failure is caught and counted, and the executed signal sequence equals VECTOR without the shadow; but after the forecasters fail the stack still reports 'degraded FULL; fallback false' with 0 forecasts, so it does not detect its own degradation
- What it does not establish
- shows isolation, not graceful degradation: the failed modules never influenced control in the first place
Original 1500×1000 PNGsha256 b1da9eafe12575bc… · verified