Source: http://physbam.stanford.edu/~fedkiw/papers/stanford2001-02.pdf