Noise and Randomness
A demonstration on how noise and randomness functions can affect different visual elements.
produced by: Yasmine Boudiaf
Concept and background research
I was inspired by Sighack’s use of Perlin Noise in generative drawings as well as Zach Lieberman’s work and process .
The idea was to demonstrate how an increase in chaos could change the nature of visual elements. I was interested in finding out how much noise and randomness can be inflicted onto a visual element before it looked like a mess, and stop just short of that to produce a visually pleasing piece.
I used openFrameworks as a platform with C++ as a coding language. I employed two main functions to make elements behave in different ways: ofNoise and ofRandom.
Each scene had a different intention:
Scene 1: apply noise/randomness to tone
Scene 2 apply noise/randomness to pixels
Scene 3: apply noise/randomness to movement
Scene 4: disrupt the underlying architecture and the noise/randomness with an object that is in contrast to the previous scenes; circular, clear trajectory, colourful.
I set the timings in-code to distinguish between different scenes:
I would have liked to explore other forms of noise making and randomness on a single feature (such as shape or colour) and then allow them to increase in magnitude over time. One of Zack Lieberman’s tips is to “avoid random (and to a lesser sense, noise) as much as possible in favor of using mathmatical functions like sin() and tan()” .
With that in mind, I would have liked to employ more interesting algorithms to generate noise, such as Perlin Noise, Simplex Noise and Worley Noise to make elements look more organic and move in a way that’s not so jarring.
It would be interesting to somehow make elements ‘evolve’, whereby over time, they increase in complexity and get influenced by other elements going along another evolutionary path.
Another idea would be to have generative elements reflect live, real-world data.
I had ambitions that exceeded my ability. It also took me a lot more time than anticipated, and so there was little opportunity for reflection and refinement.
I would have liked to spend more time experimenting – in the end, I stuck to ‘safe’ functions, resulting in an underwhelming piece.
I used my own code rather than integrate someone else’s, and although this made the resulting piece unsophisticated, I’m proud of it as it serves as a milestone in my learning.