Home

Awesome

discord

Depreciated

This version of FastNoise SIMD is now depreciated, please look into using FastNoise 2 which is the successor to this library.

FastNoise SIMD

FastNoise SIMD is the SIMD implementation of my noise library FastNoise. It aims to provide faster performance through the use of intrinsic(SIMD) CPU functions. Vectorisation of the code allows noise functions to process data in sets of 4/8/16 increasing performance by 700% in some cases (Simplex).

After releasing FastNoise I got in contact with the author of FastNoise SIMD (naming is coincidence) and was inspired to work with SIMD functions myself. Through his code and discussions with him I created my implementation with even more optimisation thanks to the removal of lookup tables.

Runtime detection of highest supported instruction set ensures the fastest possible performance with only 1 compile needed. If no support is found it will fallback to standard types (float/int).

Features

Credit to CubicNoise for the cubic noise algorithm

Supported Instruction Sets

Tested Compilers

Wiki

Docs

Related repositories

FastNoise SIMD Preview

I have written a compact testing application for all the features included in FastNoiseSIMD with a visual representation. I use this for development purposes and testing noise settings used in terrain generation. The fastest supported instruction set is also reported.

Download links can be found in the Releases Section.

Simplex Fractal

Performance Comparisons

Using default noise settings on FastNoise SIMD and matching those settings across the other libraries where possible.

Timings below are x1000 ns to generate 32x32x32 points of noise on a single thread.

Noise TypeAVX512AVX2SSE4.1SSE2FastNoiseLibNoise
White Noise791629141
Value92152324436642
Perlin14732459279510021368
Simplex1292945486041194
Cellular851128326792959297958125
Cubic615952197035162979

Comparision of fractals and sampling performance here.

Examples

Cellular Noise

Cellular Noise

Cellular Noise

Cellular Noise

Cave noise example

Fractal Noise

Simplex Fractal Billow

Perlin Fractal Billow

Value Noise

Value Noise

White Noise

White Noise

Perturb

Perturbed Cellular Noise