// documentation

Documentation

How Meld turns a map selection into one seamless Minecraft world. Start here, then pick a guide that explains how each piece works.

What Meld is

Meld is a slim orchestrator around a custom Arnis fork. Arnis converts one OpenStreetMap bounding box into one Minecraft world. Meld adds the thing Arnis cannot do on its own: areas bigger than a single run. It tiles the area into a grid, builds the tiles with many Arnis runs at once, and melds them into one world with the same terrain height and building style everywhere.

It is one Flask process, one single page map UI, and a thin worker pool. A few hundred lines, not a framework.

How a build flows, end to end

You draw an area on the map. Meld does the rest in a few clear steps:

  1. It picks an origin, one fixed anchor that every block coordinate is measured from.
  2. It runs a quick elevation survey and locks one height range, so the land lines up everywhere.
  3. It splits the area into cells that fall on region file boundaries, so seams land in clean spots.
  4. It downloads the area's map data once and shares it to every cell, so nothing gets rate limited.
  5. It builds many cells in parallel with the Arnis fork, all using the same origin, seed, and height lock.
  6. It merges each finished cell into one master world, keeping only the part each cell owns.
  7. A drift guard refuses any cell that does not line up, so a built world is never corrupted.

The result is one Minecraft world with no cliffs and no seams. The guides below explain each piece.

Quickstart

One thing has to be installed first: Python 3.9 or newer. A one-click launcher does the rest, so it works the same on Windows, macOS and Linux.

  1. Get the code:
    git clone https://github.com/Teddy563/meld
    cd meld
  2. Start it for your operating system:
    • Windows: double-click meld.bat.
    • macOS: double-click meld.command in Finder. The first time, right-click it and choose Open once to get past Gatekeeper.
    • Linux: run ./meld.sh.
    The launcher builds a private .venv, installs the dependencies, fetches or builds the matching arnis generator for your machine, then opens http://127.0.0.1:5630. Re-running is instant. To see what is installed or missing without changing anything, run python meld_launch.py --check.
  3. Draw a rectangle on the map, or search a place. Meld auto centers the origin, tiles the selection into cells, and runs an elevation survey.
  4. Pick a cell size (regions per cell), then hit Generate world. Open the world in Minecraft from the save location shown in the panel.

Manual install (optional)

To wire it up by hand instead:

pip install -r requirements.txt
python server.py        (open http://127.0.0.1:5630)

Put a matching arnis binary next to server.py (on macOS and Linux it must be named arnis, no .exe), or download it from the Teddy563/arnis releases. Meld auto finds it at ./arnis, ../arnis, or the fork's target/release/ build.

The guides

Each page explains the why, the mechanism, and how to use it in the app.

// start here

Arnis at scale

What Meld adds to Arnis, in plain terms: bigger areas, many builds at once, and one world with no seams. Read this first if you already know Arnis.

// the core idea

How it works

The full pipeline: origin, the elevation lock, region aligned cells, map prefetch, parallel generation, the region perfect merge, and the drift guard. The mental model behind everything else.

// terrain

Elevation

The whole elevation system: the global height lock, region data packs you download once, selectable detail with Auto, the no-data hole repair, and the height preview that shows you what is cached.

// going big

Parallel generation

Cells and the worker pool, the CPU budget and staggered starts, stream to disk for huge cells, auto retry, spiral build order, and why small cells can finish faster.

// the generator

The Arnis fork

What the custom Arnis fork changes and the knobs you get: no buildings, road detail modes, automatic flat bridges, seam free rendering, offline elevation, a custom Overpass URL, and how to run map data offline or self-hosted.

// foliage

Tree packs

A region aware schematic tree pack: 1,959 hand made models across 448 species and 10 world regions, placed by location, with five size tiers, density driven groves, montane and wetland remaps, and reliable anchoring. Created by paleozoey.

// terrain shaping

Terrain height & snow

Two terrain knobs: vertical exaggeration to make mountains taller without widening the map, and snow modes (off, realistic, peaks, or a fixed height) to put the white where you want it.

// servers

Border & zones

Build real country borders for a server: preview concentric rings on the map, export WorldGuard regions, point files, and a ready border.sk Skript, then trim the world so it feels infinite but is bounded to the country.

// underground (meld depths)

Caves

One toggle carves a full vanilla-style cave system into every cell at generation time: caverns, tunnels, underground rivers and lakes, ores, geodes and eight themed cave biomes, deterministic and seam-safe across tiles.

// vertical range

Build height

Fit a world’s vertical range to the real terrain instead of vanilla’s −64 to 319: pick your Minecraft version, build above the ceiling and below the floor, set the range by hand, and keep every cell of a tiled world on identical geometry.

// servers

Server setup

World to running Leaf server in five confirmed steps: plan, stage, download (hash-verified), accept the EULA, start, with the border plugins pre-staged, format-correct world files, and an optional Voxy streamer so players see the whole map on join.

Looking for what changed between releases? That lives in the changelog.