-
-
Notifications
You must be signed in to change notification settings - Fork 134
Home
Jordan Peck edited this page Feb 25, 2026
·
18 revisions
FastNoise2 is a modular, node-based noise generation library built using SIMD for maximum performance. It is written in modern C++17 and designed with ease of use and flexibilty in mind.
Noise node graphs can be created in code or with the included visual Node Editor tool. If you just need basic coherent noise, you can generate it from a single Simplex or Perlin node in a few lines of code.
#include <FastNoise/FastNoise.h>
#include <vector>
// Create a Simplex FBm fractal
auto simplex = FastNoise::New<FastNoise::Simplex>();
auto fractal = FastNoise::New<FastNoise::FractalFBm>();
fractal->SetSource( simplex );
fractal->SetOctaveCount( 5 );
// Generate a 16x16x16 grid of 3D noise
std::vector<float> noise( 16 * 16 * 16 );
fractal->GenUniformGrid3D( noise.data(), 0, 0, 0, 16, 16, 16, 1, 1, 1337 );
int index = 0;
for( int z = 0; z < 16; z++ )
{
for( int y = 0; y < 16; y++ )
{
for( int x = 0; x < 16; x++ )
{
// Process the voxel noise however you need for your use case
// Create a terrain mesh using marching cubes, etc.
ProcessVoxelData( x, y, z, noiseOutput[index++] );
}
}
}Or load a string encoded node tree created in the Node Editor:
auto generator = FastNoise::NewFromEncodedNodeTree( "DQkGDA==" );- Compiling FastNoise2 - Build from source with CMake
- Including the Library in Your Project - CMake and Visual Studio integration
- Getting Started - Create node trees, generate noise, use the Node Editor
- Understanding Noise Types - How different noise algorithms work and when to use each
- Node Graph Architecture - Why nodes, how they compose, and how serialisation works
- Basic Generators - Constant, White, Checkerboard, SineWave, Gradient, DistanceToPoint
- Coherent Noise - Simplex, SuperSimplex, Perlin, Value, Cellular
- Fractal - FBm, Ridged
- Operators - Add, Subtract, Multiply, Divide, Modulus
- Blends - Min, Max, SmoothMin, SmoothMax, Fade, Pow
- Modifiers - Remap, Terrace, PingPong, SeedOffset, Cache, and more
- Domain Modifiers - Scale, Offset, Rotate, Axis Scale, Add/Remove Dimension
- Domain Warp - Gradient, Simplex, SuperSimplex, Fractal variants
- FAQ - Common questions and troubleshooting
- GitHub Repository
- Node Editor (Web)
- Desktop Releases
- Performance Benchmarks
- Discord Community
- FastNoise Lite - Simpler single-header alternative for basic noise needs