Overview of the Minecraft multi noise system - jacobsjo/snowcapped GitHub Wiki

This page describes how the Multi-Noise system in Minecraft works.

Inputs

The goal of the multi-noise system is to determine which biome is supposed to be generated at each X, Y, Z position. Do to this, the system uses 6 inputs named:

  • temperature
  • humidity
  • erosion
  • continentalness
  • weirdness
  • depth

Regardless of their name, all 6 inputs behave the same way. The default input calculations in vanilla Minecraft calculate a noise for the first 5 inputs and use the depth below the surface for depth

Biome selection

To determine the biome, the system first calculates the value for each of the inputs at the given X, Y, Z position. Then, based on the configuration, the biome that best fits the inputs is chosen. To configuration consists of a list of biomes with ideal inputs (usually giving a minimum and maximum value for each input). If the input is not ideal for any listed biome, the biome with the closest (euclidian) distance between the input and the ideal ranges is used. Note that the same biome can be listed multiple times to allow for multiple ideal ranges.

The vanilla configuration defines biomes with ideal parameters covering the entire possible input ranges, at depth 0; and some additional entries for cave biomes.

Snowcapped is an editor for these configurations.

Example

For example, the following entry defines the ideal inputs for the minecraft:mushroom_fields biome:

{
  "biome": "minecraft:mushroom_fields",
  "parameters": {
    "temperature": [-1.0, 1.0],
    "humidity": [-1.0, 1.0],
    "erosion": [-1.0, 1.0],
    "continentalness": [-1.2, -1.05],
    "weirdness": [-1.0, 1.0],
    "depth": [0.0, 0.0],
    "offset": 0.0
  }
}

Here, the minecraft:mushroom_fields biome is placed

  1. in a very large range of inputs temperature, humidity, erosion, and weirdness (basically all possible inputs)
  2. only at very extreme negative continentalness values
  3. at depth 0 (i.e at the surface).