Animating Explosions

CS8113 Adv Animation Project



Background

Most research on animating explosions has been on the fireball and smoke. Not much has been done on the actual blast wave. Two GI'99 papers address the blast wave, although we feel that they fall short, and we can more accurately model the blast waves through simulating the fluid flow of compressible gases.

An explosion is caused by a very fast reaction, happening in microseconds. The detonation wave spreads very quickly through the explosive. Gas thousands of degrees and thousands of atmospheres of pressure is generated. This is the blast wave, which causes most of the damage aside from primary fragments, i.e. explosive casings and shrapnel. The blast wave expands rapidly. As it expands, the temperatures cool, and the temperatures drop. They will actually swing below equilibrium and swing back up, generating secondary waves. But these are relatively inconsequential and can be ignored.

The GI papers both use blast curves to model the blast wave. When a blast wave hits an object, the object fractures, in one paper as pure voxels and in other paper as a fractal. The GI papers do not deal properly with occlusion, reflection, and refraction of the wavefronts.

Often people use known blast curves to model blast waves, as the numerical solution of the fluid dynamics is difficult. But in Foster's work, he is able to use a simplification of the Navier-Stokes equations to do computational fluid dynamics (CFD) on turbulent gases. However, we have to use a generalization of them to allow for the compressibility of gas.

When a blast wave hits an object, we wish to simulate realistically what happens: there are reflections, diffractions, and mach reflections. We wish to model these new wavefronts, in addition to calculating fractures based on wavefronts. James's fracture code will be a great help here.

Plan

Read current graphics and engineering literature.

Model the fluid dynamics through voxels. In order to keep computation low, we will keep a list of high-pressure [active] voxels. Pressure goes from high to low, so we just see how the high-pressure voxels spread to low-pressure voxels. When the pressure in voxels drop below a certain threshold, we stop considering them active and remove them from the list.

Compare with real-world blast curves to verify the math.

Apply forces to objects based on the blast waves.

Link in James's fracturing code.


References

Animating Exploding Objects
A Visual Model for Blast Waves and Fracture
Realistic Animation of Liquids
Modeling the Motion of a Hot, Turbulent Gas [Nick Foster, SIGGRAPH 97]