monolithium 1.2.0

Finding the Largest Minecraft Alpha Monoliths
Documentation

Seed: 26829160 • (x: 0, y: 0) • Area: 1,044,848 blocks squared • First Millionaire Using Moderner Beta Alpha v1.1.2_01 Terrain on MC 1.21 • Distant HorizonsBliss Shaders

🔥 Description

Monoliths are a terrain generation bug that happened in the ancient Minecraft Infdev through Alpha 1.1.2_01 versions. They are a rare, often large, flat and tall structures, almost entirely made of stone, with a hidden ocean of water until bedrock beneath them.

Hidden in plain sight for 15 years, I wanted to know how rare they actually are, and find the biggest one!

  • This repository contains a brute-force search algorithm in Rust with a basic Python package for statistical analysis, alongside the most interesting findings of the journey.
  • Feel free to contribute speed, documentation, cuda port improvements.

Warn: This is a side project, I may have time to port the readme to a mkdocs website in the future.

Note: For a more technical explanation, see kahomayo/monolith-renderer 😉

📦 Installation

[!NOTE] Windows users will need to install Visual Studio Build Tools for linkers, or alternatively a MSYS2 environment with the package mingw-w64-ucrt-x86_64-gcc and compile in a UCRT64 shell.

Install Git and astral-sh/uv, open a terminal in some directory and run:

  • git clone https://github.com/Tremeschin/Monolithium && cd Monolithium
  • Rust part: uv run rustlith (commands)

You can pass any --<feature> explained in Cargo.toml for speedups, like --fast!

🔥 Commands

[!WARNING]

  • The code will shred your cpu, make sure you have a good cooling solution!
  • Large directories are created where you run it - any of target, build, release.

You can run any of rustlith (command) --help for options and information!

🔴 Find all Monoliths in a world

This will search a 8,388,608 blocks square in both positive X and Z directions. Note that all monoliths repeats every such value on any coordinate - there are 9 copies of each within the Far Lands on any given world!

  • rustlith search --depth seed --value 617

🟡 Find seeds with spawn monoliths

This will search for seeds that contains monoliths close to spawn.

  • Search 0 through 100k seeds: rustlith search linear -t 100000
  • Search 50k random seeds: rustlith search random -t 50000

🟢 2Pass heuristic method

This heuristic finds seeds with great potential for large monoliths, by only looking at the much rarer hill noise values, and discarding most seeds with poor x, y, z fractional parts offsets.

  • rustlith search --radius 8192 random -t 5000000 --candidates --fast (potential)
  • For each output, run rustlith search --step 512 seed -v <n> (real area)

There's a couple improvements to this method:

  • Since this discards millions seeds a second, rayon work-stealing parallelism becomes an overhead. Passing --chunks 1000 to search makes each work block process multiple seeds instead of one.
  • The hill wraps around 2**19 blocks, so --radius 262144 searches "the whole world"'s potential.
  • For long searches, filter out candidates with at least --area n to ignore bad shuffling seeds.
  • Largest monoliths are basically guaranteed to hit a lattice point multiple of 1024
  • At world::good_perlin_fracts, one can tweak the treshholds for a "good" seed.

Full command idea that broke many records:

# or 'cargo run --release --features candidates --features fast' in monolithium dir
$ QUALITY=250.0 rustlith --candidates --fast \
  search --chunks 1000 --hill --step 1024 --area 2200000 \
  random --total 100000000 \
> candidates.txt

# Many minutes/hours later..
$ rustlith search --depth --step 512 --threaded \
  file -i candidates.txt \
> final.txt

With enough --total seeeds, checking the best ones almost guarantees a record :)

⭐️ Showcase

[!NOTE] Area calculations are within 1% error, nearby monoliths are part of the same complex.

🔵 Largest monoliths anywhere

