Why does water 'splosh', glass 'tinkle' and waves 'crash'?

Those are the million dollar questions that researchers at Cornell's Department of Computer Science have been tasked to find answers to.

Actually, they are $1.2 million (£750,000) questions - the amount of the grant the scientists have been awarded by America's National Science Foundation (NSF) in order to improve the sound effects in future games and CGI movies.

Wishy washy explanation

"We have no way to efficiently compute the sounds of water splashing, paper crumpling, hands clapping, wind in trees or a wine glass dropped onto the floor," the researchers said. Recordings can be cued in, but they can be repetitive and are not always well matched to what's happening.

The new simulations will be based on calculating how objects would vibrate if they actually existed, and how those vibrations would produce acoustic waves in the air. The sounds of water, for example, are created by tiny air bubbles that form as water pours and splashes.

Along with fluid sounds, the research also will simulate sounds made by objects in contact, like a bin of Lego; the noisy vibrations of thin shells, like trash cans or cymbals; and the sounds of brittle fracture, like breaking glass.

Millions of tiny computer bubbles

The simulation developed by the Cornell researchers starts with the geometry of the scene, figures out where bubbles would be and how they're moving, computes the expected vibrations and finally the sounds they would produce. The simulation is done on a highly parallel computer, with each processor computing the effects of multiple bubbles.

The method requires hours of offline computing time, and works best on compact sound sources, but researchers say that further development should enable real-time, interactive virtual environments and deal with larger sound sources such as swimming pools or perhaps even Niagara Falls.

If you haven't got a tap at home, you can check out the sounds of virtual splashing water at the Cornell website, www.cs.cornell.edu/projects/HarmonicFluids.