Night Terrors

If you are not on mobile, you must be noticing the striking background for the website. This project is a continuation of this into more fully procedural art. Random colours. Random shapes. Perhaps aesthetics.



To understand this, we need to understand quite a few things. First, Perlin noise contours. Perhaps better than its ability to make heightmaps, Perlin noise creates interesting contours, lines delineating regions and shapes (see full post on contours). If we run the same algorithm as above, just without the effect I'll describe later, the Perlin noise contours will look like this:


Nice, smooth lines. You may notice that in some places, the lines are closer than in others - this would be where terrain heightmaps have a steep incline. On the other hand, where the lines turn into round regions, we find local maxima and minima, that is, flat peaks and flat valleys. This smooth map creates the large-scale compositional structure of the image.

Before we move onto the next effect, we need to understand that the above image is actually just a bunch of values translated into colours. When the values cross certain thresholds, you see sudden changes in colour, and above, this happens across long, smooth curves. However, one can add to this another value which changes much more locally.


Here presented in isolation, we see the same contour-lines as before, just now jolted by a  interference. The interference is also Perlin noise, though of a much higher frequency, and domain-warped, too. This is why the noise forms these long, strange filaments that often go perpendicular to the original contour lines.

With these single contours isolated, you will notice that the interference is stronger in some areas than others. Some parts of the lines are almost as smooth as before. This of course depends on a third Perlin noise field, which determines the extent to which the Perlin noise interference is applied.

These two systems, one for the large-scale composition, and one for the small-scale detail, in tandem with my colour system, is what creates these pieces.


The colours are stored in an array and the value described above is used to pick which position of the array is used. In several of the pictures, the array loops, so you see the same blood-orange line three places in the above picture.


The colours are all based on an average hue, but tend to diverge quite far from it. Still, this average hue gives each piece their own fan of colours - here, yellow, green and blue - in the previous one, pink, purple and red.


Apart from picking the colour from an array, the value is also used to create shading. This is most obvious down the middle of each line, though less visibly, there also is a slight gradient applied to each line.


Apart from hue, the colours also differ in brightness and saturation. Sometimes, some really interesting colour combination occur from this completely random list of colours. The generated colours have no internal relation, but our eye is quick to pick up bands of lighter to darker colours, as seen above, for instance.


The project can be found here on OpenProcessing, where you can find the code and create your own terrors, too. Since I did the same with my previous art project, Strangelets, I'll note that this is my 8th art project, and if you are interested, you can find the others here:
I don't quite know when, but I am planning on getting a printout of selected pieces from each of these projects. I am quite excited to see how well they function in physical form on a wall somewhere in my new house.

Comments