A high-performance JavaScript library for procedural noise generation, featuring multiple algorithms and fractal patterns. Perfect for games, visualizations, and creative coding projects.
- 🌪 Multiple noise algorithms: Perlin, Simplex, Worley, and Voronoi
- 🌀 Fractal noise generation (fBm, Ridged Multifractal)
- 🌐 Domain warping and turbulence effects
- 🧮 Seamless tiling patterns
- ⚡ Web-optimized performance
- 🌈 Customizable parameters for all noise types
- 🔢 Seedable randomness
<script src="https://cdn.jsdelivr.net/gh/TheEmptynessProject/ForgeNoise@main/dist/forgeNoise.min.js"></script>
<script src="path/to/forgeNoise.min.js"></script>
// Initialize generator
const noise = new ForgeNoise(seedNumber);
// Generate basic Perlin noise
const perlinValue = noise.generate2D(x, y);
// Create fractal noise
const fbmValue = noise.generateFractal2D(x, y, {
octaves: 6,
lacunarity: 2.0,
persistence: 0.5
});
// Generate Worley cellular pattern
const worleyValue = noise.generateWorley2D01(x, y);
// Create domain-warped noise
const warped = noise.warp2D(x, y, {
warpStrength: 2,
warpScale: 1.5
});
new ForgeNoise([seed])
- Create new noise generatorgenerate2D(x, y)
- Classic Perlin noise (range: [-1, 1])generateSimplex2D(x, y)
- Simplex noise implementationgenerateWorley2D(x, y)
- Cellular/Worley noise
generateFractal2D()
- Fractional Brownian Motionwarp2D()
- Domain distortion effectsgenerateTiling2D()
- Seamless tiling patternsgenerateVoronoi2D()
- Voronoi diagram generation
generate*01()
versions - Output mapped to [0, 1] rangesetSeed(seed)
- Update generator seedconfigure()
- Global noise parameters
const value = noise.generate2D01(x/20, y/20);
const height = noise.generateFractal2D(x/50, y/50, {
octaves: 8,
persistence: 0.65,
turbulence: true
});
const pattern = noise.generateWorley2D01(x/15, y/15) *
noise.generateSimplex2D01(x/30, y/30);
Contributions are welcome! Please read our Contribution Guidelines before submitting PRs.
MIT © [TheEmptynessProject]