ゲーム用リアルタイム流体力学をJavaScript&Canvasに移植してみた

最近ネタに走ってばかりいたので、プログラマらしいことをしようと思って、Joe Stam氏がGDC2003で発表した
Real-Time Fluid Dynamics for Gamesの、CとOpenGLで書かれたデモを移植してみました。
http://eva-lu-ator.net/~gemma/geocities/fluid/1.png
http://eva-lu-ator.net/~gemma/geocities/fluid/2.png
http://eva-lu-ator.net/~gemma/geocities/fluid/3.png

C&OpenGLのコードをJavaScript&Canvasに移植するのはとても簡単でした。構文がそっくりです。
ただ、OpenGLのGL_QUADSのグラデーションをうまく表現できませんでした。本物はもっときれいです(そしてとても高速です)。

今のところCanvas要素の能力は、90年代前半のPCか、スーパーファミコン並でしょうか。

流体シミュレーションには、大別して、格子法とパーティクル法があるそうです。今回のは格子法です。
この解説を読んだのがきっかけでした。
Cowboy Programming » Practical Fluid Mechanics