advanced noise generation for the browser and node.js
- written in typescript
- seeded noise
- based on simplex noise (2D, 3D and 4D)
- fractal brownian motion (fbm)
- custom gain, lacunarity, scale, shift, power
- billowed, ridged, warped, stepped noise
- seamless tiling noise (1D and 2D)
- most options can be set to own noise instance
npm i uber-noise
import UberNoise from "uber-noise";
const noise = new UberNoise();
// get noise value at x, y, z
const value = noise.get(x, y, z);
// OR
const value = noise.get({x, y, z});
// simple fbm noise
const noise = new UberNoise({
scale: 0.01,
octaves: 4,
gain: 0.5,
lacunarity: 2.0,
});
const noise = new UberNoise({
// this will set the scale to a noise instance returning values between 0.01 and 0.1
scale: { min: 0.01, max: 0.1, scale: 0.01 },
});
Option | Type | Default Value | Description |
---|---|---|---|
seed |
string | number |
Math.random() |
Seed for the noise, defaults to a random value. |
min |
number | UberNoise | NoiseOptions |
-1 |
Minimum value of noise. |
max |
number | UberNoise | NoiseOptions |
1 |
Maximum value of noise. |
scale |
number | UberNoise | NoiseOptions |
1 |
Scale of the noise ("zoom" level). |
power |
number | UberNoise | NoiseOptions |
1 |
Power of the noise (1 = linear, 2 = quadratic). |
shift |
number[] |
[0, 0, 0, 0] |
Move noise in 2D, 3D, or 4D space. |
octaves |
number |
0 |
Number of layers for fbm noise. |
gain |
number | UberNoise | NoiseOptions |
0.5 |
Amplitude multiplier per fbm layer. |
lacunarity |
number | UberNoise | NoiseOptions |
2 |
Scale multiplier per fbm layer. |
amps |
number[] |
[] |
Array of custom amplitudes for each fbm layer. |
layers |
NoiseOptions[] |
[] |
Custom noise options for each fbm layer. |
sharpness |
number | UberNoise | NoiseOptions |
0 |
Sharpness of noise (0 = normal, 1 = billowed, -1 = ridged). |
steps |
number | UberNoise | NoiseOptions |
0 |
Discretizes the noise into steps. |
warp |
number | UberNoise | NoiseOptions |
0 |
Amount to warp the noise. |
warpNoise |
UberNoise |
undefined |
Custom noise used to warp the noise. |
warp2 |
number | UberNoise | NoiseOptions |
0 |
Second level of warping, only used if warp is used too. |
warpNoise2 |
UberNoise |
undefined |
Second custom noise for additional warping. |
invert |
boolean |
false |
Invert the noise output. |
abs |
boolean |
false |
Take the absolute value of the noise. |
clamp |
boolean |
false |
Clamp the noise between min and max values (otherwise noise might overflow slightly). |
tileX |
boolean |
false |
Tile the noise in the x direction. |
tileY |
boolean |
false |
Tile the noise in the y direction. |
tile |
boolean |
false |
Tile the noise in x and y directions (overwrites tileX and tileY ) |