Overview
NoiseGraph exposes a node-based noise library to Blueprints and C++. Every node of the library is a UObject generator: create generators with the NoiseGraph factory nodes, plug them into each other through their source inputs, and generate values from the last generator of the tree. Generation runs in the bundled native library, which selects the best SIMD instruction set of the CPU at runtime.
- Coherent noise: Value, Perlin, Simplex, OpenSimplex2, OpenSimplex2S and three cellular variants.
- Fractals (FBm, Ridged, PingPong) and domain warps (gradient, progressive and independent fractal warps).
- 28 blend nodes: add, subtract, multiply, divide, min, max, smooth min/max, exponent and fade with value or source operands.
- Modifiers: domain scale, offset, rotate and axis scale, seed offset, remap, terrace, RGBA8 conversion, add/remove dimension and a generator cache.
- Generation as uniform 2D/3D/4D grids, tileable 2D maps, position arrays or single samples, with the min/max range returned.
- Load complete node trees from encoded node-tree strings.
- Win64 and Linux (x64) only.
Requirements
| Requirement | Details |
|---|---|
| Unreal Engine | 4.27 and 5.8 (verified clean on both) |
| Modules | NoiseGraph (Runtime), plus the bundled prebuilt library module FastNoise2 (external, no code to compile) |
| Dependencies | None |
| Language | Blueprints and C++ (C++17 on UE 4.27 for modules that include NoiseGraph headers) |
| Platforms | Win64 and Linux (x64) only — the plugin descriptor allows exactly Win64 and Linux because the noise library ships as prebuilt binaries for those two platforms. Mac, Android and iOS are not supported. Win64 is verified by Alpha XP; Linux is supported by the code, not verified by Alpha XP. |
Installation
- Close the editor and copy the
NoiseGraphfolder into your project'sPlugins/folder (create it if needed), or install the plugin from Fab into your engine. - Open the project. For a C++ project, let the editor rebuild the plugin module when prompted, or build the project from your IDE.
- Enable NoiseGraph in Edit > Plugins (search for “NoiseGraph”) and restart the editor.
- C++ only: add
"NoiseGraph"toPublicDependencyModuleNamesin your module's.Build.cs. Add"FastNoise2"as well if you call the library API directly. On UE 4.27 setCppStandard = CppStandardVersion.Cpp17;in any module that includes NoiseGraph headers.
Quick start
Blueprint
- Add Make Simplex Generator (category NoiseGraph|Coherent Noise).
- Add Make Fractal FBm Generator (NoiseGraph|Fractal), connect the simplex generator to Source and set Octaves to 5.
- Promote the fractal generator to a variable so it stays referenced.
- Call Gen Uniform Grid 2D with Start (0, 0), Size (256, 256), Frequency 0.02 and a Seed. Out Values receives 256 × 256 floats and the return value is their min/max range.
- Use Gen Single 2D for single samples, or Gen Tileable 2D for a seamlessly tiling texture.
C++
#include "NoiseGraphBlueprintLibrary.h"
// Keep the final generator referenced, e.g. UPROPERTY() UNoiseGraphGeneratorBase* Terrain = nullptr;
UNoiseGraphSimplexGenerator* Simplex = UNoiseGraphBlueprintLibrary::MakeSimplexGenerator();
UNoiseGraphFractalFBmGenerator* Fbm = UNoiseGraphBlueprintLibrary::MakeFractalFBmGenerator(
Simplex, /*GainSource*/ nullptr, /*Gain*/ 0.5f, /*WeightedStrengthSource*/ nullptr,
/*WeightedStrength*/ 0.f, /*Lacunarity*/ 2.0f, /*Octaves*/ 5);
Terrain = Fbm;
TArray<float> Heights;
const FFloatRange Range = Fbm->GenUniformGrid2D(Heights, FIntPoint(0, 0), FIntPoint(256, 256), 0.02f, 1337);
const float Single = Fbm->GenSingle2D(FVector2D(10.f, 20.f), 1337);
Generating values
Callable on every generator (UNoiseGraphGeneratorBase, category NoiseGraph). Frequency defaults to 0.01 and Seed to 1337.
| Node | Type | Description |
|---|---|---|
| Gen Uniform Grid 2D | Callable | Fills Out Values with Size.X × Size.Y samples starting at Start, using Frequency and Seed; returns the min/max range. |
| Gen Uniform Grid 3D | Callable | Same for a 3D grid (Size.X × Size.Y × Size.Z values). |
| Gen Uniform Grid 4D | Callable | Same for a 4D grid; Start and Size are passed as Vector4 (components used as integers). |
| Gen Tileable 2D | Callable | Fills Out Values with a seamlessly tileable 2D map of Size.X × Size.Y; returns the range. |
| Gen Position Array 2D | Callable | Samples at every 2D position of Pos Array plus Offset; returns the range. |
| Gen Position Array 3D | Callable | Samples at every 3D position of Pos Array plus Offset; returns the range. |
| Gen Position Array 4D | Callable | Samples at every 4D position of Pos Array plus Offset; returns the range. |
| Gen Single 2D | Callable | Returns one sample at a 2D location. |
| Gen Single 3D | Callable | Returns one sample at a 3D location. |
| Gen Single 4D | Callable | Returns one sample at a 4D location. |
Basic generators
Static factory nodes in NoiseGraph|Basic Generators; each returns the matching generator object.
| Node | Type | Description |
|---|---|---|
| Make Encoded Node Tree Generator | Callable | Builds a complete node tree from an encoded node-tree string. |
| Make Constant Generator | Callable | Outputs a constant value. |
| Make White Generator | Callable | White noise. |
| Make Checkerboard Generator | Callable | Checkerboard pattern with a cell size. |
| Make Sine Wave Generator | Callable | Sine wave pattern with a scale. |
| Make Position Output Generator | Callable | Outputs the input position, multiplied and offset per axis (Vector4). |
| Make Distance to Point Generator | Callable | Distance from the sampled position to a point, with a distance function and per-axis scale. |
Coherent noise
Static factory nodes in NoiseGraph|Coherent Noise; each returns the matching generator object.
| Node | Type | Description |
|---|---|---|
| Make Value Generator | Callable | Value noise. |
| Make Perlin Generator | Callable | Perlin (gradient) noise. |
| Make Simplex Generator | Callable | Simplex noise. |
| Make Open Simplex 2Generator | Callable | OpenSimplex2 noise. |
| Make Open Simplex 2SGenerator | Callable | OpenSimplex2S (smooth) noise. |
| Make Cellular Value Generator | Callable | Cellular noise returning the value of the n-th closest cell; jitter (value or source), distance function, value index. |
| Make Cellular Distance Generator | Callable | Cellular noise returning distances; two distance indices combined by a return type. |
| Make Cellular Lookup Generator | Callable | Cellular noise that samples a lookup generator at each cell, with a lookup frequency. |
Fractals and domain warp
Static factory nodes in NoiseGraph|Fractal, NoiseGraph|Domain Warp and NoiseGraph|Fractal|Domain Warp; each returns the matching generator object.
| Node | Type | Description |
|---|---|---|
| Make Fractal FBm Generator | Callable | Fractional Brownian motion over a source; gain (value or source), weighted strength, lacunarity, octaves. |
| Make Fractal Ridged Generator | Callable | Ridged fractal over a source; same parameters as FBm. |
| Make Fractal Ping Pong Generator | Callable | Ping-pong fractal over a source with a ping-pong strength (value or source). |
| Make Domain Warp Gradient Generator | Callable | Warps the input coordinates of a source with gradient noise; amplitude (value or source) and frequency. |
| Make Domain Warp Fractal Progressive Generator | Callable | Fractal domain warp where each octave warps the result of the previous one. |
| Make Domain Warp Fractal Independant Generator | Callable | Fractal domain warp where every octave warps the original coordinates. |
Blends
Static factory nodes in NoiseGraph|Blends; each returns the matching generator object.
| Node | Type | Description |
|---|---|---|
| Add Value | Callable | Source + value. |
| Add Sources | Callable | Source + source. |
| Subtract Value | Callable | Source - value. |
| Subtract Source | Callable | Value - source. |
| Subtract Sources | Callable | Source - source. |
| Multiply Value | Callable | Source × value. |
| Multiply Sources | Callable | Source × source. |
| Divide Value | Callable | Source / value. |
| Divide Source | Callable | Value / source. |
| Divide Sources | Callable | Source / source. |
| Min Value | Callable | Minimum of a source and a value. |
| Min Sources | Callable | Minimum of two sources. |
| Max Value | Callable | Maximum of a source and a value. |
| Max Sources | Callable | Maximum of two sources. |
| Min Value Smooth Value | Callable | Smooth minimum of a source and a value with a smoothness value. |
| Min Sources Smooth Value | Callable | Smooth minimum of two sources with a smoothness value. |
| Min Value Smooth Source | Callable | Smooth minimum of a source and a value with a smoothness source. |
| Min Sources Smooth Source | Callable | Smooth minimum of two sources with a smoothness source. |
| Max Value Smooth Value | Callable | Smooth maximum of a source and a value with a smoothness value. |
| Max Sources Smooth Value | Callable | Smooth maximum of two sources with a smoothness value. |
| Max Value Smooth Source | Callable | Smooth maximum of a source and a value with a smoothness source. |
| Max Sources Smooth Source | Callable | Smooth maximum of two sources with a smoothness source. |
| Exponent Value Base Source | Callable | Base from a source raised to a constant exponent. |
| Exponent Source Base Value | Callable | Constant base raised to an exponent from a source. |
| Exponent Source Base Source | Callable | Base and exponent both from sources. |
| Exponent Int | Callable | Source raised to an integer exponent. |
| Fade by Value | Callable | Fades between source A and source B by a value. |
| Fade by Source | Callable | Fades between source A and source B by a fade source. |
Modifiers
Static factory nodes in NoiseGraph|Modifiers; each returns the matching generator object.
| Node | Type | Description |
|---|---|---|
| Domain Scale | Callable | Scales the input coordinates of a source uniformly. |
| Domain Offset by Values | Callable | Offsets the input coordinates per axis by a Vector4. |
| Domain Offset by Sources | Callable | Offsets the input coordinates per axis by four sources (X, Y, Z, W). |
| Domain Rotate | Callable | Rotates the input coordinates by a rotator. |
| Domain Axis Scale | Callable | Scales the input coordinates per axis by a Vector4. |
| Seed Offset | Callable | Adds an offset to the seed passed to the source. |
| Remap | Callable | Remaps the source output from one range to another (Vector2D ranges, default -1..1 to 0..1). |
| Convert RGBA8 | Callable | Converts the source output within a range to a packed RGBA8 grey value. |
| Terrace | Callable | Terraces the source output with a multiplier and smoothness. |
| Add Dimension with Position Value | Callable | Adds a dimension whose position is a constant value. |
| Add Dimension with Position Source | Callable | Adds a dimension whose position comes from a source. |
| Remove Dimension | Callable | Removes one dimension (X, Y, Z or W) before sampling the source. |
| Make Generator Cache | Callable | Caches the last result of a source that is used several times in a tree. |
Generator settings
Setter nodes available on the generator objects (category NoiseGraph). Setting the matching property in Blueprint calls the same setter, which updates the live generator.
| Node | Type | Description |
|---|---|---|
| Set Encoded Node Tree | Callable | UNoiseGraphEncodedNodeTreeGenerator: Encoded node-tree string; rebuilds the tree. |
| Set Value | Callable | UNoiseGraphConstantGenerator: Constant output value. |
| Set Size | Callable | UNoiseGraphCheckerboardGenerator: Checkerboard cell size. |
| Set Scale | Callable | UNoiseGraphSineWaveGenerator: Sine wave scale. |
| Set Data / Set Multipliers / Set Offsets | Callable | UNoiseGraphPositionOutputGenerator: Per-axis multipliers and offsets. |
| Set Source / Set Distance Function / Set Scale | Callable | UNoiseGraphDistanceToPointGenerator: Source, distance function and per-axis scale. |
| Set Jitter Modifier Source / Set Jitter Modifier Value / Set Distance Function | Callable | UNoiseGraphCellularValueGenerator / UNoiseGraphCellularDistanceGenerator / UNoiseGraphCellularLookupGenerator: Shared cellular settings. |
| Set Value Index | Callable | UNoiseGraphCellularValueGenerator: Which closest cell (0-3) supplies the value. |
| Set Distance Index 0 / Set Distance Index 1 / Set Return Type | Callable | UNoiseGraphCellularDistanceGenerator: Distance indices (0-3) and how they combine. |
| Set Lookup Source / Set Lookup Frequency | Callable | UNoiseGraphCellularLookupGenerator: Lookup generator and its frequency. |
| Set Source / Set Gain Source / Set Weighted Strength Source / Set Gain Value / Set Weighted Strength Value / Set Lacunarity Value / Set Octave Count | Callable | UNoiseGraphFractalFBmGenerator / UNoiseGraphFractalRidgedGenerator / UNoiseGraphFractalPingPongGenerator: Shared fractal settings. |
| Set Ping Pong Strength Source / Set Ping Pong Strength Value | Callable | UNoiseGraphFractalPingPongGenerator: Ping-pong strength. |
| Set Source / Set Warp Amplitude Source / Set Warp Amplitude Value / Set Warp Frequency Value | Callable | UNoiseGraphDomainWarpGradientGenerator: Warp source, amplitude and frequency. |
| Set Domain Warp Source / Set Gain Source / Set Weighted Strength Source / Set Gain Value / Set Weighted Strength Value / Set Lacunarity Value / Set Octave Count | Callable | UNoiseGraphDomainWarpFractalProgressiveGenerator / UNoiseGraphDomainWarpFractalIndependantGenerator: Domain-warp generator to fractalise and fractal settings. |
| Set LHSSource / Set RHSSource / Set RHSValue | Callable | UNoiseGraphAddGenerator / UNoiseGraphMultiplyGenerator / UNoiseGraphMinGenerator / UNoiseGraphMaxGenerator / UNoiseGraphMinSmoothGenerator / UNoiseGraphMaxSmoothGenerator: Left source and right source or value. |
| Set LHSSource / Set LHSValue / Set RHSSource / Set RHSValue | Callable | UNoiseGraphSubtractGenerator / UNoiseGraphDivideGenerator: Either side can be a source or a value. |
| Set Smoothness Source / Set Smoothness Value | Callable | UNoiseGraphMinSmoothGenerator / UNoiseGraphMaxSmoothGenerator: Smoothness of the blend. |
| Set Value Source / Set Value / Set Pow Source / Set Pow | Callable | UNoiseGraphPowFloatGenerator: Base and exponent (source or value). |
| Set Value Source / Set Pow | Callable | UNoiseGraphPowIntGenerator: Base source and integer exponent. |
| Set ASource / Set BSource / Set Fade Source / Set Fade Value | Callable | UNoiseGraphFadeGenerator: Sources A and B and the fade amount. |
| Set Source / Set Scale | Callable | UNoiseGraphDomainScaleGenerator: Source and uniform scale. |
| Set Source / Set Offset Sources / Set Offset Values | Callable | UNoiseGraphDomainOffsetGenerator: Source and per-axis offsets. |
| Set Source / Set Rotation | Callable | UNoiseGraphDomainRotateGenerator: Source and rotation. |
| Set Source / Set Scale | Callable | UNoiseGraphDomainAxisScaleGenerator: Source and per-axis scale (Vector4). |
| Set Source / Set Offset | Callable | UNoiseGraphSeedOffsetGenerator: Source and seed offset. |
| Set Source / Set Remap from Lower Bound / Set Remap from Upper Bound / Set Remap to Lower Bound / Set Remap to Upper Bound | Callable | UNoiseGraphRemapGenerator: Source and remap ranges. |
| Set Source / Set Lower Bound / Set Upper Bound | Callable | UNoiseGraphConvertRGBA8Generator: Source and input range. |
| Set Source / Set Multiplier / Set Smoothness | Callable | UNoiseGraphTerraceGenerator: Source, terrace multiplier and smoothness. |
| Set Source / Set New Dimension Position Source / Set New Dimension Position Value | Callable | UNoiseGraphAddDimensionGenerator: Source and position of the new dimension. |
| Set Source / Set Dimension to Remove | Callable | UNoiseGraphRemoveDimensionGenerator: Source and removed dimension. |
| Set Source | Callable | UNoiseGraphGeneratorCacheGenerator: Source to cache. |
Enums
| Enum | Type | Values |
|---|---|---|
| ENoiseGraphDistanceFunction | Enum | Euclidean, Euclidean Squared, Manhattan, Hybrid, Max Axis. |
| ENoiseGraphCellularDistanceReturnType | Enum | Index 0, Index 0 Add 1, Index 0 Sub 1, Index 0 Mul 1, Index 0 Div 1. |
| ENoiseGraphDimension | Enum | X, Y, Z, W. |
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| Message box “Failed to load FastNoise library at path […]” at startup | The library binary for the current platform is missing. Check that Binaries/ThirdParty/FastNoise2/Win64 (or Linux) exists in the plugin folder; packaged games stage it automatically. |
| The plugin is not available on Mac, Android or iOS | NoiseGraph supports Win64 and Linux (x64) only; the noise library is not provided for other platforms. |
| C++ errors on UE 4.27 when including NoiseGraph headers | Add CppStandard = CppStandardVersion.Cpp17; to the module that includes them (inside #if !UE_5_0_OR_LATER if the module also builds on UE 5). |
| Crash or assertion when generating from a tree | Every source input of every node must be connected before generating; the native library does not validate missing sources. The same applies to an invalid or empty encoded node-tree string. |
| A generator stops working after a while | Generators are UObjects created in the transient package. Keep the tree's last generator in a variable or UPROPERTY(); sources are held by the native tree. |
| Values outside -1..1 | Fractals, blends and modifiers can exceed the unit range. Use the range returned by the Gen nodes or add a Remap node. |
Credits
© 2026 Alpha XP — alphaxp.net · Support: support@alphaxp.net. Built and verified for Unreal Engine 4.27 and 5.8.