Animating smoke with dynamic balance

Similar documents
Simulation of Swirling Bubbly Water using Bubble Particles

Smoke Simulation using Smoothed Particle Hydrodynamics (SPH) Shruti Jain MSc Computer Animation and Visual Eects Bournemouth University

CGT 581 G Fluids. Overview. Some terms. Some terms

Procedural Synthesis using Vortex Particle Method for Fluid Simulation

Controlling fluid animation with geometric potential

Adarsh Krishnamurthy (cs184-bb) Bela Stepanova (cs184-bs)

Navier-Stokes & Flow Simulation

An Efficient Adaptive Vortex Particle Method for Real-Time Smoke Simulation

Animation of Fluids. Animating Fluid is Hard

Computer animation for fluid simulation of a high viscous fluid melting

Navier-Stokes & Flow Simulation

Volcanic Smoke Animation using CML

Fluid Simulation. Dhruv Kore, Giancarlo Gonzalez, and Jenny Sum CS 488: Introduction to Computer Graphics Professor Angus Forbes

Navier-Stokes & Flow Simulation

Overview of Traditional Surface Tracking Methods

CS-184: Computer Graphics Lecture #21: Fluid Simulation II

Overview. Applications of DEC: Fluid Mechanics and Meshing. Fluid Models (I) Part I. Computational Fluids with DEC. Fluid Models (II) Fluid Models (I)

Physically Based Simulation and Animation of Gaseous Phenomena in a Periodic Domain

More Animation Techniques

Feedback Control of Fire Simulation based on Computational Fluid Dynamics

CS 231. Fluid simulation

Realtime Water Simulation on GPU. Nuttapong Chentanez NVIDIA Research

Fluid Simulation. [Thürey 10] [Pfaff 10] [Chentanez 11]

Interactive Fluid Simulation using Augmented Reality Interface

Realistic Animation of Fluids

Advections with Significantly Reduced Dissipation and Diffusion

Visual Simulation of Smoke

Realistic Smoke Simulation Using A Frustum Aligned Grid

Modeling of Volcanic Clouds using CML *

Interactive Simulation of Fire

Real-time haptic display of fluids

Restoring the Missing Vorticity in Advection-Projection Fluid Solvers

Mass-Spring Systems. Last Time?

Interactive Fluid Simulation Using Augmented Reality Interface

Level set methods Formulation of Interface Propagation Boundary Value PDE Initial Value PDE Motion in an externally generated velocity field

2.7 Cloth Animation. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter 2 123

An Adaptive Sampling Approach to Incompressible Particle-Based Fluid

An Improved Study of Real-Time Fluid Simulation on GPU

Interaction of Fluid Simulation Based on PhysX Physics Engine. Huibai Wang, Jianfei Wan, Fengquan Zhang

Simulating Bubbles Michael Running Wolf 4/1/05. Introduction

REVIEWS ON PHYSICALLY BASED CONTROLLABLE FLUID ANIMATION

Wavelet Turbulence for Fluid Simulation

Surface Tension Approximation in Semi-Lagrangian Level Set Based Fluid Simulations for Computer Graphics

CNM 190, pt 2 Advanced Digital Animation Lec 03 : Art Direction on Madagascar / Effects 1

Fluids in Games. Jim Van Verth Insomniac Games

Robust Simulation of Sparsely Sampled Thin Features in SPH-Based Free Surface Flows

MESHLESS SOLUTION OF INCOMPRESSIBLE FLOW OVER BACKWARD-FACING STEP

Adaptive Particles for Incompressible Fluid Simulation (Technical Report tamu-cs-tr )

Texture Advection Based Simulation of Dynamic Cloud Scene

CS205b/CME306. Lecture 9

Realistic and Controllable Fire Simulation

Extended Galilean Invariance for Adaptive Fluid Simulation

Grid-less Controllable Fire

Continued Investigation of Small-Scale Air-Sea Coupled Dynamics Using CBLAST Data

Real time simulation of a tornado

Simulating Smoke with an Octree Data Structure and Ray Marching

