Random noise

I started to undestand what Generative Art is all about: generating randomness and moving it around, containing it, bending it to your will. You need to be a randomness hacker. A noise whisperer.

There are many ways you can use to vizualize noise: dots, lines, bars and wavy lines with stacked randomness.

Hint: The examples below are written in Javascript. Refresh the page multiple times to see different random results.

This is how pure random 2D noise looks like:

It’s pretty boring.

And the same pure randomness in the form of vertical lines:

It becomes a little more interesting when you stack multiple levels of randomness:


To control the positioning, you can use probability distribution functions that are more likely to generate numbers in a specific range, rather than uniformly distributed numbers.

The easiest way is to use power functions, either with exponent larger than 1, or smaller.
Smaller than 1 exponents generate smooth distributions because Math.random() generates numbers in the range 0…1.

In these two examples below, I’m aligning the noise to left or right by using Math.pow(Math.random(), 0.1) for the X axis:

And the same distribution, represented as lines:


A more popular way to distribute randomness is the Normal distribution, also called Gaussian or Laplace–Gauss) distribution. You can check different implementations at RosettaCode.org - Normal distribution. It concentrates the noise to make a soft 🔔"Bell curve" like this:

And the lines:


I wrote this post because a few months ago, I had no idea that these functions exist, let alone why they would be useful.

If you found this interesting, you can also check this similar article by Tyler Hobbs: Probability distributions for algorithmic artists.

🏷 @notes #generative #procedural #art