Awesome Open Source
Awesome Open Source

GitHub Actions CI Discord

FastNoise2

WIP successor to FastNoiseSIMD

Modular node based noise generation library using SIMD, modern C++17 and templates

FastNoise2 is a fully featured noise generation library which aims to meet all your coherent noise needs while being extremely fast

Uses FastSIMD to compile classes with multiple SIMD types and selects the fastest supported SIMD level at runtime

  • Scalar (non-SIMD)
  • SSE2
  • SSE4.1
  • AVX2
  • AVX512

Supports:

  • 32/64 bit
  • Windows
  • Linux
  • MacOS
  • MSVC
  • Clang
  • GCC

Noise Tool

The FastNoise2 noise 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. The noise tool has 2D and 3D previews for the node graph output, see screenshots below for examples.

Check the releases for early versions of the Noise Tool

NoiseTool

Performance Comparisons

Benchmarked using 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
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

Getting Started

See documentation


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c-plus-plus (18,751
cross-platform (697
simd (95
procedural-generation (89
noise (32