Using the Eulerian Multiphase Model for Granular Flow

CUDA. Fluid simulation Lattice Boltzmann Models Cellular Automata

FLUID SIMULATION. Kristofer Schlachter

Automated Sampling and Control of Gaseous Simulations

Simulation in Computer Graphics. Deformable Objects. Matthias Teschner. Computer Science Department University of Freiburg

Real-Time Volumetric Smoke using D3D10. Sarah Tariq and Ignacio Llamas NVIDIA Developer Technology

A High Quality, Eulerian 3D Fluid Solver in C++ A Senior Project. presented to. the Faculty of the Computer Science Department of

Supplemental Material Deep Fluids: A Generative Network for Parameterized Fluid Simulations

SPC 307 Aerodynamics. Lecture 1. February 10, 2018

Realistic Animation of Fluids

Computers & Graphics

Water. Notes. Free surface. Boundary conditions. This week: extend our 3D flow solver to full 3D water We need to add two things:

A Semi-Lagrangian CIP Fluid Solver without Dimensional Splitting

Three Dimensional Numerical Simulation of Turbulent Flow Over Spillways

Simulating Gaseous Fluids with Low and High Speeds

Abstract. Introduction. Kevin Todisco

An Unconditionally Stable MacCormack Method

Announcements. Ray tracer is due in five days you should have started by now or you re going to have a bad week. Missing file posted on the web page

ALE Seamless Immersed Boundary Method with Overset Grid System for Multiple Moving Objects

A Particle Cellular Automata Model for Fluid Simulations

The Simulation of Liquids

Chapter 2 Water and Bubbles

SIMULATION OF FLOW FIELD AROUND AND INSIDE SCOUR PROTECTION WITH PHYSICAL AND REALISTIC PARTICLE CONFIGURATIONS

NVIDIA. Interacting with Particle Simulation in Maya using CUDA & Maximus. Wil Braithwaite NVIDIA Applied Engineering Digital Film

To appear in the ACM SIGGRAPH conference proceedings. Jeong-Mo Hong Korea University

FLUID SIMULATION BY PARTICLE LEVEL SET METHOD WITH AN EFFICIENT DYNAMIC ARRAY IMPLEMENTATION ON GPU

PHYSICALLY BASED ANIMATION

Preliminary Spray Cooling Simulations Using a Full-Cone Water Spray

Lagrangian methods and Smoothed Particle Hydrodynamics (SPH) Computation in Astrophysics Seminar (Spring 2006) L. J. Dursi

Calculate a solution using the pressure-based coupled solver.

REALTIME PARTICLE SYSTEM SIMULATION AND RENDERING IN EMBEDDED SYSTEMS

Chapter 3: Computer Animation Reminder: Descriptive animation. Procedural animation : Examples. Towards methods that generate motion?

A 3D VOF model in cylindrical coordinates

SIMULATION OF THE MIXING OF INK AND WATER IN HOUDINI

BACK AND FORTH ERROR COMPENSATION AND CORRECTION METHODS FOR REMOVING ERRORS INDUCED BY UNEVEN GRADIENTS OF THE LEVEL SET FUNCTION

ENERGY-224 Reservoir Simulation Project Report. Ala Alzayer

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

FLUENT Secondary flow in a teacup Author: John M. Cimbala, Penn State University Latest revision: 26 January 2016

Simulation of Flow Development in a Pipe

Possibility of Implicit LES for Two-Dimensional Incompressible Lid-Driven Cavity Flow Based on COMSOL Multiphysics

Investigating The Stability of The Balance-force Continuum Surface Force Model of Surface Tension In Interfacial Flow

Investigation of cross flow over a circular cylinder at low Re using the Immersed Boundary Method (IBM)

2.11 Particle Systems

CFD Analysis of a Novel Hull Design for an Offshore Wind Farm Service Vessel

Transcription:

