Nagel–Schreckenberg model — jams crystallize from nothing
Each tick: accelerate (v ← min(v+1, vmax)); brake (v ← min(v, gap)); random slowdown with probability p (v ← max(v−1, 0)); move (x ← x+v). The stochastic deceleration is what breaks symmetry and lets backward-propagating shockwaves emerge.