Skip to content

joshforisha/fractal-noise-js

Repository files navigation

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.