Terrarium
Pixel-Perfect Earth Terrain for Minecraft
Generate pixel-perfect worlds from real elevation data, with dynamic tile loading and customizable terrain shaping.
๐ Terrain Data Pipeline
- Source: AWS S3 (
elevation-tiles-prod/terrarium/{zoom}/{x}/{y}.png
) - Temperature and Precipitation Personal Source Hosted on GitHub, I compiled this using QGIS. (
clim-monthly/{month}/{zoom}/{x}/{y}
) This is a temporary hosting solution - Pixel-to-Block: 1 pixel = 1 Minecraft block.
- Tile System:
- Each tile =
256ร256
pixels (256ร256
blocks ingame). zoom
level determines tile count per axis (2^zoom
tiles).- Example:
zoom: 8
=2โธ = 256
tiles โ256ร256 = 65,536
blocks wide.
- Each tile =
๐๏ธ Downloads
- While it is still at Alpha quality, you can download indev test versions here
- Support is not guarunteed
- BlossomLib is required, and FabricAPI
๐๏ธ Technical Notes
- Scale Examples:
- zoom: 10 = 1,024 tiles โ 262,144ร262,144 blocks.
- zoom: 13 = 8,192 tiles โ 2,097,152ร2,097,152 blocks.
๐ฉ๏ธ Performance:
- Higher zoom = larger worlds but slower generation.
- Reduce zoom to 8โ10 for survival-friendly sizes.
World Size Comparison
- zoom: 10 (small - ~1:48) vs. zoom: 13 (planetary-scale - ~1:6).
๐ผ๏ธ Screenshots:
- Taken with v0.0.2-beta.1 + Conquest Reforged + Photon/UShader
Zoom: 13 | Height 768
๐ ๏ธ How It Works
- Tile Fetching: Downloads 256ร256 PNG tiles from AWS based on zoom and caches.
- Height Mapping: Converts RGB pixels to block heights, scaled by additionalAlt.
- Biome Placement: Vanilla biomes mapped using elevation (startingY + altitudeDropoff).
๐ง Configuration
/config/BlossomMods/Terrarium.json
:
```json
{
"zoom": 13, // 2ยนยณ tiles = 8,192 tiles wide (โ2M blocks at 256px/tile).
"worldHeight": 768, // Max Y height.
"startingY": 0, // Base height offset (negative for deeper oceans).
"adjustXoffset": 400000, // Where on the map the world should generate: spawn location essentially!
"adjustZoffset": 800000,
"ELEVATION_URL": "https://s3.amazonaws.com/elevation-tiles-prod/terrarium/", //elevation data source
"TEMPERATURE_URL": "https://raw.githubusercontent.com/ly-nxs/terrarium-data/refs/heads/main/tiles/climate-monthly/", //climate data source
"CACHE_DIR": "./tiles", //tile cache dir
"month": 0, //month for climate data, currently only january - 0, and february - 1
"noise_biome_scale": 0.01 //scale for biome noise factor
}