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.