flow & motion · phantom jam
Traffic Jam
Wave
Identical cars on a circular road. No accident, no bottleneck, no slow driver. They all want the same speed. Add a few more and a stop-and-go knot appears, then drifts backwards while the cars keep moving forwards. Sugiyama proved this on a real ring road in 2008.
source notes
Model level and refs
- Cars follow the Bando Optimal Velocity Model (Bando et al. 1995). Each car adjusts its speed toward V_opt(gap) at sensitivity rate a. The non-linearity of the OV function provides the instability.
- The phenomenon was experimentally confirmed by Sugiyama et al. 2008 on an actual circular track, with measured wave speed of about 20 km/h backwards.
- Single-lane ring topology. Real freeway jams involve lane changes, exits, merges, and weather, all of which can amplify or dampen waves.
- All drivers are identical (same a, same v_max, same safe gap). Real drivers vary, which both spreads the threshold and adds new instabilities.
- No braking lag, no acceleration limit beyond the OV curve, no reaction-time delay. Adding any of these would shift the threshold but not change the qualitative behaviour.
- Wave-drift readout is an estimate from tracking the slowest car over time. Not as precise as a Sugiyama-style camera-based measurement, but conveys the direction and rough speed.
deeper dive
The cars go this way. The jam goes that way.
Most people assume traffic jams need a cause. An accident. A lane closure. A police car on the shoulder. Take the cause away, and the jam should dissolve. But every commuter has been in a jam where they slow to a crawl, sit for a minute, then accelerate back to highway speed without ever passing anything. The jam was real. The cause wasn't.
In 2008 a Japanese research group built a circular track and put 22 identical cars on it with identical instructions: keep up with the car in front. No bottleneck, no signs, no instructions to vary speed. Within a few minutes, a stop-and-go wave appeared and started travelling backwards around the loop at about 20 km per hour. The wave outlived the cars in it. Cars entered the jam, slowed, exited, and accelerated back. The jam stayed.
How the rule works
Each car looks at the gap to the car in front and picks an optimal speed for that gap. Big gap, drive at the max. Small gap, slow down. Sensitivity (the a slider) is how quickly the driver adjusts to the optimal speed. High sensitivity is a sharp driver who reacts fast. Low sensitivity is a relaxed one who lets the speed drift.
At low density there are big gaps everywhere. Every car drives at the max. Smooth. At high density the gaps are small and the optimal speed depends sensitively on tiny variations. A driver who reacts a fraction late slows just enough to make the driver behind react late too, who slows enough to make the next one react late, and so on. The reaction propagates backwards faster than the cars travel forwards. A wave.
Why this model is simpler than reality
The simulation is a single lane of identical cars on a circle. Real freeways have multiple lanes, varied driver behaviour, exits and merges, weather, and all kinds of bottlenecks. Each of those can either trigger phantom jams more easily or dissolve them. Source notes above carry the full list. The model isn't predictive of any specific freeway. It's a clean lab demonstration of one specific mechanism.
Where the same pattern shows up elsewhere
The "everyone reacting to local conditions makes a system-wide wave" pattern appears in a lot of places. Stock-market flash crashes: traders react to each other's reactions until the market dives without news. Crowd surges at concerts and airports: a person stumbles, the people behind compensate, the wave propagates back. Power-grid load swings under high stress, where small frequency shifts cascade through coupled generators. All the same family. Coupled local feedback loops crossing a threshold into a global oscillation.
Things to try
Open in Knife Edge and watch for ten seconds. Notice the brief flickers. The system is right at the boundary. Click Phantom Jam and within a few seconds a magenta knot forms and starts drifting backwards. Watch a single car traverse the jam: it slows, sits, then re-accelerates and pulls away. The jam doesn't move with the car. Drag the sensitivity slider down to 0.8 and the wave gets sharper. Drop the car count back to 18 and the jam dissolves visibly within seconds. Browse the full library for other systems where individual decisions add up to collective behaviour the individuals can't see. The sibling sim is pedestrian bottleneck flow, where the jam needs a doorway. Here the jam needs nothing.