Introduction
Clouds forming and moving across the sky, car exhaust, water dripping from the faucet, steam rising from a coffee mug, are all realistic portrayals of amorphous fluid-like phenomena. How to achieve an animation of fluid behavior in real time is always an interesting and important topic in computer graphics. A good fluid model in graphics should not only describe the fluid itself, but also model the interaction between the fluid and the surrounding objects in a physically correct manner. In Computational Fluid Dynamics (CFD), fluid properties and behaviors have been studied for many years. The goal of the researchers in fluid dynamics is to obtain a highly accurate fluid behavior. However, our purpose is to achieve realistic-looking results, while keeping the fast calculation speed. To achieve a realistic animation, the Navier-Stokes (NS) equations governing fluid motion have been applied by different ways. Due to its underlying nonlinear characteristic, it is impossible to get real-time speed for large 3D grids. Currently in flight simulation project, we use a simple, physical-based method to simulate amorphous phenomena. Based on the idea of the Cellular Automata and Lattice Gas Model, the Lattice Boltzmann Model (LBM) can simulate the microscopic movement of fluid particles by simple, identical and local rules, so that the macroscopic averaged properties obey the desired NS equations. The following are the results we got by using the Lattice Boltzmann Model.
Cloud

Fig. 1 shows the modeling of cloud. We initialize a 20X20X20 grid with zero velocity and constant density values. At certain grid locations, we assign higher density values. After a few steps, the higher density values will propagate to the neighboring cells, forming a cloud-like shape.
Viscous fluid flowing down steps

Fig. 2 shows a flow of viscous fluid flowing down steps. The grid size is 30X20X24. The fluid is generated from a 1X2 patch above the steps. The gravity force is incorporated as an external force. (a)-(d) are volume rendering results after each 25 time steps.
Smoke in a curved chimney

Fig. 3 is the sequence of dense smoke moving up in a curved chimney. The inlet of the smoke is a 2X2 patch. The smoke leaves the inlet at the speed of 0.15 with a density value of 0.42. The whole calculation is fulfilled on a 20X20X30 grid.
Smoke blown by the wind

Fig. 4 shows two images of smoke blown by the wind. The inlet of the smoke is a 2X2 patch. The smoke comes out of the inlet with a speed of 0.1 and a density value of 0.42. The left side of the grid is assigned a speed of 0.02 along X axis to model the effect of wind. We also incorporate an upward force due to the difference in temperature field.
Future Work
Using the LBM to simulate amorphous phenomena gives us a fast calculation speed. For a 60X60X60 grid, We can achieve 4 seconds' computation time, The current LBM model suffers from the stability problem while simulating flow with high speed and extremely turbulence. However, the LBM gives us an alternative solution. We believe, combining the LBM with texture mapping will be a promising direction. To simulate fluid with a Reynolds number greater than 10,000, we need to increase the grid resolution. On the other hand, we also need to achieve real time speed; parallel implementation will be a good solution. The LBM is ideally suited for computation on parallel computers, since most of its computation only depends on local neighbor information. Its linear computation at each cell also gives us the possibility of using current texture hardware to accelerate the speed. To account for more fluid animation, such as the buoyancy effect, we need to incorporate a temperature parameter into the model. The Thermal Lattice Boltzmann Model can be understood as an extension of the LBM.