These are really really neat Robert. Can you tell us a bit more about what goes into creating this simulation? Maybe a brief summnary of what kind of math and physics is involved. Also, what are you using to create your graphics? Is this a custom programming job, or are you using some tools or rendering engines?
That would take quite a bit of writing... but I'll give some more information. While I have some experience in other languages, it was written in MATLAB. I just am more comfortable developing code in MATLAB, and the visualization I feel is very easy with the computational environment. Most of the images were made from MATLAB, except for the last one where I took the output from MATLAB and played around with it in photoshop.
The model uses finite differencing, while it appears other methods (i.e. finite element, etc.) may be better, it was largely developed in this manor because it was easier for me to understand. The model is 2d, fully compressible, and uses at present no turbulence model. The model uses centered difference in space and time. Because centered difference is unstable in time, there is also a filter applied to the model. For the the diffusion terms I applied a forward in time difference method. I have tried higher order spatial derivatives in time and space but found them to be unstable, although with the current form of the code I may play with this in the future.
The boundaries are tricky. I learned long ago (last year) to make the boundary a free slip boundary. This is because with the resolution presently involved, the winds and the bottom would be significantly damped. To do this the boundaries can largely be thought of as mirrors.
At present the model has a resolution of 25m X 25m and uses 100th of a second time steps. Each run, 900 seconds long, takes a little over a day. Although, I hope to improve the processing time, since there are a few places that probably could be improved up in terms of memory management.
For the physics and math I would largely refer you to by Tannehill, Anderson, & Pletcher, Computational Fluid Mechanics and Heat Transfer. The equation set to use is also rather tricky. The explicit equations you might find in the book, will probably not work if you just try to immediately apply finite differences to them and let it go. There were a few tweaks I needed to make to make gravity work appropriately, etc (i.e. apply the appropriate perturbations). If someone ventures into this I could provide more details.
There are some future directions I might head with this. However, I'm mainly doing checks and cleaning up the code right now. In the future I may want to add moisture (i.e. create rain, ice, etc.) There are some parametrization schemes I've been thinking I might apply, since originally I started this project wanting to make a storm. There are few other things I might try.
If you have more questions, I would be more than happy to answer them!