fractal_noise#

fractal_noise(shape, frequency: float = 0.05, octaves: int = 4, gain: float = 0.5, mode: Literal['simplex', 'perlin', 'value', 'cubic'] = 'simplex', seed: int | None = None, cores: int = 1, uniform: bool = True)[source]#

Generate fractal noise which can be thresholded to create binary images with realistic structures across scales.

Parameters:
  • shape (array_like) – The size of the image to generate, can be 2D or 3D.

  • frequency (scalar, default=0.05) – Controls the overall scale of the generated noise, with larger values giving smaller structures.

  • octaves (int, default=4) – Controls the number of scales across which structures are generated, with larger values giving more scale.

  • gain (scalar, default=0.5) – Controls the intensity of successively higher octaves. Values below 1.0 mean the higher octaves are less prominent.

  • mode (string) –

    The type of noise to generate. Options are:

    mode

    description

    ’perlin’

    Classic Perlin noise. For more information on perlin noise see here.

    ’simplex’

    Updated Perlin noise for more realistic textures. For more information on simplex noise see here.

    ’value’

    Bilnear interpolation of white noise. For more information on value noise see here.

    ’cubic’

    Cubic interpolation of white noise. For more information on cubic noise see here.

  • seed (int, optional) – The seed of the random number generator. Using the same seed between runs will produce the same image.

  • cores (int, optional) – The number of cores to use. This function uses pyfastnoisesimd, which has implemented SIMD processing which can be spread across cores. The default is to use all cores.

  • uniform (boolean, optional) – If True (default) the random values are converted to a uniform distribution between 0 and 1, otherwise the resulting image contains the unprocesssed values, which have a ‘normal-esque’ distribution centered on 0.

Notes

This function provides a simplified wrapper for the functions in the pyfastnoisesimd package. pyfastnoisesimd is itself a wrapper for a C-library called FastNoiseSIMD. To access the more elaborate functionality and options of these packages, explore the pyfastnoisesimd documentation.

Examples

Click here to view online example.