Assignment 2: Smoke Simulation!

Due: March 5th, 2010

Starter code:  For MSVC 2005, For MSVC 2008


The purpose of this assignment is to experiment with incompressible fluid simulation implemented with a Semi-Lagrangian approach.  You will implement a 3D Smoke simulator using the techniques described in the following resources:

The startup code includes an incomplete fluid animation system. Although rendering and most of the necessary data structures have been written, this will be a challenging assignment.  You will need to implement the following:


If you used — or looked at — any source code you found somewhere else or which someone else wrote, even a single line, you SHOULD describe that in the writeup. You are not allowed to use any fluid simulation code available on the web! Please talk to us before using any existing code for this assignment except for the code provided by us.

Questions for you to answer (10 points)



This project was built and tested with GLUT, Boost 1.37 and Boost 1.42, and Devil 1.6.7 on MSVC 2005.  GLUT and DevIL are included these with the source, but you will need to download Boost.  We use Boost's UBLAS library for its very effecient matrix data structures and operations (especially for sparse matrices).  DevIL is an image library used to implement screen capture.

Built in features
Important data structures