Modular node graph based noise generation library using SIMD, C++17 and templates
1,409
stars
881
commits
C++
primary language
Feb 25, 2026
updated
Modular node based noise generation library using SIMD, focused on performance, modern C++17 and designed with ease of use in mind.
Noise node graphs can be created in code or with the help of the included visual "Node Editor" tool. Or if you just want basic coherent noise you can easily generate it from a single Simplex/Perlin node
The node-based approach keeps all noise generation and operations (add, multiply, blend, etc.) within the SIMD pipeline. This means when combining multiple noise types or applying modifiers, the intermediate values stay in SIMD registers rather than being written to memory.
The traditional approach of generating noise types separately and combining them with scalar operations doesn't make sense if you want to benefit from SIMD. With just SIMD noise generation each noise type is generated into its own array, then the arrays would need to be combined afterwards in separate passes. With FastNoise2's node graph, the entire computation is fused and executed in SIMD, maximizing throughput and minimizing both memory allocation and bandwidth.
Coherent Noise
Fractals
Blends & Operators
Modifiers
Domain Warping
Dimensions
Thread Safety
Serialization
Extendable
The FastNoise2 Node Editor tool provides a node graph editor to create trees of FastNoise2 nodes. Node trees can be exported as serialised strings and loaded into the FastNoise2 library in your own code. Node Editor has 2D texture/heightmap and 3D mesh previews for the node graph output, generation is infinite in all dimensions. See screenshots below for examples.
Web Node Editor (WASM)
Check the Releases for compiled Node Editor binaries for desktop platforms
FastNoise Lite is a simpler, portable library best suited for basic noise needs in many languages. Choose FastNoise2 when you need:
Uses FastSIMD to compile code with multiple SIMD architectures and selects the fastest supported SIMD level at runtime
Supports:
On Windows using ClangCL is recommended as MSVC has SIMD compiler bugs, which cause incorrect generation. ClangCL also complies much faster and has measurable runtime performance increases. Remember ClangCL binaries/libraries are fully compatible with MSVC!
Bindings:
Roadmap:
FastNoise2 has continuous benchmarking to track of performance for each node type across commits
Results can be found here: https://auburn.github.io/fastnoise2benchmarking/
Benchmarked using NoiseBenchmarking
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 |
| FastNoise2 (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 |
| FastNoise2 (AVX2) | 776.33 | 624.27 | 466.03 | 194.30 |
See Wiki
C++
86.5%
CMake
7.4%
C
4.9%
Modular node graph based noise generation library using SIMD, C++17 and templates
1,409
stars
881
commits
C++
primary language
Feb 25, 2026
updated
Modular node based noise generation library using SIMD, focused on performance, modern C++17 and designed with ease of use in mind.
Noise node graphs can be created in code or with the help of the included visual "Node Editor" tool. Or if you just want basic coherent noise you can easily generate it from a single Simplex/Perlin node
The node-based approach keeps all noise generation and operations (add, multiply, blend, etc.) within the SIMD pipeline. This means when combining multiple noise types or applying modifiers, the intermediate values stay in SIMD registers rather than being written to memory.
The traditional approach of generating noise types separately and combining them with scalar operations doesn't make sense if you want to benefit from SIMD. With just SIMD noise generation each noise type is generated into its own array, then the arrays would need to be combined afterwards in separate passes. With FastNoise2's node graph, the entire computation is fused and executed in SIMD, maximizing throughput and minimizing both memory allocation and bandwidth.
Coherent Noise
Fractals
Blends & Operators
Modifiers
Domain Warping
Dimensions
Thread Safety
Serialization
Extendable
The FastNoise2 Node Editor tool provides a node graph editor to create trees of FastNoise2 nodes. Node trees can be exported as serialised strings and loaded into the FastNoise2 library in your own code. Node Editor has 2D texture/heightmap and 3D mesh previews for the node graph output, generation is infinite in all dimensions. See screenshots below for examples.
Web Node Editor (WASM)
Check the Releases for compiled Node Editor binaries for desktop platforms
FastNoise Lite is a simpler, portable library best suited for basic noise needs in many languages. Choose FastNoise2 when you need:
Uses FastSIMD to compile code with multiple SIMD architectures and selects the fastest supported SIMD level at runtime
Supports:
On Windows using ClangCL is recommended as MSVC has SIMD compiler bugs, which cause incorrect generation. ClangCL also complies much faster and has measurable runtime performance increases. Remember ClangCL binaries/libraries are fully compatible with MSVC!
Bindings:
Roadmap:
FastNoise2 has continuous benchmarking to track of performance for each node type across commits
Results can be found here: https://auburn.github.io/fastnoise2benchmarking/
Benchmarked using NoiseBenchmarking
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 |
| FastNoise2 (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 |
| FastNoise2 (AVX2) | 776.33 | 624.27 | 466.03 | 194.30 |
See Wiki
C++
86.5%
CMake
7.4%
C
4.9%