ilteris kaplan blog

Week 1 - First Assignment, Perlin Noise

January 25, 2006

Perlin noise

My first week assignment for Nature of Code is here. Some background about Perlin Noise; the noise itself was found by Ken Perlin back in the 80’s, later developed and applied by film production companies. The noise is mostly used for generating clouds, smoke, terrain etc. I think this equation is being used by most of the 3D softwares right now. There is 1D, 2D, 3D of this noise, it was not impossible to to 4D, but it was a huge calculation and back in 2002, Perlin wrote a paper to improve and optimize the equation. There is a great talk of him in this link.

If we come to the assignment I always had this obsession about applying a wave to a plane with no reason and this assignment was suited for this opportunity. I also explored the vertices and beginShape() function and creating a plane with this first time in this assignment. I see alot potential in creating planes with QUADS, QUADS_STRIP and especially POLYGON. This is a vast area waiting to be explored by me thinking I can apply our mathematical equations to them.

So future goals could be:

  • Mapping an image’s brightness/or/rgb values and create a plane according to that.
  • Create different variances of perlin noise using lines, sphere which I am really curious about the results.
  • Play with the noiseDetail() function in order to change the properties of the noise, this is another rich area. Also I quite skipped Random Walk hoping to apply it to some exercise this week too. It was all Perlin Noise week for me.

Some links below:

  • Ken Perlin’s HyperTexture Paper, ~ Computer Graphics, Volume 23, Number 3, July 1989 ’ Paper is about how we can achieve different materials playing with the density of the noise.-
  • Ken Perlin’s Improving Noise Paper ’ This is the paper of the improvement of the current noise algorithm which allows to build 4D, 5D noises easily as opposed to the previous one and faster.
  • The project Web Wide World by Ken Perlin ’ This movie is the render of the project which includes 4D Perlin noise to generate clouds and terrain and as Perlin states it “The land height and the various features (snow, clouds, etc), are all derived from a fractal sum of noise.” Since it is highly CPU intensive, it was run on SP2 of IBM back in the day. Live Recording Movie is here.

Some Java/Processing Examples of Perlin Noise on the Web:
Filtered Clouds - Toxi
perlinTerrain - Toxi
NoiseDetail reference - Toxi
BumpMap2D - Old School water Ripple by Perlin Noise -
Some discussion and a nice example of source code using it to create colors at Processing forums.

Written by Ilteris Kaplan who still lives and works in New York. Twitter