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— Useslibmfor floating point functions. Required forno_std.nightly-simd— Adds support for sampling with simd types.
Modules§
Structs§
- Cell
Distance  - 2/3/4 dimensional noise of the distance to the closest cell.
 - Cell
Distance Sq  - 2/3/4 dimensional noise of the squared distance to the closest cell.
 - Cell
Value  - 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. - Open
Simplex2  - 2/3/4 dimensional OpenSimplex2 noise. Fast variant.
 - Open
Simplex2s  - 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.
 - Value
Cubic  - 2/3 dimensional Cubic Value noise.
 
Traits§
- Noise
 - Provides utility methods for noise types.
 - Open
Simplex Noise  - Provides utility methods for 
OpenSimplexnoise types. - Sample
 - Trait for sampling noises.
 - Value
OrNoise  - Either a 
f32or a noise.