Herteby / simplex-noise / Simplex

Permutation tables


type alias PermutationTable =
{ perm : Array Basics.Int
, permMod12 : Array Basics.Int 
}

A Permutation table is a big list of random values needed for noise generation.

permutationTableGenerator : Random.Generator PermutationTable

Generator of random permutation tables.

permutationTableFromInt : Basics.Int -> PermutationTable

Generate a PermutationTable using an Int as a seed

Simplex noise

noise2d : PermutationTable -> Basics.Float -> Basics.Float -> Basics.Float

Generates a noise value between -1 and 1 based on the given x and y value and a seeded permutation table.

noise3d : PermutationTable -> Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float

Generates a noise value between -1 and 1 based on the given x, y and z value and a seeded permutation table.

noise4d : PermutationTable -> Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float

Generates a noise value between -1 and 1 based on the given x, y, z and w value and a seeded permutation table.

Fractal noise


type alias FractalConfig =
{ steps : Basics.Int
, stepSize : Basics.Float
, persistence : Basics.Float
, scale : Basics.Float 
}

Options for fractal noise generation

Use this previewer to experiment with different options: https://herteby.github.io/simplex-noise/preview/

fractal2d : FractalConfig -> PermutationTable -> Basics.Float -> Basics.Float -> Basics.Float

2-Dimensional fractal noise

fractal3d : FractalConfig -> PermutationTable -> Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float

3-Dimensional fractal noise

fractal4d : FractalConfig -> PermutationTable -> Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float

4-Dimensional fractal noise