Been interested in trying to generate some clouds. The pic below is the state of that at the moment (may take a second for the pictures to start loading). Currently, only indirect sky light is considered.

The clouds are the result of a couple of steps.
First, the CPU comes up with and maintains a simple Navier-Stokes fluid field (using Felix Woitzel's 2d code from here, converted to 3d and seeded by whichever forces you want to apply) while the GPU calculates condensation from about 4 million air parcels moving within the field. The condensation is placed into a moisture grid (below flattened into 2d) and given a median filtering, and finally triangles meshes are created around these moisture blobs.

In the second step, the triangle meshes are fed into a path tracer which, upon intersecting one of them, starts traversing into the moisture grid at that location. Based on the amount of liquid water in that grid position, a chance for the ray to collide with a droplet is calculated. If the ray 'hits' a droplet, Mie scattering is estimated via rough chance (99 % of rays scatter forward, 50 % of those scatter forward in a narrow beam; as lucidly put in this thesis). A rough esimation of color shifts due to refraction is achieved by slightly adjusting the RGB values of each ray (can't afford spectral rendering). The benefit (or what I consider as such) of the moisture grid comes in here, as you can get some amount of soft edges without using fractals.
Some other 'cloud' shapes, though in these the way the condensation was accumulated was slightly buggy.


As I noted in the beginning, direct sunlight for clouds is not yet in effect. I'm looking into mapping some photons for that, but it's a bit buggy still. The resolution of the fluid grid needs punching up (currently 100 * 100 * 100). And there are various other things that need tweaking and changing.
Below is the first cloud mass fed from the cloud generator (first step) to the tracer.
