High-Performance • SIMD-Optimized • Thread-Parallel
A modern C++17 library for generating stunning 2D procedural noise maps. Perfect for game development, procedural generation, and scientific simulations. Zero runtime dependencies, MIT licensed.
Built for performance, designed for simplicity. Everything you need for procedural noise generation.
AVX2 vectorization for blazing-fast noise generation. 6-50× faster than naive implementations.
Multi-threaded processing automatically utilizes all CPU cores for maximum throughput.
Only uses stb_image_write for output. No external libraries needed. Easy integration.
Available as both header-only and static library. Drop it into your project and start coding.
White, Perlin, Simplex, and Pink noise with full control over octaves, persistence, and more.
Well-tested, documented, and actively maintained. MIT licensed for commercial use.
Four distinct noise algorithms, each optimized for specific use cases.
Pure random uniform distribution. Perfect for testing and base textures.
Smooth gradient-based noise. Industry standard for terrain and textures.
Faster Perlin alternative with fewer artifacts. Ideal for real-time apps.
1/f natural fractal noise. Optimized with integral images and SIMD.
Generate beautiful noise maps with a single function call.
#include "Noise.hpp" int main() { using namespace Noise; // Generate White Noise create_whitenoise( 256, 256, // width, height 21, // seed OutputMode::Image, "whiteNoise.png" ); // Generate Perlin Noise create_perlinnoise( 512, 512, // width, height 50.0f, // scale 6, // octaves 1.0f, // frequency 0.5f, // persistence 2.0f, // lacunarity 0.0f, // base 42, // seed OutputMode::Image, "perlinNoise.png" ); // Generate Simplex Noise create_simplexnoise( 512, 512, // width, height 60.0f, // scale 4, // octaves 0.5f, // persistence 2.0f, // lacunarity 0.0f, // base 33, // seed OutputMode::Image, "simplexNoise.png" ); // Generate Pink Noise create_pinknoise( 512, 512, // width, height 6, // octaves 1.0f, // alpha (1.0 = true pink) 44100, // sample rate 1.0f, // amplitude 123, // seed OutputMode::Image, "pinkNoise.png" ); return 0; }
find_package(RelNo_D1 REQUIRED) add_executable(MyApp main.cpp) target_link_libraries(MyApp PRIVATE RelNo_D1::WhiteNoise PRIVATE RelNo_D1::PerlinNoise PRIVATE RelNo_D1::SimplexNoise PRIVATE RelNo_D1::PinkNoise )
Get started in minutes with our straightforward build process.
# Clone the repository git clone https://github.com/Adi5423/RelNo_D1.git cd RelNo_D1 # Create build directory mkdir build && cd build # Configure with CMake cmake .. # Build (Release mode recommended) cmake --build . --config Release # Run examples ./RelNoD_NoiseExample # Optional: Install to system cmake --install . --prefix ../install
Modern build system for cross-platform compilation.
MSVC, GCC, or Clang with C++17 support.
Currently optimized for Windows. Linux/Mac support coming soon.
Benchmarked and optimized for real-world applications.
AVX2 instructions process multiple pixels simultaneously for dramatic speedups.
Automatic thread pooling distributes workload across all available CPU cores.
Integral image techniques enable O(1) blur operations regardless of kernel size.
RelNo_D1 is open source and welcomes contributions from developers worldwide.
Free for commercial and personal use. Modify, distribute, and integrate into your projects without restrictions. We believe in open collaboration and community-driven development.
2D Procedural Noise
Currently Available
3D Volumetric Noise
In Development
4D Temporal Noise
For Animations
Linux & macOS Support
GPU Acceleration
More Noise Types