The flexibility of Python. The power of .Net.
Sometimes I want to track property changes inside my Python classes. I wanted maximum simplicity and so chose to use Python's decorators. This isn't the most complex code but it can be used in many places.
I was watching a friend creating random clouds, by creating 4 random circles and offsetting them by a random amount. Sometimes this worked, but often it didn't. So I chose to write my own.
Using Perlin Noise to get generate the alpha map these clouds do take a long time to generate, around 1 second for a 100 * 50 grid. However the results are impressive.
Cloud generation works by passing the X and Y co-ordinates of one pixel to the Perlin Noise function and then using it as the alpha level. We also divide the alpha by the distance from the central Y axis of the cloud in order to fade the clouds out at the edges. This method generates a continuous, wooly clouds which, once rendered, do look stunning.