FastNoise Lite is an extremely portable open source noise generation library with a large selection of noise algorithms. This library focuses on high performance while avoiding platform/language specific features, allowing for easy ports to as many possible languages.
This project is an evolution of the original FastNoise library and shares the same goal: An easy to use library that can quickly be integrated into a project and provides performant modern noise generation. See a breakdown of changes from the transition to FastNoise Lite here
If you are looking for a more extensive noise generation library consider using FastNoise2. It provides large performance gains thanks to SIMD and uses a node graph structure to allow complex noise configurations with lots of flexibility.
- 2D & 3D sampling
- OpenSimplex2 noise
- OpenSimplex2S noise
- Cellular (Voronoi) noise
- Perlin noise
- Value noise
- Value Cubic noise
- OpenSimplex2-based domain warp
- Basic Grid Gradient domain warp
- Multiple fractal options for all of the above
- Supports floats and/or doubles
If you want to port FastNoise Lite to a new language create a pull request or discuss it on the discord linked above
Link: https://auburn.github.io/FastNoiseLite
A compact testing application is available for testing all features included in FastNoise Lite with a visual representation. This can be used for development purposes, testing noise settings and generating noise textures for export.
Source code can be found in the WebPreviewApp directory.
Benchmarked using C++ version with NoiseBenchmarking
- CPU: Intel 7820X @ 4.9Ghz
- OS: Win10 x64
- Compiler: clang-cl 10.0.0 -m64 /O2
Million points of noise generated per second (higher = better)
3D | Value | Perlin | (*Open)Simplex | Cellular |
---|---|---|---|---|
FastNoise Lite | 64.13 | 47.93 | 36.83* | 12.49 |
FastNoise (Legacy) | 49.34 | 37.75 | 44.74 | 13.27 |
FastNoise 2 (AVX2) | 494.49 | 261.10 | 268.44 | 52.43 |
libnoise | 27.35 | 0.65 | ||
stb perlin | 34.32 |
2D | Value | Perlin | Simplex | Cellular |
---|---|---|---|---|
FastNoise Lite | 114.01 | 92.83 | 71.30 | 39.15 |
FastNoise (Legacy) | 102.12 | 87.99 | 65.29 | 36.84 |
FastNoise 2 (AVX2) | 776.33 | 624.27 | 466.03 | 194.30 |
- OpenSimplex2 for the OpenSimplex2 noise algorithm
- @KdotJPG for implementing all the OpenSimplex algorithms and the Java port
- CubicNoise for the Value (Cubic) noise algorithm
- @Rover656 for creating the preview GUI and porting FastNoise Lite to C and HLSL.
- @snowfoxsh for creating the JavaScript port.
- @dotlogix for creating the GLSL port.
- @ForeverZer0 for creating the Go port.
- @Keavon for creating the Rust port.