terramath-1.4.0-1.21.11+fabric
Curse Maven Snippet
What's new
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
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