COMPUTER ANIMATION AND VIRTUAL WORLDS Comp. Anim. Virtual Worlds 2005; 16: 405 414 Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/cav.87 Natural Phenomena and Special Effects Animating smoke with dynamic balance By Jin-Kyung Hong and Chang-Hun Kim* ************************************************************************************ We propose a numerical method for maintaining a dynamic rolling motion of animated gaseous phenomena, such as smoke, that avoids dissipation due to numerical error. We compensate for the errors induced by a semi-lagrangian scheme using an error estimate for each time interval. We develop a new advection term and perform vortex advection based on a vorticity confinement force. Example simulations show that this method is able to keep smoke features alive, even near the center of a vortex. Copyright # 2005 John Wiley & Sons, Ltd. KEY WORDS: computer animation; fluid animation; gaseous phenomena; advection; numerical dissipation; vorticity confinement Introduction The simulation of natural phenomena such as smoke, fire, and water is a challenging problem in computer graphics. Gaseous phenomena are popularly used in movies and video games for special effects. An ideal computer graphics model of smoke is easy to use and generates stable results. To achieve this, we need to develop a scheme which is easy to implement and in which the numerical error caused by discretization is as small as possible. Many researchers in the field of computer graphics have used physically based techniques to create a realistic gaseous motion that is self-perpetuating. We want to create a model that is close to realistic, but avoids dissipation, which is especially important when we want to represent a feature of smoke such as a vortex. In previous work toward this goal, an artificial external force was used to amplify the existing effect of the simulation results. Although this achieves a plausible appearance, it leaks accuracy. We have developed a new solution that fundamentally improves the accuracy of the simulation, without including much additional computation. *Correspondence to: C.-H. Kim, Computer Graphics Laboratory Korea University, 5-Ga, Anam-Dong, Seongbuk-Gu, Seoul, Korea. E-mail: chkim@korea.ac.kr Contract/grant sponsor: University IT Research Center Project; contract/grant number: R01-2005-000-10120-0. In computer graphics, fluids are simulated by updating a field of substance data, such as density, temperature, and velocity. Beyond some threshold conditions, a fluid simulation may produce unexpected results due to the occurrence of an unstable state. Our new method for animating smoke avoids this problem by using a dynamic balance to maintain the coherence of the field. To preserve the properties of the initial flow, it is important that the simulation is achieved by gradual changes to the vector fields representing quantities such as position and velocity. Our approach includes compensation for losses in the energy of the velocity field by an advection step. We arrange for the substance field to move along a velocity field, which can be thought of as a framework of movement. Compensating for errors in the velocity field contributes to the coherence of the flow and creates a stable simulation. We are aiming to produce Karman vortex motions, as shown in Figure 1, which are created by turbulent smoke moving over an obstacle. A separated vortex results from the difference in viscosity at the interface. Figure 1 shows the simulation of vortex street. 1 In simulating of this kind of smoke motion, it is important to maintain the momentum of the vortex. 2 Inspired by the work of Fedkiw et al. 3 we also focus on maintaining the vorticity, which is a feature of smoke that occurs within the velocity field. We represent a vortex as a substance field, and therefore the vorticity confinement force moves along the velocity field in the same way as density and temperature. In this way, we separate the vorticity field from the main velocity field and create a new advection term which conserves vorticity. Copyright # 2005 John Wiley & Sons, Ltd.

