A General Animation Framework for Gaseous Phenomena

Following are some animations created using my new animation system that I wrote here during the rainy and dark fall of Finland.

Creating an Animation

These three animations show a typical cycle in producing an animation using my system.

First the basic geometry and the position and shapes of the sources and the fields are specified in wireframe mode. At this stage the effect of the sources and the fields on the motion of the gas can be viewed in real-time. The motion of the gas is displayed as a set of point particles.

Next, by assigning a "blob" of mass around each particle, both the appearance and the extent of the gas can be modelled. Also the scene geometry of the scene is solid rendered (including fog). All this can be achieved in near real-time on an Iris Indigo.

Finally, when the animator is content with the general look of the animation, a grid solver is invoked to compute the motion of the gas. The gas at each frame is resolved on a grid and volume rendered using an efficient ray-grid traversal algorithm.

Here is another rendering of the same scene but with different parameters for the turbulences which drive the motion of the gas.


I have used my system to create several animations of evolving clouds. The intensity of the source is varied by a time-varying texture map. This essentially emulates the complicated processes which create cloud densities.


Animation of a more tenuous medium such as steam.

Flow Past an Object

Very crude attempt really to model the flow past a sphere, by placing a repulsive field around it. Notice, however, how the smoke breaks up and the shadowing of the sphere on the smoke.


Well not really. I multiplied the intensity of the source by a short impulsive texture. So matter is created and then slowly fades out.

Baby Twister

You have seen the fancy one done by ILM, well here is a more modest one created single-handedly on a much tighter budget.

Coloured Smoke

Coloured because three lights of different colours are shining on it. The nice thing of using a grid-based volume tracer is that many subtle effects can be rendered very easily. This includes self-shadowing, cast shadows and sources with different colours. My version of the ray-tracer does not handle multiple-scattering and non-constant phase functions yet.

Old Example

Why throw away old mpegs ? Here is one my first animations created with the system. Do you notice the bugs in my ray-tracer ?

This research is described in ERCIM Research Report R047

Back to my research page