@suaveplan/noise - Seeded spatial noise fields: Perlin, Simplex, Value, Worley, fBm and Blue-noise sampling for procedural generation
Summary
Seeded spatial noise fields for procedural content generation. Provides six field types — Perlin, Simplex (2D/3D/4D), Value, Worley/cellular (F1/F2/F2-F1 modes), fBm (fractal Brownian motion compositor), and Poisson-disk Blue noise sampling — all seeded with Sfc32Rng for byte-identical, reproducible output. Every generator is available as both a functional API and a stateful class. Use this package for terrain heightmaps, texture generation, cloud simulation, vegetation scattering, and any procedural system that needs spatially-coherent randomness. For non-spatial random values (UUIDs, shuffles, distributions) use @suaveplan/random; for seeded integer/float sequences use @suaveplan/pseudo-random.
Documentation tree
- [blue](./src/blue/blue.md) — _(no submodules)_- [errors](./src/errors/noise-error.md) — _(no submodules)_- [noise-error](./src/errors/noise-error.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_- [utils](./src/utils/permutation.md) — _(no submodules)_- [permutation](./src/utils/permutation.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_- [blue](./src/blue/blue.md) — _(no submodules)_- [errors](./src/errors/noise-error.md) — _(no submodules)_- [noise-error](./src/errors/noise-error.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_- [utils](./src/utils/permutation.md) — _(no submodules)_- [permutation](./src/utils/permutation.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_- [blue](./src/blue/blue.md) — _(no submodules)_- [errors](./src/errors/noise-error.md) — _(no submodules)_- [noise-error](./src/errors/noise-error.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_- [utils](./src/utils/permutation.md) — _(no submodules)_- [permutation](./src/utils/permutation.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_- [blue](./src/blue/blue.md) — _(no submodules)_- [errors](./src/errors/noise-error.md) — _(no submodules)_ - [noise-error](./src/errors/noise-error.md) — _(no submodules)_- [fbm](./src/fbm/fbm.md) — _(no submodules)_ - [fbm](./src/fbm/fbm.md) — _(no submodules)_- [perlin](./src/perlin/perlin.md) — _(no submodules)_ - [perlin](./src/perlin/perlin.md) — _(no submodules)_- [simplex](./src/simplex/simplex.md) — _(no submodules)_ - [simplex](./src/simplex/simplex.md) — _(no submodules)_- [utils](./src/utils/permutation.md) — _(no submodules)_ - [permutation](./src/utils/permutation.md) — _(no submodules)_- [value](./src/value/value.md) — _(no submodules)_ - [value](./src/value/value.md) — _(no submodules)_- [worley](./src/worley/worley.md) — _(no submodules)_ - [worley](./src/worley/worley.md) — _(no submodules)_
Install
Features
- Perlin noise —
perlin2 / perlin3 (functional) + PerlinNoise (class)
- Simplex noise —
simplex2 / simplex3 / simplex4 + SimplexNoise
- Value noise —
value2 / value3 + ValueNoise
- Worley/cellular noise —
worley2 / worley3 with F1/F2/F2-F1 modes
- fBm compositor —
fbm2 / fbm3 wrap any base field into a multi-octave sum
- Blue noise sampler —
blueNoiseSample via Bridson's Poisson-disk algorithm
- Every field is seeded with
Sfc32Rng — byte-identical output for equal seeds
- Zod schemas for every option bundle
Quick start
Subpath exports
@suaveplan/noise/perlin
@suaveplan/noise/simplex
@suaveplan/noise/value
@suaveplan/noise/worley
@suaveplan/noise/fbm
@suaveplan/noise/blue
@suaveplan/noise/errors
Module docs
See the co-located .md next to each implementation.