Cosmos and Nebulae

I am not quite sure how to write this post since this project is perhaps the most complicated I have ever finished. It's not particularly elegant. It's just a bunch of complications put together until I found a product I liked. This is the cosmos:


These pictures are full of detail, so I'll recommend clicking on them to see them in full size. So what is it anyway? It's just noise and noise and noise and noise.


Colours are picked from an array of random colours tending towards a single hue. Then, for each pixel of the canvas, a colour is merged using two independent noise values with a good old bilinear interpolation. So this is simple enough. Really, the only thing that is complicated is how those two independent noise values are generated.




Cosmos is an evolution of the Night Terrors I wrote about last week, and as such, the noise values are part large-scale gradient across the full screen, and part small-scale domain-warped tendrils that are mostly visible at the contours of the larger gradient. The linked post explains it a bit better. Anyway, so two of these values are generated at different scales and with different seeds. And then there's the grime.

You will see it in the pictures, small specks of dirt surrounded by clouds of rust. These are a new addition because, well, you need more noise. They are quite recognisable as just good old high-frequency Perlin noise, using the absolute value for good measure, and then multiplied with a larger-scale Perlin noise value so that only some areas are filled with them.



And then there's the hypervariability. The above picture looks very different from the other ones because of a certain random setting controlling how colours are blended together. This leads to large areas of flat coloration. But this is just one of 32 randomized values that controls the frequencies and amplitudes of the noise values and a lot of other internal stuff.



So it should be obvious that Cosmos as showcased and explained above are a symbol of excess, of maximalism where one probably should have considered at least a compromise with minimalism. It's just too much. Too many conflicting systems. Too much noise, pardon the pun.

Not that it is all bad. The pictures are interesting and full of detail. Just that I wanted an alternative that was a bit calmer to look at. I also noticed just how effective dark colours were to bring out the strong hues in a more balanced fashion.

Enter the Nebulae:


This really is just a glorified variant where the bilinear interpolation has been replaced. One of the two noise values works just like before, interpolating different colours in the array. The other noise value instead interpolates to a single, predefined background colour that tends to be dark. This creates a much calmer composition.



The whole idea of having two independent dimensions and bilinear interpolation was to create a more diverse range of colours that meet. Just using black almost does this too, as you have both, in the above picture, green, grey, brown and red as well as their intermediate products meeting up with the black.


Though the nebula are interesting, I do not quite know if they solved the problem I wanted them to.

You can find the source code or generate more cosmos here and nebulae here.

I guess this is almost good enough to join my list of art projects:

Comments