From explosions in a desert, to the trickle of an egg timer, animated scenes containing sand are notoriously hard to model. But now Rahul Narain and his team from the University of North Carolina at Chapel Hill have developed a new technique that should make computer animations look more realistic.
Since sand is made up of a collection of tiny grains, its appearance can vary greatly. "It can look like a solid pile you can stand on, to a flowing avalanche, or even a cloud of dust," says Narain. Much work has gone into modeling solids and fluids, but materials such as sand have received less attention, perhaps because of these unique properties. So far, the only way to simulate sand has been to model every grain as an individual object, which can be extremely costly in terms of computation time and memory.
Narain and his colleagues are taking a more holistic approach. They realised that although individual sand grains do move independently, in practice the grains tend to flow together more often than not. So it made sense to make the most of existing fluid-modeling techniques and model sand as one big continuous material.
"This 'continuum based approach' makes it possible to simulate sand in a much faster and more memory-efficient way without sacrificing much in the way of realistic behaviour," he says.
Their new model also includes algorithms to make sure it's simulated realistically in instances when sand behaves differently from liquids. They do this by taking into account the forces on the particles, such as friction. When tested with animated sand clouds forming in an explosion (see video above) the results proved to be true-to-life.
As well as being used in animated films and games, when the technique is refined further it could be used to model real life scenarios such as avalanches and explosions. The research was presented at SIGGRAPH Asia 2010, in Seoul, South Korea, last month.