faster-simplex-noise
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

About this fork

Some calculations were inlined (dot function, for example) to gain performance boost when using noise function actively. Also, spherical, cylindrical and 4D functions were removed in order to reduce code size.

Fast Simplex Noise

build npm

Important note: (2017-02-16) I have stopped supporting this library, and am instead concentrating on an OpenSimplex noise alternative, open-simplex-noise. Also, see fractal-noise if you need fractal (octaved/shaped noise) functions.

A JavaScript implementation of the improved, faster Simplex algorithm outlined in Stefan Gustavson's Simplex noise demystified. Convenience functions have been added as well, in order to avoid needing to scale and handle the raw noise data directly.

Install

npm install fast-simplex-noise

Example

// Generate 2D noise in a 1024x768 grid, scaled to [0, 255]
 
const FastSimplexNoise = require('fast-simplex-noise').default
const noiseGen = new FastSimplexNoise({ frequency: 0.01, max: 255, min: 0, octaves: 8 })
 
for (let x = 0; x < 1024; x++) for (let y = 0; y < 768; y++) {
  grid[x][y] = noiseGen.scaled([x, y])
}

Seeded Values

You can pass a random number generator as an option (see constructor options below); specifically seedrandom is recommended when seeded values are desired.

const seedrandom = require('seedrandom')
 
const rng = seedrandom('hello')
const noiseGen = new FastSimplexNoise({ random: rng })

API

Constructor

FastSimplexNoise(options?: Options = {})

Options contains:

  • amplitude: number – The base amplitude (default: 1.0)
  • frequency: number – The base frequency (default: 1.0)
  • max: number – The maximum scaled value to return (effective default: 1.0)
  • min: number – The minimum scaled value to return (effective default: -1.0)
  • octaves: number – Integer; the number of octaves to sum for noise generation (default: 1)
  • persistence: number – The persistence of amplitude per octave (default: 0.5)
  • random: () => number – A function that generates random values between 0 and 1 (default: Math.random)

Instance Methods

raw2D(x: number, y: number): number

Specific raw() call for a 2D point at (x, y).

raw3D(x: number, y: number, z: number): number

Specific raw() call for a 3D point at (x, y, z).

scaled2D(x: number, y: number): number

Specific scaled() call for a 2D point at (x, y).

scaled3D(x: number, y: number, z: number): number

Specific scaled() call for a 3D point at (x, y, z).

Package Sidebar

Install

npm i faster-simplex-noise

Weekly Downloads

1

Version

1.0.1

License

Unlicense

Unpacked Size

39.7 kB

Total Files

9

Last publish

Collaborators

  • maximyanovsky