J.-K. HONG AND C.-H. KIM Figure 1. Karman vortex. In the new advection step, we estimate the error during each time interval, and compensate for it. This process reduces the numerical dissipation which necessarily results from the linear interpolation of a semi- Lagrangian scheme. The use of vortex advection allows us to generate a smoke model with a unique type of vortex, compared to previous smoke models, and implicitly maintains the momentum of the vortex, rather than requiring an external force to sustain it. The specific contributions of this work are: (1) improving the method for solving the differential equation for the advection step by using error compensation; and (2) allowing the smoke model to remain dynamic near the center of a vortex by the use of vortex advection. Our method is fully Eulerian and so it is simple and easy for implementation. In the remainder of this paper, we will first address related work in Related Work. We describe our scheme in Computing Errors in the Advection Term and Vortex Advection Based on Vorticity Confinement In Implementation, we describe the implementation of our method; then we present experimental results in Result and Discussion. A discussion and conclusion follow in Conclusion. Related Work In the field of computer graphics, there has been a lot of research on simulating natural phenomena such as smoke, water, and fire. Foster and Metaxas 4 were the first to use the Navier Stokes equation to simulate fluid flow. Recent results have received attention because they can automatically generate passive motion. 5 8 These physics-based techniques are derived from the computational fluid dynamics (CFD) literature, 9 and some of them have the advantage of providing higher precision by the use of lower-order polynomials. This is very helpful for simulating fluid flows which demonstrate complicated phenomena such as vortex and turbulence. 10 Fluid simulation can be achieved by computing an approximate solution to a partial differential equation (PDE) expressing a local function that represents the fluid flow. Physically based techniques allow the user to create the appearance of smoke automatically. 6,11,12 While these techniques are powerful, they have unavoidable errors associated with a numerical solution of a differential equation. For that reason, developing an adaptive method for reducing numerical errors is a significant problem. 13,14 We found a lot of work related to this problem in computer graphics. Fattal et al. 6 forced the fluid to form a user-defined shape, and they use a density error term to reverse the diffusion process so as to match a userdefined shape. Hong and Kim 12 maintained the density of smoke by keeping the total mass of particles constant during a simulation. These approaches are attractive, but they considered the density errors only. Some research has focused more closely on velocity. Fedkiw et al. 3 kept alive small-scale features of smoke by applying a vorticity confinement term to the inviscid Euler equation. This allows a vortex to persist but, despite the exclusion of viscosity, they could not counteract severe dissipation of the smoke over time. Other research has focused on maintaining a given property at its initial level. Dupont and Liu 15 used backward and forward forms of the Euler equation to determine the extent of the advection error. Their approach updates the level-set function over time to obtain the zero-set more accurately, and reduces the numerical error during topological changes. Our method is similar in that it estimates the amount of advection error and compensates for it during the simulation. We note that Kim et al. 16 independently introduced BFECC to computer graphics recently. Song et al. 17 used CIP method to prevent dissipation of small-scale features of multi-phase fluid. By the calculation of derivative values at the grid points, they allowed us to obtain the less dissipative fluid motion at each time step. But this technique is computationally expensive compared to ours. Whatever the underlying method, a major problem is reducing the dissipative error, which is the focus of this article. Because a vortex is one of the elements that makes smoke look realistic, we concentrate on handling the vortex effect. Recently, some research has focused on vortex effects as fluid features. 18 20 They used vortex particles based on the Lagrangian to alleviate Copyright # 2005 John Wiley & Sons, Ltd. 406 Comp. Anim. Virtual Worlds 2005; 16: 405 414

