Living Horizon
Living Horizon gives life to the distance. Minecraft stops drawing animals and players a few chunks away; far-terrain mods such as Voxy and Distant Horizons stretch the landscape to the horizon, but that landscape stays empty and still. With Living Horizon, animals graze on the far hills, villagers live around far-off villages, birds cross the sky and other players keep walking, with their skin, armour and mount, far past the render distance.
The mod is installed in the player’s game and works on any server, with nothing to install there; on the server side, an optional data pack makes positions exact at any distance. It runs on Fabric, Quilt, NeoForge and Forge, from Minecraft 1.20 to 26.3 (53 builds), out of a single source tree built with Stonecutter. It also works without a far-terrain mod: play with minimal render and simulation distance and keep a living world, which wins back frames per second. A personal, source-available project, published on CurseForge and Nexus Mods, with over 5,500 downloads in its first week. It has its own landing site.

Left without the mod, right with it: same view, same settings (render distance 12, shader pack).
What the mod does
- Players visible from afar. They keep walking where they are, past the range where the server stops sending them, with their skin, cape, elytra, armour and whatever they ride. A player who logged off stays asleep where they left.
- Mobs living in the distance. Animals, villagers and golems graze and wander around far-off villages, hidden by the terrain pixel by pixel, shaders included.
- A living sky. Flocks, geese in a V, gulls on the coast, pigeons on buildings, ducks on lakes, bats at night… and now and then a flying saucer taking a cow.
- An optional data pack for servers, which makes positions exact at any distance.
- Everything is configurable in game: which mobs, which birds, how many, how far, with quality presets.

Without the mod: the plain empties after a few chunks.

With the mod: the herds stay visible up to the horizon.
Technical challenges
Knowing where things are, without asking the server. The client only receives entities within a limited range. For players, the mod uses the game’s locator bar: past 332 blocks it only gives a direction. A direction is a line, not a point; but as you move, you see that line from somewhere else and the lines cross. A particle filter estimates the distance that way: a minute of walking sideways places a player 1.7 km away to within 25–190 blocks. For mobs, each client remembers those it met; in single player, a scan reads the saved chunks directly, without loading or generating them.
Bringing thousands of mobs to life without AI. No AI runs at all: animations are written once, laid on the terrain read around the mob (from loaded chunks or from Voxy / Distant Horizons), turned eight ways and kept only if they never leave the ground, never drop off a cliff and never cross a fence. While they play, only one point of the animation is computed. The hand-over with the real mob sent by the server never leaves a gap or a jump.
Drawing on other mods’ terrain, without ever changing it. Voxy and Distant Horizons draw their terrain into their own buffers. For distant mobs to hide behind their hills, the mod reads their depth, merges it into the game’s just long enough to draw the entities, then puts everything back before anyone reads it again. All of this has to live alongside Iris and shader packs (Photon, Complementary…), the game’s Vulkan renderer, Photon’s TAAU upscaling and 26.2’s reversed depth: a project rule forbids changing a single pixel of what other mods draw.
Impostors to carry the load. Past a set distance, a mob is no longer drawn as a 3D model but as a flat picture turned to the camera. Those pictures are baked by the game’s own renderers (so skins, armour, resource packs and other mods’ models follow by themselves), from eight angles, with mip levels computed by hand so that a figure a few pixels tall is neither a ghost nor fatter than its model. Mobs hidden by terrain are skipped through GPU occlusion queries, read a frame or two late so they never stall.

Load test: hundreds of distant villagers on screen.
One source tree, 14 game versions, 4 loaders
The mod is built with Stonecutter, a Gradle plugin for multi-version builds: the code is written once, conditional comments (//? if >=26.1 {, //? if neoforge {…) pick the variants, and every Minecraft version × loader pair becomes a Gradle project of its own, built and tested by CI. All with Mojang’s official mappings: Java 17 up to 1.20.4, Java 21 from 1.20.5, Java 25 on 26.x. Before 1.21.2 the game has no entity render states: the mod ships stand-ins with the same names. Before 1.21.6 it has no redirectable render target: impostors are baked into a target of the mod’s own. What differs between loaders (events, config folder) lives in a single platform/ layer.
Quality, CI/CD and in-game testing
- GitHub Actions builds and tests every target on every pull request, and attaches the jars as an artifact.
- Automatic versioning and publishing: the version is derived from conventional commits; a merge into
mainbuilds each target on its own runner, creates the GitHub release, publishes to CurseForge and Nexus Mods (through its API) and announces the version on Discord, in English and French.developproduces pre-releases. - JUnit tests on the pure logic, and a test that compiles every function of the data pack with the game’s own command dispatcher.
- Tests in the real client: the game is started headless (Xvfb, software OpenGL), driven by scenarios and screenshotted. Unit tests do not show what the game draws; screenshots do.
A project built with AI
Like MC Skin Creator, the mod is developed with Claude Code. I set the rules (never touch other mods’ rendering, send nothing to the server, a fallback rather than a dead end when an API is missing) and I validate in game. Every bug found while debugging becomes an entry of a checklist in the repository, which the next session reads first: the project remembers its pitfalls.
Unofficial project. Not approved by or associated with Mojang or Microsoft. “Minecraft” is a trademark of Mojang Studios.
