Sim Racing's Code of Uncertainty
March 27th, 2010 by DavidP
A cop pulls over Heisenberg, and asks him “Do you know how fast you were going?” and he answered “No, but I know where I am.” It’s a geeky scientist joke about the Heisenberg Uncertainty Principle which states the more precisely you know the location of something, the less you know about its velocity, and vice versa.
I often think about that when I am fighting for track position, because there is always an uncertainty principle of sorts at issue for online sim racing. Since all iRacing events are online over the internet, there is always a certain amount of uncertainty about where everyone on the track actually is at a given time. The reason is simply that although your computer knows your virtual location and trajectory well enough, it takes a quantity of time for that data to be transferred to the host server, which is collecting data from all the other racers. As that transfer is not instantaneous, the amount of time will result in a growing amount of error which is proportionate to the amount of network lag time (ping time).
Additionally, the updated data for each driver’s location and velocity vector needs to be transferred to all the other drivers, which again adds to the time and thus error.
This necessitates a prediction made by your system to estimate where the drivers are given what was known about their position and velocity before the data started its long journey. It makes an educated guess based on their data along with some corrections which take into account the layout of the track.
So for instance if you have a 200 ms ping time and you are racing against someone with a 300 ms ping time, that means as you tailgate him down a straight at 125 mph, the computer only knows that he is going 125 mph about 75 feet behind you, half a second ago. The situation is much easier with lower ping times, so in the same situation with both drivers at 50 ms ping times, the car would probably be just behind you a tenth of a second ago at the instant where he is supposed to be right in front of you.
Clearly, the computer has a lot of data to sort out, both on the server side and on your local machine to keep track of where everyone is and where they ought to be given that aged information. Predictions are never perfect, and can never anticipate driver behavior, such as early braking, changing lines, etc. so this situation leads to a false sense of certainty. We don’t see a cloud of probability of the other cars on the track. We only see a precise image of the best guess of where he could be. In actual fact they could be in a much different location, particularly if they do change trajectory suddenly.
This is what leads to what is commonly referred to as “phantom 4x.” One of the drivers has contact with the second driver’s car, which unfortunately has been predicted to be in a place that is not where the second driver really is. But the second driver never experiences any contact, because on their computer the predicted position of the first driver’s car is clear of any contact. Because the contact occurred for one of the drivers, the server awards the contact points to both drivers, even if one of them was not actually observed to be involved in a physical incident.
My best advice is to look at the entry list at the start of the event and take careful note to the drivers with the largest ping times and/or lowest signal quality (lots of data packets lost), since these drivers will naturally have a higher degree of error in their position estimation and thus you must view their location on the track as an estimate and thus give them a little extra room. For people who live farthest from the servers, this will be a common experience since the age of the data will naturally make most other drivers a danger in close quarters.
Even with a perfect prediction code, the limitations of the speed of light, network hardware and computers will always mean error will be present in representing the position of other cars on the track. By driving in a predictable way, and allowing a little extra room around the other cars you can save a lot of frustration and provide for less drop in your safety rating.
Anyone who has watched a TV interview where a long lag time is involved can appreciate the challenge facing your computer to keep track of where everyone is supposed to be on the track.
And if you see Werner Heisenberg on the track, give him a lot of room because he’s been dead for 34 years. That’s a long ping time, even for a DE-AT-CH guy.
Screen shots 1 & 2 courtesy of Jameson Spies; #3 by Ray Bryden