## Experiments in Noise

I’m a really big fan of the Processing programming language. With relatively small amounts of code, you can generate a relatively large amount of interesting visualizations. I’ve been dabbling in it for a while, and recently acquired *Generative Art — A Practical Guide Using Processing* by Matt Pearson. The book is a great introduction to both processing and generative art.

I’ve been really stressed out lately because of grad school applications, exams, and research deadlines — so I decided to relax by generating some pictures in processing! I went through the exercises in Chapters 3 and 4 of Pearson’s book, and added my own variations to both of them.

Chapters 3 and 4 focus on generating noise in ‘sketches’ (what Processing calls each file that generates a visual piece) to add a bit of chaos to it. I really enjoy the dichotomy of order and chaos, especially in art [along with simplicity and complexity — another one that comes up in generative art quite a bit], so I had a lot of fun playing with noise.

I just started out by drawing ‘straight’ lines (the line at the top of the image) and adding noise to it. Processing implements Perlin Noise, which is fairly well known for being an ‘organic’ looking noise pattern.

That was cool, but I thought it would be fun to define my own noise functions. First I implemented Sinusoidal Noise, where you take a random number x, input that to sine, and your final noise value is sine(x).

The noise has a lot more variance in it than Perlin noise did, and tends towards larger noise [sine(x) tends towards 1]. Next I implemented Gaussian Noise in a similar way

This noise is similar to Perlin Noise in that it looks a bit more organic because the variance isn’t too large. There are very few large discontinuous breaks in the line, so its randomness is aesthetically pleasing. Next up was cubic noise — cube the random numbers that were selected.

random(1) generates a number between 0 and 1; therefore, all of the outputs are decimal numbers less than 1. Cubing a number tends to make small numbers even smaller, so the noise is pretty small except for a few large spikes [where presumably the value was 1]. Conversely, square rooting a number tends to make small numbers big and big numbers small!

So here we see the opposite effect, where most of the noise consists of large deviations from our base value. I combined the perlin noise with square rooting to [hopefully] generate some organic-looking noise with larger variations.

Though it didn’t look much clunkier than square-rooted random noise, in my opinion. To be exhaustive, I decided to square root the noise too. It did about what I expected — it reduce the variation in the noise and increased the overall magnitude of it.

The next step was to take our basic line and create spirals with it. Just by creating a spiral out of line segments, and adding noise to the segments, I generated a spiral that was surprisingly cool given its simplicity:

I thought it would be neat to vary the transparency (the ‘alpha’ value of the stroke color) to give the spiral some depth. I was hoping it might look like the spiral is spiraling towards or away from you.

Moving away from Perlin Noise, I decided to perturb the spiral by adding the values of sin^3(x) to it. This gives it a nice oscillating look, and the concentric oscillations give it an almost flower-like appearance. I’m a big fine of this final piece!

Zipped folders with the code used to generate these images [and the images themselves] are available here:

Next I’m hoping to find interesting ways to use the things that I’ve demonstrated here. As I feel with most art, learning the tools are relatively easy — it’s coming up with inspiration for using them to compose something truly unique and interesting that’s difficult!