ANIMATING SMOKE dissipation within a method based on an Eulerian grid. On the other hand, we make good use of fully Eulerian method which is simple and easy to implement. To represent the effects of viscosity, we use the viscous Navier Stokes equation for simulating fluid motion. We do not attempt to achieve all the features of smoke, but our results show that we can preserve a smoke vortex from the effects of numerical dissipation. Computing Errors in the Advection Term We now present our method for error compensation using the Navier Stokes equation. The Equations of Flow We assume a viscous gas, and therefore use the Navier Stokes equation for simulating flow. We denote the velocity vector field as u ¼ðu; v; wþ, and then the Navier Stokes equation is: @u ¼ ðurþuþ rp @t þ r2 u þ f ru ¼ 0 ð1þ ð2þ where f accounts for external forces such as gravity and buoyancy, p is the pressure in the velocity field, and is the density of the gas. Equations (1) and (2) model the conservation of momentum and of mass, respectively. They can be found in any standard text. 21 To make it easier to understand how these equations are solved, we consider a standard fluid simulation process: M A P D A v F The term F applies forces to the velocity field; A v is the self-advection of the velocity vector field; D is a diffusion step; P projects the resulting field so that it is divergence-free; A advects the density along the velocity vector field; and M is a mass conservation step to counteract dissipation. In the simulation, step A v corresponds to the first term of right-hand side of Equation (1): A v ¼ ðu rþu ð3þ Error Compensation Scheme To solve Equation (3), which is non-linear, we use a semi-lagrangian scheme with error compensation that considers the time intervals before and after the advection step. Let us denote some position in a smoke simulation by x ¼ðx; yþ. To determine the velocity at time t þ 1, we use the velocity at time t. We describe the state of a simulation using the Euler method at time t as a function t ðxþ. We have defined as a function of both t and x, but this function depends not only on previous values but also on the subsequent state. To calculate the forward update step, we describe F, including the component t ðxþ, which corresponds to the Euler equation at time t. This is used to determine the state of the simulation at time t þ 1: ~ tþ1 ðxþ ¼Fð t ðxþþ ð4þ And we represent the backward advection step as B: ^ t ðxþ ¼Bð~ tþ1 ðxþþ ð5þ In an ideal situation, t ðxþ is equal to ^ t ðxþ, but in practice we cannot achieve this result because of numerical dissipation, as shown in Figure 2(a). We want to minimize the error associated with the difference between t ðxþ and ^ t ðxþ. This error eðxþ can be found from the approximate solution of the Euler equation; eðxþ ¼ t ðxþ ^ t ðxþ ð6þ We assume that this error occurs while moving back and forth in simulated time. We expect that the loss of energy in the forward advection step will be about 1 2 eðxþ. We use this observation to reduce the dissipation resulting from the numerical solution. We do this by injecting the missing energy from the velocity vector field before the advection step: new t ðxþ ¼ t ðxþþ 1 eðxþ ð7þ 2 Now we use this value to determine the velocity at time t þ 1. Figure 2(b) shows how this reduces the error after updating using new t ðxþ. This process can be applied to the density field in the same way. Our error compensation algorithm has the same accuracy as the second-order improved Euler scheme. This backward Copyright # 2005 John Wiley & Sons, Ltd. 407 Comp. Anim. Virtual Worlds 2005; 16: 405 414

J.-K. HONG AND C.-H. KIM Figure 2. Estimated errors before and after error compensation: (a) Before error compensation; (b) After error compensation compensation can be replaced by forward correction because they are duals of each other. See Dupont and Liu 15 for more details. Each image in Figure 3 shows the plane Z ¼ 30 at one moment in a 3D smoke simulation on a 200 200 60 grid. The scattered appearance of the smoke in Figure 3(a) results from numerical dissipation, rather than any change in momentum of the vortex resulting from the effect of viscosity. Figure 3(b) shows now the error compensation term reduces the dissipation of the fluid motion and allows characteristic smoke features to develop over time. Vortex Advection Based onvorticity Conf nement Using vortex advection based on vorticity confinement, we propose modified equations for developing a fluid simulation with a continuous vortex. Figure 3. Simulated smoke: (a) without error compensation, leading to an irregularly scattered appearance; (b) with error compensation, showing a better approximation of the effect of the force on the field. Copyright # 2005 John Wiley & Sons, Ltd. 408 Comp. Anim. Virtual Worlds 2005; 16: 405 414

