Skip to content

A lightweight and efficient Java library for creating procedural noise, ideal for game development, simulation, and procedural content creation applications.

License

Notifications You must be signed in to change notification settings

ZapolyarnyDev/DynamicNoise

Repository files navigation

DynamicNoise

GitHub Release GitHub License

DynamicNoise is a flexible and lightweight library for procedural generation of 1D, 2D, and 3D noise maps. Perfect for game developers, visual effects artists, or anyone working with procedural content generation. Supports popular noise algorithms like Perlin and Simplex, with customizable parameters for finer control over results.

Latest release here.

Supported dimensions of the maps:

  • 1D
  • 2D
  • 3D

List of noises:

  • Perlin noise
  • Simplex noise
  • Value noise
  • White noise

Install

WARNING

The minimum working version is 1.0.1. Do not use 1.0.0, as it contains build errors.

Maven

<dependency>
    <groupId>io.github.zapolyarnydev</groupId>
    <artifactId>dynamicnoise-lib</artifactId>
    <version>VERSION</version>
</dependency>

Gradle

dependencies {
  implementation("io.github.zapolyarnydev:dynamicnoise-lib:VERSION")
}

Example of usage

Let's generate a two-dimensional 500X400 map (All library methods are described in JavaDocs):

Input parameters:

NoiseMap gameMap = new NoiseMap(new double[500][400]);
Noise noise = new SimplexNoise();
noise.setOctaves(6);
noise.setScale(5);
noise.setLacunarity(3);
noise.setPersistence(1.32);
NoiseGenerator generator = new NoiseGenerator(noise);
generator.generateForMap(gameMap, noise, 0, 1);
double[][] doubles = gameMap.getDoubleArray();
display2DNoise(doubles); // Change to your own rendering method 

Output result:

License

This project is licensed under the MIT License.

About

A lightweight and efficient Java library for creating procedural noise, ideal for game development, simulation, and procedural content creation applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages