| Crates.io | fastnoise2 |
| lib.rs | fastnoise2 |
| version | 0.3.2 |
| created_at | 2024-08-14 02:34:32.204893+00 |
| updated_at | 2025-09-25 13:08:44.157765+00 |
| description | A safe Rust wrapper for FastNoise2, a node-based noise generation library optimized with SIMD. |
| homepage | |
| repository | https://github.com/Lemonzyy/fastnoise2-rs |
| max_upload_size | |
| id | 1336785 |
| size | 404,025 |
fastnoise2 provides an easy-to-use and mostly safe interface for the FastNoise2 C++ library, which provides modular node graph-based noise generation using SIMD.

This crate acts as a wrapper around fastnoise2-sys, the unsafe bindings for FastNoise2.
Here is an example of a encoded node tree, exported by FastNoise2's NoiseTool.
use fastnoise2::SafeNode;
let (x_size, y_size) = (1000, 1000);
let encoded_node_tree = "EQACAAAAAAAgQBAAAAAAQBkAEwDD9Sg/DQAEAAAAAAAgQAkAAGZmJj8AAAAAPwEEAAAAAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MTD4AMzMzPwAAAAA/";
let node = SafeNode::from_encoded_node_tree(encoded_node_tree).unwrap();
// Allocate a buffer of enough size to hold all output data.
let mut noise_out = vec![0.0; (x_size * y_size) as usize];
let min_max = node.gen_uniform_grid_2d(
&mut noise_out,
-x_size / 2, // x offset
-y_size / 2, // y offset
x_size,
y_size,
0.01, // frequency
1337, // seed
);
// use `noise_out`!
You can also manually code a node tree using FastNoise2's metadata system, either with Node, or by combining generators, see SafeNode.
Take a look at examples to find out more.
fastnoise2-sys, the underlying bindings for fastnoise2, uses a build script that follows a specific order of preference for compiling and/or linking the FastNoise2 library:
build-from-source feature is enabled.FASTNOISE2_LIB_DIR environment variable is set to /path/to/lib/, that path will be searched for static FastNoise library.To build FastNoise2 from source using fastnoise2-sys, ensure you have:
FASTNOISE2_SOURCE_DIR environment variable is generally not needed as fastnoise2-sys includes the FastNoise2 source code as a Git submodule. If you need to use a different source directory, set FASTNOISE2_SOURCE_DIR to point to the root of the FastNoise2 source code.