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.

### Turbulence

`P = 0.5` |
`P = 0.7` |
`P = 0.9` |
`P = 1.0` |

### Seed

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

`Seed = 1` |
`Seed = 2` |
`Seed = 3` |
`Seed = 4` |

### FOB

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.

### PRIMES

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.