Physics Changes in Alpha 13
A riddle: This feature is the biggest feature of Alpha 13, but it doesn’t draw a whole lot of attention to itself. In fact, when it’s working perfectly, you won’t even know it’s there. Without it, though, you’d be shaking your fist at the screen as you watch the whole solar system fall apart. What is it?
The physics rewrite of course! (Maybe the title of this post gave that away.)
While the collision overhaul part of the physics rewrite makes for some impressive visuals, perhaps more important is the addition of a new integration mode and the changes made to the way Universe Sandbox ² handles timestepping.
In short, orbits in Alpha 13 are much more stable, and capable of maintaining this stability even at very high timesteps.
An easy way of demonstrating this difference is to compare the behavior between Alpha 13.1 and Alpha 12 when adding Earth in orbit around Sirius B, a white dwarf that is similar in size to Earth.
Open a new simulation, add Sirius B, then add Earth close by. In Alpha 12, unless you drastically lower the timestep from the default of 1.3 hours per second, Earth quickly gets flung out of orbit.
You can see in the last screenshot above that Earth has shot off the screen. Somewhere, it is speeding off into the depths of space. This is certainly not what you expect when trying to put Earth into a simple orbit. But because of the high timestep and the relatively small orbital period, the simulation cannot calculate Earth’s position accurately enough to keep it in orbit.
This was a common problem in the original Universe Sandbox. Many users expressed their frustration when they’d run the standard solar system simulation, turn up the timestep, and watch as Mercury slingshotted out of its orbit and past Pluto. No, this is not what physics says should happen, but rather a computational limitation. In our FAQ for the original Universe Sandbox, we explained it like this:
- As you turn up the time step you lower the accuracy of the simulation. If the accuracy is too low, bodies will get thrown out of the system.
- The numbers: Mercury takes about 88 days to make a single orbit around the sun. A time step of 22 days would only be calculating a new position for Mercury 4 times in that period. This isn’t enough accuracy to maintain a stable orbit. The Earth is further out and takes 365 days to orbit the sun. This same time step of 22 days results in about 16 position calculations for the Earth which is enough to maintain an orbit.
Fortunately, Universe Sandbox ²’s numerical physics developer, Thomas, has spent a lot of time finding and implementing a solution to this problem.
Now, in Alpha 13.1, you can put Earth into orbit around Sirius B without worrying what the timestep is:
The new Global Adaptive integration mode will always take a safe step in order to maintain the accuracy as determined by the “tolerance” setting. Tolerance is the maximum amount of error that is allowed while taking a step when compared to perfect accuracy (which cannot run in realtime). This number will be much larger for simulations on the galaxy scale than simulations for dice and bowling balls, as the “acceptable” margin of error would be exponentially higher. You wouldn’t want your dice to take a million kilometer leap, but it’s probably okay for them to be off by a centimeter.
Tolerance can be manually adjusted in the settings, or you can let Universe Sandbox ² handle the adjustments. The tolerance is automatically set when loading a simulation to an amount that sufficiently maintains accuracy while also keeping the simulation running smoothly. It is also adjusted whenever a new body is added. We plan to add more automatic adjustments to respond to other simulation changes.
Finally, another large factor in determining stability is the actual numerical integrator that is used, with each having different strengths and weaknesses. For this, we can turn to a video that Thomas has created in order to explain some of the different integrators available in Universe Sandbox ².
https://www.youtube.com/watch?v=IJ2MhXUDZ6o
While the physics in Universe Sandbox ² is not perfect yet, we’ve made huge strides over the past year. Optimizations in terms of accuracy and performance are an ongoing process, and we look forward to continually improving the simulation.