ANIMATING SMOKE Vorticity Conf nement A vorticity confinement term generates forces that sustain a smoke feature such as a swirling motion. The motion of the smoke is represented by a velocity field u. Let us denote vorticity as follows:! ¼ru ð8þ where! is the vorticity, which is the axis around which a velocity field spins. It has x, y components which can be computed as the curl of velocity. We can now obtain a normalized vector field N: N ¼ rj!j jrj!jj ð9þ From Equations (8) and (9), we can determine the direction and magnitude of the force required to spin a vector field forward through one timestep. Then, we denote the vorticity confinement force as follows: Pseudo-code f FORCE ðuþ v v þ f v c VORTICITY ðvþ while (SIMULATING) f v new COMPENSATE ðvþ v c new COMPENSATE ðv c Þ v new ADVECT ðv; v new Þ v c new ADVECT ðv c ; v c new Þ v v c v new v c new g v FORCE ðv c Þ v DIFFUSE ðvþ v PROJECT ðvþ ADVECT ðv;þ PRESERVEMASSðÞ return (u) Table1. Pseudo-code for fluid simulation u c ¼ hðn!þ ð10þ This provides a force which enforces the rolling feature of smoke. The constant is used to control the confinement force. Vortex Advection Scheme Two important properties of dynamic balance are: (i) it has an advection step with error compensation; (ii) it uses vortex advection. We assume that a vortex advects along a velocity vector field. We describe the evolution of the smoke feature flow in terms of the vorticity field, rather than in terms of the velocity field. We separate the vorticity field from the main velocity field and create a new advection term which conserves vorticity. To describe this, we substitute u c for u in Equation (3). Then, the advection term associated with u c is Figure 4. Simulation without a vorticity confinement term. A c ¼ ðu c rþu c ð11þ We add A c to the velocity vector field A v for the advection step, and use this term to create a new advection term A new : A new ¼ A v þ A c ð12þ Figure 5. Simulation with a vorticity confinement term. Copyright # 2005 John Wiley & Sons, Ltd. 409 Comp. Anim. Virtual Worlds 2005; 16: 405 414

J.-K. HONG AND C.-H. KIM We apply the solution of this equation to the Navier Stokes equation in a new advection step, and the modified fluid simulation process becomes: M A P D A new F Figure 6. Simulation with both a vorticity confinement term and vortex advection. To achieve a dynamic balance of the velocity vector field, we advect the term u c of Equation (10) along the vector field with error compensation. Since the new simulation process is still based on the standard fluid flow equation, we can guarantee that this process is physically stable. Results from the modified simulation scheme are shown in Results and Discussion. Figure 7. Smoke motion without (a) and with (b) vortex advection, created using a velocity field with error compensation. The separated vortex of (a) shows rolling motion which becomes scattered; but in (b) the center of the vortex is retained. Copyright # 2005 John Wiley & Sons, Ltd. 410 Comp. Anim. Virtual Worlds 2005; 16: 405 414

ANIMATING SMOKE Implementation We will now describe the application of our method to a standard fluid simulation in which Equations (1) and (2) are implemented using a standard computer graphics approach. 11 Simulation Steps The simulation process is represented as pseudo-code in Table 1. We subdivide space into voxels and values such as velocity and density are defined in the center of each voxel. In the first stage, we add external forces such as gravity and buoyancy to the initial velocity field. Then, we determine the vorticity confinement force, v c, from the velocity field. This makes the velocity field representing the smoke to spin. Before we apply the advection step to this vector field, we need to create an additional vector field which includes error compensation. This involves copying the vector field and then advecting the substance field along the compensated field and using the result to update the vector field on which we are working. Next, we add a vorticity field to the updated velocity field, which gives us the vector field to be used in the advection step. This is followed by a diffusion process which models the effect of viscosity. To get the pressures across the velocity field, we perform a projection using a Poisson solver. To solve a linear system, we use a conjugate gradient method. 22 Next, we advect the density field along an updated velocity field, and finally process that density field to ensure that mass is conserved. At every time step, our simulator outputs a grid that contains the density,, which is then used for rendering the smoke. The 2D and 3D simulation results were rendered by OpenGL and Mental Ray for MAYA. Results and Discussion We implemented our method in 2D and in 3D using the Cþþ programming language. All the experiments were Figure 8. Smoke motion with vortex advection and error compensation. Copyright # 2005 John Wiley & Sons, Ltd. 411 Comp. Anim. Virtual Worlds 2005; 16: 405 414

