There is an incredible short version of this fluid simulation effect (light and movement) here: https://www.dwitter.net/d/18112
(just 140 characters of javascript code)
Here is one short code example using Euler's method where Y(n+1) = Yn + step_size * f(Xn,Yn,Zn)
c.width|=X=Y=Z=6;for(i=3e3;i--;)
X+=.1*(Y-X),
Y+=.01*(X*(29-Z)-Y),
Z+=.01*(X*Y-1.6*Z),
x.fillRect(960+X*30,Z*22,6,9)