Storm Water Simulator by Dan Rice

    The basic concept for my project was to create realistic ripple calculations on water. These ripple calculations must interact with the scene they are in and each other in real-time. From there I wanted to create a scene, a storm cloud, and rain, and blended water surfaces. My vector ideas were based on the "cohesion" properties of water, cosine waves, and a mesh surface.

This picture shows a basic curled ripple on the water. In real-time, it shows fluid motion.

Woah, the clouds are rolling in. I think it might rain.

I forgot my umbrella!

After toggling the scene off you can see that the water surface is interacting in real-time with each raindrop.

User Manual:

To Toggle the Scene Push 's'
To Toggle blending push 'b'
To start a rain storm push 'f' (The fog will increase slowly, and then a storm will begin)
To toggle the water type press 'w' or use the menu.
To create one rain drop push 'd' note that you must be in splash mode to see it refract.
To toggle idle (freeze animation) push 'i'.

Here is the gcc binary which seems to work a little better.

Closing thoughts:

This project was such a heart-break because it turned out to be quite expansive, and I was unable to make it work to what I felt was a satisfactory level. The ripples are round cosine wave calculations, at vector locations with different amplitudes.

For some reason on this system after running a rain simulation the camera rotation does not work properly. This does not happen on my PC with gcc, only on visual studio. I assume I have some kind of race condition.

If I were to continue this project I would like to work further on the ripple calculations. My vector ideas were based on the "cohesion" properties of water, although I did not have time to effectively implement proper ripple collisions or other interactions with each other, like two ripples attraction to each other will cause a vector between them etc.