J.-K. HONG AND C.-H. KIM performed on a Pentium IV CPU 3.2 GHz with 1 GB RAM running Windows, and a NVIDIA GeForce4 Ti 4400 graphics card with 128 MB of video RAM. To simulate the features of smoke, we set up a velocity field proportional to density and applied a buoyancy field and a density source as initial conditions. Figures 4, 5, and 6 show the difference made by the error compensation field under experimental conditions. We start with shot of the source to show the effect of the vortex clearly. Figure 4 shows results on a 200200 grid generated using the standard flow equation without a vorticity confinement term. This simulation took less than 1 minute. In Figure 4, small-scale smoke features in a viscous fluid dissipate over time. In Figure 5, the initial conditions are the same as those for Figure 4, but a vorticity confinement term is added to the velocity field before the advection step. Figure 5 shows a betterdefined swirling motion than Figure 4, but the vortex is lost quickly. Indeed, the spinning axis eventually disappears at a position near the center of the vortex, as can be seen in Figure 5(d). Figure 6 shows how we resolved this problem using vortex advection. Now the smoke keeps spinning and motion features become visible near the center of the smoke. Notice that the smoke in Figure 6(d) remains closer to the center of the vortex than in Figure 5(d). Even though Figure 5(c) shows more swirling than Figure 6(c), it does not persist. Figure 7 shows frames from another simulation on a 200 200 grid. Turbulent interaction between the smoke and solid objects creates a swirling motion. The top row of images was generated using an advection step with a vorticity confinement force and vortex advection disabled. This seems to be close to a natural behavior with scattering, but we are aiming for a rolling motion near the center of the vortex without scattering. The bottom row of images was generated using vortex advection based on a vorticity confinement force. This shows the properties of the smoke being maintained at a position near the center of the vortex. As the confinement force increases, the difference between the two cases become clear, as the top row shows heavy scattering. Figure 9. Rising smoke swirling over a sphere, while the vortex is preserved. Copyright # 2005 John Wiley & Sons, Ltd. 412 Comp. Anim. Virtual Worlds 2005; 16: 405 414