Area Seed X Z Date Found by
3,119,151 94116384388573 3185395 1401244 2025/10/06 Tremeschin
3,099,536 1184681998931 7361728 4530048 2025/10/18 Ferra
3,047,088 24388692462 2942560 4232256 2025/10/18 Ferra
3,012,432 1102581481210 6025536 4676000 2025/10/18 Ferra
2,987,360 34786730572 4236288 5081952 2025/10/18 Ferra
2,950,096 530268432158 1384896 8037440 2025/10/18 Ferra
2,892,928 873667255313 5711040 1334432 2025/10/18 Ferra
2,890,848 143779371652733 265920 5994240 2025/09/20 akatz-ai
2,649,984 130449915832690 786608 4163520 2025/09/20 akatz-ai
2,316,064 19907909658842 1572070 3668360 2025/09/18 Tremeschin
2,033,040 250673273362854 7337600 5768320 2025/09/18 Tremeschin
1,992,096 281351900698438 4716910 4718668 2025/09/18 Tremeschin

🔵 Largest monoliths near spawn

Area Seed Date Found by
2,240,624 38078992166078 2025/10/19 NathanVH8
1,993,040 269943915147763 2025/10/18 NathanVH8
1,975,712 35668441367715 2025/10/08 NathanVH8
1,745,664 4609608251 2025/08/13 Tremeschin
1,584,112 1847066092 2025/08/13 Tremeschin
1,420,816 2045872561 2025/08/13 Tremeschin
1,371,824 3847304212 2025/08/13 Tremeschin
1,369,360 1593912439 2025/08/13 Tremeschin
1,345,520 4563197188 2025/08/13 Tremeschin
1,305,472 4432659853 2025/08/13 Tremeschin

🔵 Lowest seed visible from spawn

Drum rolls.. 617. This seed contains a visible Monolith from spawn 🤯

🔵 Monoliths repeat every 8,388,608 blocks

For every monolith in a world there's 9x exact copies of them within the Far Lands:

  • A monolith at spawn appears on:
  • (-x, x) • ( 0, x) • ( x, x)
  • (-x, 0) • ( 0, 0) • ( x, 0)
  • (-x, -x) • ( 0, -x) • ( x, -x)

Sadly, the Far Lands override the monoliths, there's no such thing as a Far Monolith 😿

[!NOTE] For the keen among you, that value is 2**23 - this happens for a couple of reasons:

  • Ken Perlin's noise, unscaled, repeats every 256 units on any coordinate • (2**8)
  • There are 16 octaves on the hill noise, each octave halves the previous frequency, so the highest one repeats every (2**15) blocks (starting from multiplier 1).
  • Minecraft samples every 4 blocks, the depth scale is 100 but & 0xFF truncations cancels it at 2**20 Multiplying factors, 2**(8+15) = 2**23

🔵 How rare are they?

Spoiler: Not much, certain seeds are more likely to generate monoliths (anthropic principle confirmed?), but most contains at least half a million monolith complexes within the Far Lands (12,550,824 blocks squared).

🚀 Speeds

Monolithium is written in heavily parallelized Rust with the help of crates like Rayon for fearless concurrency and Ahash fast hashing, fully utilizing all available CPU resources one throws at it.

🦀 For a Ryzen 9 5900X 12c/24t, 2x3200 MT/s DDR4 CL16 2Rx8 system, one might expect:

  • 3.75 minutes to find all monoliths in a seed, probing every 128 blocks.
  • Search 1,150,000 seeds per second for spawn monoliths (approximated)
  • Search 440,000 seeds per second for spawn monoliths (accurate)

Such speeds scales about linearly with your hardware - for better or worse!

🔎 Future work

  • Investigate the correlation of Perlin coefficients to the likeliness and size of Monoliths.
  • Is it more efficient for CUDA to stream perlin coefficients than inline JavaRNG on CPU?
  • Make statistical analysis (Average size, Distribution) of Monoliths in seeds.
  • Make a HashMap<(int, int), Monolith> to avoid recomputing areas
  • Throw 2x Epyc 9965 at the code. I have a spare one for sure iirc.

♻️ Credits