SurgeNoise | Perlin Noise Module [Domain Warping, Infinite Dimensions]

SurgeNoise ModuleScript: Infinite Dimensions with Domain Warping

Get SurgeNoise Module Here


Examples using this module with one of the projects I’m working on:

image


The SurgeNoise module script is a versatile noise generation tool that provides a seamless way to create noise with infinite dimensions. It offers a customizable and efficient approach to generating noise in any number of dimensions, making it suitable for a wide range of applications such as procedural terrain generation, texture synthesis, and more.

The script provides an implementation of multi-dimensional noise generation using the Perlin noise algorithm. It includes the ability to apply domain warping, allowing you to introduce intricate patterns and variations to the noise output. The module script is designed to be user-friendly and highly adaptable, enabling developers to effortlessly incorporate it into their projects.


Usage Tutorial:

Generating Noise: The primary function provided by the SurgeNoise module is SurgeNoise.New(...). This function allows you to generate noise with an infinite amount of values, the 1st one being optionally the settings table [you do not need to include a settings table as the first argument if you don’t want to configure one]

Example usage with settings:

local Seed = math.random(10000000)

local Settings = {
     WarpDomain = { -- You can leave this as an empty table for default values
          Scale = 2,
          RatioDiff = 1.5
     }
}

local Value = SurgeNoise.New(Settings, X, Y, Z, W, T, Seed)

Example usage without settings or specifications:

local Value = SurgeNoise.New(X, Y, Z, W, etc)

Customizing Domain Warping (Optional): If you want to add domain warping to your noise generation, you can specify the WarpDomain settings within the Settings table. Adjust the Scale and RatioDiff parameters to control the intensity and pattern of domain warping.


Tips:

  • Experiment with different dimensions, seed values, and domain warping settings to achieve the desired noise output.
  • Utilize the generated noise values creatively in your projects to add natural-looking randomness and variety.

:warning: This module is still being worked on and I’m open to suggestions for future implementations

14 Likes

This is a pretty cool module. It kinda surprises me no one talks about it.

1 Like