ANIMATING SMOKE Figures 8 and 9 show smoke motion with an advection step with error compensation. These frames demonstrate how smoke, simulated on a 200 200 60 grid using our method, retains its properties near the center of the vortex. Conclusion We have proposed a new method for persistent modeling of the unique features of smoke such as vortices. Using our method, we have generated animations of rolling of smoke without scattering, as shown in Figures 8 and 9. Many interesting simulations of real smoke effects 1 could be created using our technique. We expect that our method will be effective for fluid simulation, in which there is an interaction between an object and the fluid, and that it could also be used for liquids or multiphase fluids. 23,24 We intend to explore synergy with the particle method to preserve properties such as vorticity and density. We plan to provide an animator for advanced effects with a GUI. ACKNOWLEDGEMENTS This research was supported by the University IT Research Center Project, Engineering Foundation No. (R01-2005-000-10120-0) in the Ministry of Science and Technology, and the Ministry of Commerce, Industry and Energy. We thank Jeongmo Hong for advising us about the state of the art in fluid simulation and discussing this paper. We are deeply grateful to the reviewers for their precise comments, which have improved the quality of this paper and will benefit our future work. References 1. Van Dyke M. An Album of Fluid Motion. The Parabolic Press, 1982. 2. Saffman PG. Vortex Dynamics. Cambridge University Press, 1992. 3. Fedkiw R, Stam J, Wann Jensen H. Visual simulation of smoke. In Proceedings of ACM SIGGRAPH 2001, 2001; pp. 15 22. 4. Foster N, Metaxas D. Realistic animation of liquids. Graphical Models and Image Processing 1996; 58(5): 471 483. 5. Shi L, Yu Y. Controllable smoke animation with guiding objects. ACM Transactions on Graphics (in Proceedings of ACM SIGGRAPH 2005) 2005; 24(1): 140 164. 6. Fattal R, Lischinski D. Target-driven smoke animation. Proceedings of ACM SIGGRAPH 2004, Vol. 190, 2004; pp. 441 448. 7. Losasso F, Gibou F, Fedkiw R. Simulating water and smoke with an octree data structure. ACM Transactions on Graphics (in Proceedings of ACM SIGGRAPH 2004) 2004; 23: 457 462. 8. Feldman BE, O Brien JF, Arikan O. Animating suspended particle explosions. In Proceedings of ACM SIGGRAPH 2003, Vol. 22, 2003; pp. 708 715. 9. Abbott MB. Computational Fluid Dynamics. Wiley: New York, 1989. 10. Foster N, Metaxas D. Modeling the motion of hot, turbulent gas. In Proceedings of ACM SIGGRAPH 1997, 1997; pp. 181 188. 11. Stam J. Stable fluids. In Proceedings of ACM SIGGRAPH 1999, 1999; pp. 121 128. 12. Hong J-M, Kim C-H. Controlling fluid animation with geometric potential. Computer Animation and Virtual Worlds 2004; 15(3 4): 147 157. 13. Johnston H, Liu J-G. Accurate, stable, and efficient Navier-Stokes solvers based on explicit treatment of the pressure term. Journal of Computational Physics 2004; 188: 221 259. 14. Bruger A, Gustafsson B, Lotstedt P, Nilsson J. High-order accurate solution of the incompressible Navier-Stokes equations. Journal of Computational Physics 2002; 4: 197 204. 15. Dupont TF, Liu Y. Back and forth error compensation and correction methods for removing errors induced by uneven gradients of the level set function. Journal of Computational Physics 2003; 190(1): 311 324. 16. Kim B-M, Liu Y, Llamas I, Rossignac J. Flowfixer: Using BFECC for fluid simulation. In Eurographics Workshop on Natural Phenomena, 2005. 17. Song O-Y, Shin H-C, Ko H-S. Stable but non-dissipative water. ACM Transactions on Graphics 2005, 2005; 24(1): 81 97. 18. Selle A, Rasmussen N, Fedkiw R. A vortex particle method for smoke, water and explosions. ACM Transactions on Graphics (in Proceedings of ACM SIGGRAPH 2005) 2005; 24: 1 10. 19. Angelidis A, Neyret F. Simulation of smoke based on vortex filament primitives. In Eurographics/ACM SIGGRAPH Symposium on Computer Animation, 2005. 20. Park S-Il, Kim M-J. Vortex fluid for gaseous phenomena. In Euro-graphics/ACM SIGGRAPH Symposium on Computer Animation, 2005. 21. Griebel M, Dornseifer T, Neunhoffer T. Numerical Simulation in Fluid Dynamics: A Practical Introduction. Cambridge University Press, 1988. 22. Press WH, Teukolsky SA, Vetterling WT, Flannery BP. Numerical Recipes in C. Cambridge University Press, 1988. 23. Hong J-M, Kim C-H. Animation of bubbles in liquid. Computer Graphics Forum (in Proceedings of Eurographics 2003) 2002; 22(3): 253 262. 24. Hong J-M, Kim C-H. Discontinuous fluids. ACM Transactions on Graphics (in Proceedings of ACM SIGGRAPH), 2005. Copyright # 2005 John Wiley & Sons, Ltd. 413 Comp. Anim. Virtual Worlds 2005; 16: 405 414

J.-K. HONG AND C.-H. KIM Authors biographies: Jin-Kyung Hong is a master student in the Department of Computer Science and Engineering at Korea University. She received a B.A. degree in the Department of Computer Science from Korea University in 2003. Her current research interests include physics-based fluid animation and its application for visual effects. Chang-Hun Kim is a professor in the Department of Computer Science and Engineering at Korea University. He received a B.A. degree in economics from Korea University in 1979. After graduation, he joined the Korea Advanced Institute of Science and Technology (KAIST) as a research scientist, where he was involved in many national research projects in the area of Computer Aided Design and Geometric Modeling. He received his Ph.D. from the Department of Electronics and Information Science, Tsukuba University, Japan in 1993. During 1993 1995, he headed the Human Interface and Graphics Laboratory for System Engineering Research Institute (SERI). His current research interests include fluid animation and mesh processing. He is also a member of IEEE Computer Society and ACM. Copyright # 2005 John Wiley & Sons, Ltd. 414 Comp. Anim. Virtual Worlds 2005; 16: 405 414