All last week I drove my motorcycle to work. Practically every day I thought of creating highway traffic simulations and how traffic seems to simulation snakes, specifically that Snake game from long ago (eat the apples, the snake grows, try not to run into your own tail). The thing that makes is so similar is that traffic tends to get on the highways as snakes, released from side roads by traffic lights. As multiple snakes encounter each other at future on-ramps there is only so much room, so eventually the part where the snakes are merging has to slow down or risk running into each other. This slowing down causes the snake to crunch up, which causes it to take a while to get back up to full speed, and in the mean time any snakes behind it have to also slow down and scrunch up, essentially merging with the one ahead of them.
One hypothesis I have for how to handle these scenarios is to encourage people to see ahead for slow-downs and to slow down to an average speed of the time it will take the person in front to start going and for them to get up to them. This avoids the complete stop and start delay that humans tend to have, as not all cars in a line go at the exact same time (nor should they), so the more packed together the longer it takes them to get going again. The hypothesis is that if we could get enough people who do that sprinkled throughout the highway traffic it would reduce congestion, increase the average speed, and potentially prevent complete stops on the highways.
The main hinderence to creating a model of this isn't graphics (I have HTML5's Canvas for that now, sweet) but how to model, in data and car position, a highway layout with on-ramps, multiple lanes, off-ramps, curves, and so-forth. Once I can figure out that model I can get on with the car intelligence, accel speeds, safe distances, driving styles, etc.