Overview#
Simplex Terrain Generation is a technical world generation mod designed to replace the standard Minecraft terrain engine with a heightmap-based system. It focuses on extreme configurability, allowing players to define the shape of their world using various noise algorithms and mathematical modifiers.
Unlike vanilla generation, which uses 3D Perlin noise to create caves and overhangs, this mod primarily uses a 2D heightmap normalized between Y=0 and Y=256. This approach allows for much faster generation speeds and massive, sweeping mountain ranges that can reach the world height limit. To use the mod, players must select the Simplex Terrain world type during world creation. For server owners, the level-type in server.properties should be set to simplex.
Noise Implementations#
The mod includes several distinct noise algorithms, each producing a different visual style of terrain. These can be selected and layered within the configuration file.
| Noise Type | Description | Visual Characteristic |
|---|---|---|
| OpenSimplex2 | An improved version of Simplex noise. | Smooth, natural-looking hills with fewer directional artifacts. |
| Perlin | The classic industry standard for gradient noise. | Standard 'Minecraft-like' rolling hills. |
| Cubic | A smoother, higher-order interpolation noise. | Very soft, rounded terrain features. |
| Value | Noise based on a lattice of random values. | Blockier, more structured terrain. |
| Worley (Cellular) | Distance-based noise often used for stone or water patterns. | Sharp ridges, 'cracked' earth, or cellular pockets. |
Configuration Documentation#
The core of the mod is the simplexterrain.json file located in the config folder. This file allows you to define the 'fractal' nature of the world.
Core Parameters
- Frequency: Controls the scale of the terrain. Lower values create massive, sprawling biomes; higher values create frequent, small hills.
- Amplitude: Controls the maximum height of the noise.
- Octaves: The number of layers of noise combined. More octaves result in more detail (cragginess) but increase calculation time.
- Lacunarity: Determines how much the frequency increases with each octave.
- Persistence (Gain): Determines how much the amplitude decreases with each octave. High persistence makes the terrain very rough.
Fractal Types
- FBM (Fractal Brownian Motion): The standard method of summing octaves.
- Billow: Produces 'bubbly' terrain by taking the absolute value of the noise.
- Rigid-Multi: Produces sharp, mountain-like peaks by inverting the billow noise.
Biome Regions#
Biomes are distributed based on the final height calculated by the noise engine. This creates a natural progression from deep oceans to frozen peaks. The world is divided into 7 vertical regions:
- Y0 – Y29: Deep Ocean variants.
- Y30 – Y60: Standard Ocean variants.
- Y63 – Y66: Beaches and coastal biomes.
- Y67 – Y90: Lowland biomes (Plains, Forests).
- Y91 – Y140: Mid-altitude biomes (Hills, Savannas).
- Y141 – Y190: High-altitude biomes (Mountains, Taiga).
- Y191 – Y256: Alpine biomes (Snowy Mountains, Peaks).
As the height increases, the mod automatically weights the biome selection toward colder climates to simulate realistic temperature drop-off.
Noise Modifiers#
Noise modifiers are mathematical functions applied to the raw noise output to warp and shape the terrain. They can be nested to create complex effects.
- Add / Subtract / Multiply / Divide: Basic arithmetic to shift or scale the heightmap.
- Abs: Converts all negative noise values to positive, creating 'valley' floors.
- Clamp: Forces all values into a specific range (e.g., preventing terrain from going above Y=200).
- Exponent: Raises the noise to a power, making peaks sharper and valleys flatter.
- Select: Uses a control noise to choose between two different noise sources (e.g., using Worley noise to decide where Perlin mountains should spawn).
- Terrace: Quantizes the noise values into discrete steps, creating 'plateau' or 'canyon' effects.
Post Processors#
Post processors are effects applied after the initial heightmap is generated but before blocks are placed.
- Erosion: Simulates the flow of water over time, carving small gullies and depositing sediment at the base of hills for a more realistic look.
- Smoothing: Runs a blur pass over the heightmap to remove jagged edges or 'noise artifacts' from high-frequency generation.
- River Carver: A specialized processor that identifies low-lying paths and carves them deeper to ensure continuous river systems.
Optimization#
Because Simplex Terrain Generation can be computationally expensive, several optimization features are included:
- Threading: The mod can utilize multiple CPU cores to generate chunks in parallel. This is controlled by the
thread_countsetting in the config. - Caching: The
use_cachesetting stores recently calculated noise values to prevent redundant math when adjacent chunks are generated. - FastNoise Integration: The mod utilizes optimized Java implementations of noise functions to minimize the performance impact on the server's tick rate.
Mechanics & Implementation#
The mod operates by intercepting the chunk generation phase. It calculates a 16x16 grid of height values for every chunk.
- Sampling: The engine samples the configured noise at the X/Z coordinates.
- Modification: Any active Noise Modifiers are applied to the sample.
- Post-Processing: The heightmap is passed through erosion or smoothing filters.
- Block Placement: The engine fills the column from Y=0 to the calculated height. By default, it uses Stone as the filler, Dirt as the sub-surface, and Grass as the top layer, though these are biome-dependent.
- Decoration: Standard Minecraft features (trees, ores, structures) are then placed on top of the generated surface.