The sands of time - simulated
Saturday, 05 February 2011

A new simulation method makes sand flow realistically for a small fraction of the computational cost of more direct methods. See if you agree after seeing the video.

There are two ways to create graphics that look like physical processes - you can use the physics to create an accurate simulation or you can just invent some heuristic rules that happen to produce graphics that look like the process. For example, if you want to create 3D fire you can take the basic laws of fluid flow and throw in some heat equations and some chemistry and before you know where you are you have a set of equations that are beyond the capabilities of even an array of GPUs, not to mention the time and effort you have to put into transforming the equations into something that you can solve numerically. And all you really wanted was something that looked like fire.

So it goes with the problem of animating 3D flows of granular materials - like sand in a timer or soil under an impact. The full dynamics have to take into account where every particle is and what effect each particle has on every other particle. This is a difficult problem, especially if you only want the result to look like sand. An approximation is clearly a good idea but the problem is how to create something that looks like sand.

The obvious way to do the job is to treat sand as if it was a fluid - but simply doing this results in sand that flows more like water than sand.

Now we have a more realistic simulation of flowing sand and other granular materials in the work of Rahul Narain, Abhinav Golas, and Ming C (University of North Carolina at Chapel Hill). What they do is model the sand as a flowing liquid but moving under external forces and internal stress. The key idea is to model the interaction between the grains, the contact and frictional forces, as acting on the fluid. Instead of working with individual particles they simulate the behaviour of clumps of particles moving together as a block of simulated fluid.

Putting the whole thing more simply - they simulate the sand as a liquid but a liquid that behaves a lot more like sand than previous attempts. The proof of the sand simulation is in watching the video. So see if you agree that the sand really does look like sand.