Crate noise_functions

Source
Expand description

A collection of fast and lightweight noise functions.

Check out the live demo and node editor (experimental)!

§Examples

use noise_functions::{ Noise, OpenSimplexNoise, Perlin, CellDistance, OpenSimplex2s, NoiseFn };

let point = [1.0, 2.0];

// perlin noise
let value = Perlin.sample2(point);

// seeded perlin noise
let value = Perlin.seed(42).sample2(point);

// fractal perlin noise
let value = Perlin.fbm(3, 0.5, 3.0).sample2(point);

// seeded fractal perlin noise
let value = Perlin.fbm(3, 0.5, 3.0).seed(42).sample2(point);

// perlin noise with adjusted frequency
let value = Perlin.frequency(3.0).sample2(point);

// cell distance (voronoi/worley) noise
let value = CellDistance::default().sample2(point);

// cell distance (voronoi/worley) noise with jitter multiplier
let value = CellDistance::default().jitter(0.5).sample2(point);

// domain warped OpenSimplex2s noise
let noise = OpenSimplex2s.translate_xy(OpenSimplex2s.seed(1), OpenSimplex2s.seed(2));
let value = noise.sample2(point);

let point = [1.0, 2.0, 3.0];

// 3d OpenSimplex2s noise
let value = OpenSimplex2s.sample3(point);

// 3d OpenSimplex2s noise with improved isotropy in the xy plane
let value = OpenSimplex2s.improve3_xy().sample3(point);

§Feature flags

  • std (enabled by default) — Uses floating point functions from the standard library.
  • alloc (enabled by default) — Adds trait implementations for boxed trait objects.
  • libm — Uses libm for floating point functions. Required for no_std.
  • nightly-simd — Adds support for sampling with simd types.

Modules§

errors
Error types.
modifiers
Noise modifiers.

Structs§

CellDistance
2/3/4 dimensional noise of the distance to the closest cell.
CellDistanceSq
2/3/4 dimensional noise of the squared distance to the closest cell.
CellValue
2/3/4 dimensional noise of the random value of the closest cell.
Constant
Returns a constant value.
NoiseFn
Wraps a function to make it implement Sample.
OpenSimplex2
2/3/4 dimensional OpenSimplex2 noise. Fast variant.
OpenSimplex2s
2/3/4 dimensional OpenSimplex2 noise. Smooth variant.
Perlin
2/3/4 dimensional Perlin noise.
Simplex
2/3/4 dimensional Simplex noise.
Value
2/3/4 dimensional Value noise.
ValueCubic
2/3 dimensional Cubic Value noise.

Traits§

Noise
Provides utility methods for noise types.
OpenSimplexNoise
Provides utility methods for OpenSimplex noise types.
Sample
Trait for sampling noises.
ValueOrNoise
Either a f32 or a noise.