Jev Ring Road
Emergence from a decision model · clef-flash, a 9B calibrated decision model, run locally

Jev Ring Road

Every driver on this road is the same decision model. It was asked one question, once, for each of 816 situations: “What do you do with the gas and brake in the next second?” The answers are probability vectors. The track below samples from them, with no further model calls. The jams are its hesitation.

120 car lengths around · clockwisetail lights = braking or stopped
β=1 samples the model’s calibrated probabilities. β→4 always takes its top answer. β<1 flattens it.
Who is driving
average7 cautious1 aggressive1 distracted1
Restart applies density and mix. β applies immediately.
flow
–
mean speed / 5
–
cars stopped
–
safety overrides
–
↓ time, one row per second · position around the ring →bright = at the limit · dark = stopped · jams drift backward against traffic

What the model decided

Each cell is one of the 816 questions. The number is the expected speed change the model’s answer implies (accelerate +1, hold 0, ease off −1, brake hard −2, weighted by its probabilities), for a driver at that speed with a car that many lengths ahead moving at the same speed. The simulator never clamps these answers except for physics: a car cannot drive into the one ahead.

−2 brake hard0 hold+1 accelerate

Hover a cell for the full probability vector. The complete table, including “car ahead slower / pulling away / none in sight”, is in the page source.

The fundamental diagram

Flow (cars passing a point per second) against density, measured offline on the same 300-cell ring: 600 seconds after 200 of warm-up, three seeds each, averaged. The dashed line is the classic Nagel–Schreckenberg hand rule with its usual random-brake probability 0.3, run on the same geometry as the reference.

averagecautiousaggressivedistractedNagel–Schreckenberg p=0.3

Mixing in aggressive drivers

The jam is the hesitation

The model answers with a distribution, not an action. Sharpen that distribution and the phantom jams disappear. Mixed crowd, density 0.20, same seeds:

In Nagel–Schreckenberg the jam needs a hand-set “brake at random with probability p”; set p to zero and the road flows perfectly. Here the same ingredient comes from the judge’s calibrated uncertainty about what a driver would do. Take its top answer every time (β=4) and the road flows perfectly too.

Findings

1 · PHANTOM JAMS

Jams appear with no cause on the road. From density 0.10 upward the space-time diagram shows the signature backward-drifting stripes. The micro-rule was never written to produce them; it was asked 816 driving questions.

2 · THE AVERAGE DRIVER BREAKS DOWN EARLY, AND SLOWLY

Nagel–Schreckenberg holds free flow (speed ≈ 4.7) to density 0.10, then drops sharply. The model’s “ordinary commuter” is already at speed 3.3 at density 0.08 and declines smoothly. The table shows why: following a car at the same speed, it accelerates with p ≈ 0.05–0.09 and eases off with p ≈ 0.06–0.10, so its speed erodes whenever any car is in sight and never climbs back to the limit. Capacity is 0.37 against the hand rule’s 0.46, and the peak sits at density 0.35 instead of 0.12.

3 · AGGRESSIVE DRIVERS RAISE THROUGHPUT, AND THE PHYSICS DOES THEIR DRIVING

All-aggressive capacity is 0.61, above the hand rule, with free flow to density 0.12. But 40% of their decisions at density 0.3 are overridden by the safety clamp (vs 12% for average): the model wants to accelerate into a 1–2 length gap behind a braking car with p = 0.52. Their flow comes from the collision rule, not their judgment. On a road where the clamp is a human reaction time, this is the crash rate.

4 · MY HYPOTHESIS WAS WRONG

I expected a 30% aggressive mix to cause more jams through overbraking. Instead it raised capacity from 0.37 to 0.40 and cut the stopped fraction at density 0.2 from 12% to 9%. In this model aggressive drivers close gaps that the commuters leave open.

5 · “DISTRACTED” MEANS SLOW, NOT LATE

The model treats a phone-glancing driver as a cautious one: open-road acceleration 0.65 (same as cautious), hard braking at zero gap 0.69. Real distraction is delayed reaction, which a one-second, memoryless question cannot express. The state has no history, so the model cannot be late. That is a limit of the question frame, not of the model.

Method

Rule extraction. 816 states = 4 personas × 6 speeds × (3 lead-car behaviours × 11 gaps + open road). Each state is a short JSON description in words and small integers (“your speed: 3 of 5”, “gap: 2 car lengths”, “the car ahead is going slower than you, brake lights on”). One choice question over four actions. clef-flash (9.1B), a calibrated decision model served on a local GPU: all 816 answers took 52 seconds at 16 concurrent requests. Probabilities are cached; the simulation never calls the model.

Physics. A ring of 300 cells, speed limit 5 cells per second, synchronous update. Each second every car samples an action from its state’s distribution (raised to β and renormalised), applies it, is clamped to the gap ahead (counted as an override), and moves. A car 15+ lengths ahead is “out of sight”; 10–14 is reported as “10 or more”. Offline runs: 200 s warm-up, 600 s measured, 3 seeds, 15 densities, 6 crowds plus the reference rule. The animated track above uses the same code ported to JavaScript on a 120-cell ring so each car length is 5 pixels.

Limits. Call-to-call jitter of the model is about ±0.03, below anything the sim is sensitive to. The “lead car” signal is coarse (slower / same / faster). Single lane, no passing, no crashes. The reference rule’s p=0.3 is a conventional choice, not a fit to human data.