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.

Perlin Noise applied to a straight line

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).

Sinusoidal Noise applied to a straight line

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

Gaussian Noise applied to a straight line

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.

Cubic Noise applied to a straight line

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!

Square-Root Noise applied to a straight line

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.

Square-Rooted Perlin Noise applied to a straight line

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.

Squared Perlin Noise applied to a straight line

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:

Noisy lines applied to a spiral

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.

Noisy Spiral with added transparency

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!

Noisy lines applied to a spiral

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

Linear Noise
Radial Noise

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!


~ by asymptoticdesign on 10 November, 2011.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: