A C++ SIMD noise library providing high-performance 3D noise generation with runtime CPU instruction set detection.
FastNoise SIMD is a C++ library that generates various types of 3D noise using SIMD CPU instructions for dramatically improved performance. It solves the problem of slow procedural content generation by vectorizing noise algorithms to process data in sets of 4, 8, or 16 values simultaneously, achieving up to 700% speed improvements for certain noise types like Simplex noise.
Game developers, graphics programmers, and researchers working on real-time procedural content generation, terrain systems, visual effects, or any application requiring high-performance noise generation.
Developers choose FastNoise SIMD for its exceptional performance gains through SIMD optimization, support for multiple CPU instruction sets with automatic detection, and comprehensive noise algorithm options—all while maintaining the simplicity of the original FastNoise API.
C++ SIMD Noise Library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Achieves up to 700% faster performance for noise types like Simplex by processing data in sets of 4/8/16 values simultaneously, as demonstrated in benchmark comparisons with scalar implementations.
Automatically detects and uses the highest supported SIMD set from ARM NEON to AVX-512, ensuring optimal performance with a single compile and fallback to standard types if needed.
Includes multiple noise algorithms like Value, Perlin, Simplex, Cubic, Cellular, and specialized 3D cave noise, along with fractal options for complex pattern generation.
Provides built-in coordinate perturbation and up-sampling capabilities, simplifying workflows for creating organic variations and higher-resolution outputs without external tools.
Explicitly marked as deprecated in the README with no future updates, making it less suitable for new development compared to the successor FastNoise 2.
Core library is in C++; integration into other languages requires bindings like PyFastNoiseSIMD, which may add complexity or lag behind updates.
Maximum speed relies on SIMD-capable CPUs; on older hardware, performance drops significantly to scalar fallback, as shown in slower timings for SSE2 vs. AVX-512.