Tags
Creators
Details
Licensed GPL-3.0-only
Published 2 years ago
Updated 5 days ago
All versions
1.4.0-26.2+neoforge
Release
terramath-1.4.0-26.2+neoforge5 days ago 24
Compatibility
Minecraft: Java Edition
26.2
Platform
NeoForge
Supported environments
Server-side
Client and server
Changes
Added
- Equation mode. A formula with a single
=(for exampley = 64 + 8 * sin(x / 10)) is treated as an implicit surface: the world is solid where the left side is not greater than the right side. Formulas may now usey, which makes caves, floating islands and arbitrary 3D shapes possible - Live 3D preview inside the settings screen. A rotatable voxel preview is rebuilt in the background while you type, and a notice is shown when there is not enough screen space for it
- Terrain settings are now available for all noise-based world types
- NeoForge support for 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.11, 26.1.2 and 26.2
- Builds for 1.21.4, 1.21.11, 26.1.2 and 26.2 on Fabric and Forge. One codebase now produces 23 jars: 1.20, 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.11, 26.1.2 and 26.2 for Fabric and Forge, plus every version from 1.20.4 on for NeoForge
Performance
- Compiled formulas are called through a typed interface
- Formula values are cached per column for formulas that do not use
y, which speeds up chunk generation - Noise lookups that do not depend on
y(simplex(x, z),perlin(x, 0, z)) are memoized per thread, so formulas that mix terrain noise withyno longer recompute it for every block - The formula cache is thread-safe
- The preview evaluates in parallel and builds its mesh off the render thread
Changed
- Random formula generator rewritten: it builds formulas from terrain archetypes, can crossbreed them, fits the scales to a sample and filters out dull results
- Dropped Architectury in favour of per-target Loom projects. Sources are split into
core,mc,loaderandversions - Smoothing now applies only in Advanced mode, as in 1.3.0, and can be set to 0 to turn it off. Before, it was always on at 0.55 with no way to change it outside Advanced, which also made plain formulas five times more expensive
- Building now needs JDK 25 for the 26.x targets (Gradle downloads it automatically)
Fixed
- The formula was applied only around spawn on some 1.20.1 worlds. It now covers every newly generated chunk and survives re-entering the world (#22)
floorandroundnow return real numbers, so1/floor(...)gives infinity instead of failing with an integer division by zero, andfloor(5)/2is2.5. Errors without a message no longer show up asSyntax error: null(#21)- Points where a formula is not finite (
Infinity,NaN) are treated as empty space instead of filling the world up to the build limit (#21) - A formula that fails to compile no longer hangs a dedicated server: it is logged and the world generates empty instead of crashing on a client-only class
Known issues
- Heavy formulas that use
ytogether with several noise calls can slow chunk generation
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:GnBLgjvP:5CQHJSWa"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:GnBLgjvP:5CQHJSWa"
}

