npm.io
3.0.0 • Published 1 month ago

fractal-noise

Licence
Unlicense
Version
3.0.0
Deps
0
Size
20 kB
Vulns
0
Weekly
0
Stars
60

Fractal Noise

Fractal noise functions designed to be used with any noise generation algorithm.

Examples

These images were all generated using basic value noise with width: 888 and height: 111.

makeCylinderSurface(width, height, valueNoise3D, {
  frequency: 0.04,
  octaves: 2,
});

Low frequency, double octave cylinder

makeCylinderSurface(width, height, valueNoise3D, {
  frequency: 0.06,
  octaves: 8,
});

Medium frequency, high octave cylinder

makeLine(width, valueNoise1D); // (Replicated across y-axis)

Default line

makeLine(height, valueNoise1D, { frequency: 0.1 }); // (Replicated across x-axis)

High frequency line

makeRectangle(width, height, valueNoise2D);

Default rectangle

makeRectangle(width, height, valueNoise2D, { frequency: 0.04, octaves: 8 });

Low frequency, high octave rectangle

API

interface Options { amplitude?; frequency?; octaves?; persistence? }
  • amplitude?: number – Defaults to 1.0
  • frequency?: number – Defaults to 1.0
  • octaves?: number – Defaults to 1
  • persistence?: number – Defaults to 0.5
  • scale?: (x: number) => number – Defaults to undefined
makeCuboid(width, height, depth, noise3, options?): number[][][]
  • width: number
  • height: number
  • depth: number
  • noise3: (x: number, y: number, z: number) => number
  • options?: Options = {}

Generates a three-dimensional noise field for a rectangular cuboid.

makeCylinderSurface(circumference, height, noise3, options?): number[][]
  • circumference: number
  • height: number
  • noise3: (x: number, y: number, z: number) => number
  • options?: Options = {}

Generates a two-dimensional noise field formed around a three-dimensional cylinder, such that it is continuous across the x-boundaries.

makeLine(length, noise1, options?): number[]
  • length: number
  • noise1: (x: number) => number
  • options?: Options = {}

Generates a one-dimensional noise field.

makeRectangle(width, height, noise2, options?): number[][]
  • width: number
  • height: number
  • noise2: (x: number, y: number) => number
  • options?: Options = {}

Generates a two-dimensional noise field isolated to width and height (non-continuous noise).

makeSphereSurface(circumference, options?): number[][]
  • circumference: number
  • noise3: (x: number, y: number, z: number) => number
  • options?: Options = {}

Generates a two-dimensional noise field formed on the surface of a three-dimensional sphere.

Keywords