Demo video · 2017
Traffic time travel A traffic simulation that you can rewind, adjust, and play forward again to see how things could have turned out differently.
Recorded only: the original system is not available to try.
0:00 What you're looking at The simulation runs at 10x real time, with a row of thumbnails on the left showing up to four minutes of simulation history. The rightmost thumbnail is the current state; each one to its left is 50 simulated seconds earlier, which is 5 elapsed seconds at the default timewarp. 0:18 Change something, and watch the impact move through history We force a random car to break down, and a tailback builds up at once. A tick marking the breakdown moves left along the timeline, and as it passes the centre of each thumbnail the blockage appears in that thumbnail's rendering. At 0:35 we clear the breakdown; a second moving tick joins the timeline, marking the clearance. 0:41 Pause the simulation to start history replay Clicking the thumbnail row pauses the simulation and lets us browse the history recorded so far. As a thumbnail marches to the right it plays out the state from each moment it passes through. You can therefore let your eyes follow a single thumbnail to watch the entire history, or fix your gaze in one place and watch that part of the history play repeatedly as new thumbnails come past. At 0:54 we click and drag, manually controlling the playback state. 1:01 A phantom jam Restarting the simulation, we see heavy traffic left over from the blockage. On the main display, and in the red colouring of the rightmost thumbnail, is a "phantom traffic jam" that persists even though the breakdown was cleared nearly three simulated minutes ago. Why is it persisting? 1:19 Rewind into the past, then change the parameters We drag the edit slider and drop it before the breakdown, which turns everything after that point into a replayable future (as indicated by the pink colouring, and the simulation clock showing that the final state is "173.5s post-edit"). If we now adjust the simulation parameters, the adjustments take effect at the selected edit point - and we get to see how the future would have played out with the new values. For each value of "maximum acceleration" (how quickly drivers are willing to accelerate when the road ahead is clear), the simulation shows the state it would have reached 173 simulated seconds later. At lower accelerations the phantom jam persists; at higher values it disappears. 1:44 Five futures at once Requesting a spread of values on the acceleration parameter brings up four extra scenarios, in the same vertical order as the settings on the slider. Now we can see, side by side, the persistent jam at the lowest acceleration (0.3 m/s/s) and the relatively free-moving outcomes at 0.8 m/s/s and above. The average-speed needle is a useful tell-tale - showing 20 km/h in the lowest scenario because of all the cars that have slowed or stopped, but near its target of 40 km/h on the upper scenarios. 2:13 Run them in parallel Restarting the simulation runs all five scenarios at once. The lower scenarios are seen to keep their phantom jams, with the jams themselves continuing to move backwards relative to the traffic flow. The underlying traffic simulation was written by Martin Treiber at TU Dresden, and adapted by us to run within the Lively Web JavaScript environment. We added a time-based data store into which the simulation’s state at each tick is copied, enabling exact back-in-time examination. We also developed the visualisations and controls that demonstrate how history manipulation and multi-scenario exploration could be used for this domain.
The marching thumbnails were designed by Robert Ochshorn .
← More things I've built