AWS Public Sector Blog
Building realistic Minecraft worlds with Open Data on AWS: How Arnis uses elevation datasets at scale

Arnis, an open source tool, transforms real-world locations into playable Minecraft worlds by processing geospatial data hosted on Amazon Web Services (AWS). By migrating to Terrain Tiles—a global elevation dataset on the Registry of Open Data on AWS—Arnis eliminated data retrieval costs while serving nearly 300,000 users.
To make terrain believable at a global scale, especially for areas with major elevation differences such as Niagara Falls, Arnis relies on high-quality and globally available elevation data. In 2025, Arnis migrated from a commercial elevation data provider to Terrain Tiles, hosted on Amazon Simple Storage Service (Amazon S3). This migration meant that Arnis could eliminate the costs for millions of tile requests needed to generate realistic locations. Through the Open Data Sponsorship Program, AWS covers the cost of data distribution for publicly available datasets like Terrain Tiles, enabling open-source projects like Arnis to access high-quality geospatial data at scale with no cost.
Figure 1: The German city Heidelberg generated using Arnis with noticeable elevation (Data for features from © OpenStreetMap)
Arnis: The real world in Minecraft
Arnis is available for all desktop platforms. Arnis users can select a region on a map and customize generation parameters before exploring their chosen location in a playable Minecraft world. Commonly generated locations include high-density cities, hometowns, amusement parks, or natural landscapes. The conversion from geospatial data to the game’s world data is computed locally on the user’s machine and typically completes within minutes, depending on area size.
Figure 2: The Arnis desktop application interface showing the map selection tool where users choose a geographic region
Implementing elevation data into an existing codebase
A highly requested feature for Arnis was adding elevation to complement geospatial map data (such as buildings, roads, rivers, and trees) sourced from open mapping providers. After months-long technical discussions with geographic information system (GIS) specialists, Arnis’s contributors designed and implemented an elevation processing pipeline. Rendering accurate terrain worldwide means fetching and decoding millions of elevation tiles over time as users generate city-scale areas.
Tiles encode elevation in a standard image format that Arnis decodes into a height grid for the selected area. With a commercial provider, requests beyond quota incurred costs the maintainer had to cover personally. Arnis contributors faced the risk of abandoning the feature after months of work. To keep elevation sustainable, Arnis needed predictable, open access.
Saving costs by migrating to Open Data on AWS
While searching for an alternative elevation data provider, Arnis contributors’ two most important requirements were high resolution and worldwide coverage. After months of staying with the previous commercial provider, they migrated to Terrain Tiles, an open Amazon S3 dataset that exposes Terrarium elevation tiles—a standard format for encoding elevation data in image pixels. This standardized format for global coverage aggregates multiple sources and matched the existing decoding path, enabling a smooth provider transition. With datasets listed on the Registry of Open Data on AWS available for access at no cost, Arnis now provides a stable elevation feature to nearly 300,000 users.
The migration also simplified Arnis code because they no longer required account-bound authentication for the data endpoint. Before the migration, users made approximately 2,000,000 elevation tile requests within a 3-month period. This equated to hundreds of dollars in that period. With the Terrain Tiles public dataset access, Arnis users are no longer constrained by per-request cost. Arnis now provides access to the elevation feature for all users by using Open Data on AWS capabilities, offering Amazon S3 reliability, open licensing, comprehensive data, and worldwide coverage.
How it works
The Arnis processing pipeline runs entirely on the client’s machine with no backend services or API keys. To include elevation data into the world, the elevation processing starts after the user selects a bounding box and generation parameters. It ends with Arnis using the validated, smoothed, and scaled height grid in the world generation to place geospatial map data on top of the terrain.
The elevation processing pipeline consists of the following eight steps:
- Calculate tile zoom and coordinates based on the selected area
- Check tile cache and fetch missing terrain tiles from Amazon S3
- Decode terrain tiles to meters (per pixel) and assemble the height grid
- Apply Gaussian smoothing to remove artifacts
- Fill NaN values by neighbor interpolation
- Guard against outliers using percentile-based clamping
- Compute min/max for adaptive vertical scaling and clamp to height limits
- Voxelize the map data on the heightmap and save the world
Figure 3: Diagram illustrating the eight-step elevation processing pipeline in Arnis
Before any network call, Arnis checks a local cache directory after deriving a suitable map detail level. Terrain tiles not previously downloaded are fetched using anonymous HTTPS reads from AWS Terrain Tiles and written to cache. Corrupt tiles are discarded and refetched to maintain data integrity. If the endpoint is temporarily unavailable, Arnis falls back to flat terrain so generation completes. Each pixel is then converted to meters above or below sea level using the Terrarium format formula, where R, G, and B represent the red, green, and blue color values:
elevation_m = (R * 256 + G + B/256) – 32768
These steps create a height grid in meters that corresponds to Minecraft’s block scale. Arnis applies a smoothing algorithm to remove artifacts before performing missing value correction to patch gaps. Data validation checks prevent stray values from becoming vertical spikes or pits. Finally, adaptive vertical scaling maintains mountainous regions within Minecraft’s build limits while preserving local relief in flatter areas.
After the terrain preprocessing is completed, geospatial map data elements such as buildings, roads, or waterways are processed and converted into three-dimensional blocks on top of the computed heightmap before being written into a Minecraft world save.
Figure 4: Taj Mahal in Agra, Uttar Pradesh, India, showing accurate elevation representation (Data for features from © OpenStreetMap)
What Arnis contributors learned and what’s next
The work on Arnis continues, with many new features in development and improvements to come. Integrating the elevation feature into the existing processing pipeline taught important lessons for the future development of the project.
- Open Data on AWS simplifies operations – Using publicly hosted data on Amazon S3 with anonymous reads removes API key management. This means contributors can focus engineering time on world generation quality and user satisfaction rather than maintaining backend services.
- Client-side caching matters – A lightweight client-side on-disk cache for terrain tiles dramatically reduces redundant reads and improves user experience.
- Error correction improves realism – Raw open data allows for maximum control and adaptation for Arnis purposes.
Besides working on a public Minecraft server where users can join to explore procedurally generated worlds without downloading Arnis as an application, contributors plan to ship several improvements in upcoming releases:
- Automatic Region selection – Ability to determine the closest AWS Region for elevation tiles, either US East (N. Virginia) –
us-east-1or Europe (Frankfurt) –eu-central-1, to follow AWS best practices and reduce latency of the data retrieval process. - Expanded landform detection – Ability to analyze elevation patterns combined with geospatial map data to provide more accurate representations, such as snowy mountains not fully captured in map data alone.
- Terrain-only mode – A mode that generates realistic elevation landforms while omitting geospatial features such as streets or buildings, enabling custom city planning, adventure map creation, or importing third-party structures.
Learn more
Want to try Arnis for yourself? Feeling inspired and want to see what you can build with Open Data on AWS? Here are some resources to get started:
- Learn more about Arnis and how to use it.
- Discover and share datasets that are available using AWS resources on the Registry of Open Data on AWS.
- View AWS blog posts on open data to see what new datasets are added to the Registry of Open Data and what others are doing with the data.



