gifPerlin Noise

jpg jpg

Perlin noise simulates the fractal geometry of nature and gives the model an organic form. Perlin noise may be applied to the Generator alone or to sine wave perturbations in Stacks or Slices, and in any combination. For example you may apply noise to the Generator alone whilst Stacks and Slices remain inactive. Alternatively, noise can be applied to Stacks alone, etc.

The Perlin Noise control panel has the following widgets:


Turbulence amount. Valid range is 0 to 1.


Number of octaves. Valid range is 1 to 16.


Turbulence scaling factor.


Seeds the random number generator. Valid range is 1 to 1000000.


-1 to 1, noise is subracted from and added to the original surface.

-1 to 0, noise is subracted from the original surface.

0 to 1, noise is added to the original surface.


Brings up a window where you can enter the limits for the Permutation Array.


Checked: use Fifth Order Blending curve. This is explained below.


Checked: Random number generator always returns a Prime.

About the Range choice. Think of ZERO as the boundary of the original profile. Therefore only the Range from -1 to 1 will preserve the general profile; whereas the range -1 to 0 shrinks the profile, and the range 0 to 1 enlarges it. After applying noise, you can always change the profile radius on the generator.


jpg jpg jpg jpg
P = 0.5 P = 0.7 P = 0.9 P = 1.0


Changing the seed value will re-seed the random number generator and alter the form. Valid ranges are from 1 to 1000000.

jpg jpg jpg jpg
Seed = 1 Seed = 2 Seed = 3 Seed = 4


Having consulted Ken Perlin's paper “Improving Noise” , I have added an option to use a fifth order blending curve f(t) = 6t^5 -15t^4 + 10t^3 to compute the interpolant. This option is turned ON by default. When turned OFF, the original Hermite blending function f(t) = 3t^2 - 2t^3 is used instead; however, because it is highly desirable to have a continuous second derivative for the noise function, the new default is recommended. This is because f(t) = 6t^5 -15t^4 + 10t^3 has zero first and second derivatives at both t=0 and t=1 which results in an absence of artifacts. As implemented in Whelk, the effect is most noticable at lower Octaves when the mesh resolution in Slices >= 144; the general result is smoother modulations in the mesh which are also better defined.


When checked, generate pseudo-random primes for the permutation array. This option is OFF by default. It is an experiment that provides another way to modify noise.


Brings up the Cloud Limits window where you can set Min and Max values for the Permutation array.