Fork me on GitHub
Choosing one of the presets in the dropdown list will initialize the other parameters with predefined values in order to obtain the chosen effect.
This value is used to initialize the pseudorandom number generator.
It can be any string, even an empty one.
This parameter controls how noise is mapped to colors in the final image.
If greyscale is chosen, the same noise function is used for all the three color components (RGB), resulting in shades of gray.
All the other values use three statistically independent noise functions for the three color components.
The only exception to this is gradient, which can either use three or one noise functions depending on whether the indipendent flag is selected or not, respectively.
With RGB, the noise functions are directly mapped to the three color components, while with HSL and HSV they are previously converted from the respective cylindrical coordinates to RGB.
gradient can be used to constrain the color shades inside the colors of a gradient, which can be specified using the Gradient Start and Gradient End parameters.
If this flag is selected, three statistically independent noise functions will be used for each color component; a single noise function will be used otherwise.
Click the box on the right to choose the gradient start color.
Click the box on the right to choose the gradient end color.
This parameter control which algorithm is used for generating the noise value at each point.
See for reference:
This function is used to "smooth" the transition between on noise value and the other in the noise lattice.
More specifically, given a distance d value between two integer noise values in the range [0, 1]:
  • cosine: 0.5 * (1 + cos((1 - d) * π))
  • hermite: 3d^2 - 2d^3
  • quintic: 6d^5 - 15d^4 + 10d^3
hermite smoothing was used in the original implementation of classic Perlin noise, while quintic was used in the improved version of the same.
The "zooming" factor.
A value of 1 indicates no zoom (each pixel in the image corresponds exactly to a noise value in the lattice), while 100 is the maximum zoom level (the image shows the interpolated noise between two consecutive noise values in the lattice).
This parameter controls the size of the permutation kernel used for randomness. The greater the size, the more distinct noise values can be generated without periodic repetition.
The number of noise octaves that are summed in the fractal sum.
The octaves amplitude and frequency both start at 1, and are multiplied by the Persistence and Lacunarity factors respectively after each octave value is computed.
Each octave value is passed through the Octave Function below.
After all octaves have been computed, their values are summed, and the sum is passed through the Sum Function below.
Finally, after all sum values have been computed, they are scaled to the range [0, 1].
The octaves amplitude starts at 1, and is multiplied by this factor after each octave value is computed.
The octaves frequency starts at 1, and is multiplied by this factor after each octave value is computed.
Each octave value is passed through this function. Available options are:
  • none: the value is left untouched;
  • absolute: the value is scaled in the range [-1, 1], the its absolute value is returned;
  • custom: you can manually set the function that will be used.
Here you can provide the actual body of the javascript function that will be applied to octave values.
The function takes three arguments:
  • n: the octave value, in the range [0, 1];
  • x: the x coordinate of the value being computed;
  • y: the y coordinate of the value being computed;
  • o: the 1-based number of the octave being computed.
The function should return a value in the range [0, 1].
The function declaration (function(x, y, z, o){) and closing bracket are automatically added respectively before and after your code, so you must not write them.
An example could be:
return Math.cos(y + n * x);
Each fractal sum value is passed through this function. Available options are:
  • none: the value is left untouched;
  • sine: the value is summed to the X coordinate multiplied by the Sine Frequency factor below, the the sine of the resulting value is computed and scaled to the range [0, 1];
  • modular: the value is multiplied by the Amplitude factor below, then its decimal part is returned;
  • custom: you can manually set the function that will be used.
Here you can provide the actual body of the javascript function that will be applied to fractal sums.
The function takes three arguments:
  • n: the octave value, in the range [0, 1];
  • x: the x coordinate of the value being computed;
  • y: the y coordinate of the value being computed;
The function should return a value in the range [0, 1].
The function declaration (function(x, y, z, o){) and closing bracket are automatically added respectively before and after your code, so you must not write them.
An example could be:
return Math.cos(y + n * x);
The X coordinate will be multiplied by this factor before being added to the fractal sum and used as the sine argument.
The fractal sum will be multiplied by this factor.