Open-source project
louis-e/arnis avatar
louis-e/arnis

Arnis: turning OpenStreetMap data into Minecraft worlds

Generate any location from the real world in Minecraft with a high level of detail.

18,624 stars1,574 forksRustApache-2.0

At a glance

What is it?
Arnis is a Rust desktop tool that reads OpenStreetMap geometry and elevation data and writes a Minecraft Java, Bedrock or Luanti world folder. It is quick to try, and the full documentation, including every command line option, lives in the GitHub Wiki.
Who is it for?
Arnis fits players and researchers who want a real place reproduced in Minecraft without hand-building it, and who are comfortable reading the GitHub Wiki when the README stops short. It is the wrong tool if you need a headless generation service or a documented API contract, because the README documents a CLI and a GUI and nothing about embedding the generator.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • louis-e/arnis18,624 ★ · +588
Star history
Repository2026-09-212026-11-14
louis-e/arnis18k18.6k

588 Stars in the last 54 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The problem Arnis solves for Minecraft builders

Hand-building a real town in Minecraft is a surveying job disguised as a hobby. You measure streets, guess building footprints, and invent terrain heights. Arnis removes that step by reading OpenStreetMap and elevation data and writing the result directly into a world folder. The README describes the output as "complex and accurate Minecraft Java Edition (1.21.4+), Bedrock Edition, and Luanti (Minetest) worlds that reflect real-world geography, topography, and architecture".

The audience is narrow and specific. It is for players who want their hometown or a city they know, for teachers building a recognizable local map, and for anyone doing procedural generation experiments where the source data is real geography rather than noise. It is not aimed at people who want a Minecraft mod that streams terrain while you play. Arnis runs before you launch the game and produces a save directory; the game then loads that directory like any other world.

The repository carries tauri.conf.json at the root and Cargo.toml defines a default gui feature built on tauri, so the shape is a Rust core with a Tauri shell for the GUI.

How the generation pipeline works

The README states that "the algorithm processes geospatial data from OpenStreetMap as well as elevation data". The Cargo.toml dependency list fills in the mechanics. reqwest with blocking, json and query features handles HTTP calls, which is consistent with fetching map and elevation data. The parquet crate with snap and zstd features points at columnar elevation datasets, and the README links an AWS public sector blog post titled "Building realistic Minecraft worlds with Open Data on AWS: How Arnis uses elevation datasets at scale". The geo crate supplies geometry types, and dda-voxelize, pulled from a pinned git revision, does voxel rasterization. fastanvil and fastnbt write the region and NBT files that make up a Minecraft save.

The README says generation modes, winter and One World are command line options explained on the Command Line Usage wiki page.

Rayon and indicatif in the dependency list suggest parallel processing with a progress bar. The project lists modularity and performance optimization as key objectives, but the README does not publish generation timings, so treat any speed expectation as unverified until you run it on your own bounding box.

Installing Arnis and generating your first world

The README gives two routes. The first is to "download the latest release" from the GitHub releases page, which is the intended path for most users. The second is to compile it yourself, and the README supplies the commands.

For a GUI build, run the default feature set:

bash
cargo run --release

That compiles with the gui feature, which Cargo.toml defines as pulling in tauri, tauri-plugin-log, tauri-plugin-shell, tokio, rfd and tauri-build. The README describes choosing your area on the map with the rectangle tool and clicking Start Generation.

For a command line build, the README disables default features and passes an output directory and a bounding box:

bash
cargo run --release --no-default-features -- --output-dir="C:/YOUR_PATH/.minecraft/saves" --bbox="min_lat,min_lng,max_lat,max_lng"

The bounding box order is min_lat, min_lng, max_lat, max_lng. Point --output-dir at the saves folder of the Minecraft installation you will open.

If you use Nix, the README offers a one-liner that runs the flake directly:

bash
nix run github:louis-e/arnis -- --output-dir=YOUR_PATH/.minecraft/saves --bbox="min_lat,min_lng,max_lat,max_lng"

The repository ships flake.nix and flake.lock at the top level, so the flake is part of the project rather than an external recipe.

The generation modes and other command line options are documented on the Command Line Usage wiki page.

After generation finishes, open Minecraft, select the world and check the spawn area.

Where Arnis stops being the right tool

The README documents the CLI flags it uses in its own examples and sends readers to the Command Line Usage wiki page for all other options.

Version support is another boundary. The README says Java Edition 1.21.4+, which means older worlds and older servers are out. If your group plays on a version below that, Arnis will not help.

Scale is the third constraint. The README points readers who want "mobile generation or larger map sizes" at MapSmith, a browser-based service on arnismc.com. That is an admission that the desktop tool has a practical ceiling on area, which is unsurprising when the input is a bounding box query against a public API. If you need a whole region rather than a neighborhood, the project itself directs you elsewhere.

Finally, Arnis is a save generator, not a plugin. It does not run inside a server, it does not update a world you are already playing in, and nothing in the README describes incremental regeneration of an existing save.

How Arnis differs from other Minecraft map generators

The obvious comparison is with WorldEdit and similar in-game building tools. Those operate on a world you already have, with schematics and brushes you place by hand or script. Arnis never touches the game; it writes region files from geospatial data before the game starts. The difference in workflow matters more than the difference in output: with WorldEdit you iterate inside the game, with Arnis you regenerate the folder and reload.

The closer comparison is with the browser-based MapSmith service that the README links for "mobile generation or larger map sizes". Both come from the same project page, but the split is clear: Arnis is the local, open source, Apache-2.0 tool you compile or download, while MapSmith is the hosted option for people who cannot or do not want to install anything. Choosing between them is a question of whether you need the source or a bigger area.

A third point of comparison is any pipeline you would build yourself on top of Overpass and a voxel library. Arnis has already made those choices, including the pinned dda-voxelize revision and the parquet elevation path. The trade-off is that you inherit its decisions about level of detail and object coverage, and the README does not document how to extend or replace the object mapping.

Maintenance, releases and what the Apache-2.0 licence means here

The repository is not archived and the last push was on 2026-11-02, so the project is being worked on. The release history supports that: v3.2.0 shipped on 2026-09-09, v3.3.0 on 2026-10-05, and v3.4.0 on 2026-10-31. Three minor releases in roughly two months, each with a name (Horizon, Continuum, Momentum), suggests a steady cadence rather than long dormant stretches.

Upgrade cost is low for end users. You download a new release or rebuild from source; there is no server component, no database migration and no config file format described in the README that would need rewriting between versions. The CLI flags shown in the README are stable across the examples, though the README does not promise backward compatibility for flags between major versions.

The licence is Apache-2.0, and the README carries the standard notice text plus a copyright line for Louis Erbkamm covering 2022 to 2026. Apache-2.0 permits commercial use and modification and requires that you keep the licence and notice files. The repository includes both LICENSE and NOTICE at the top level. One thing worth checking before you redistribute anything: the Cargo.toml pins dda-voxelize to a specific git revision rather than a crates.io release, so its licence terms come from that repository, not from Arnis. That is a question for your own legal review, not something the README answers.

Editorial conclusion

Arnis fits players and researchers who want a real place reproduced in Minecraft without hand-building it, and who are comfortable reading the GitHub Wiki when the README stops short. It is the wrong tool if you need a headless generation service or a documented API contract, because the README documents a CLI and a GUI and nothing about embedding the generator. Before you rely on it, check that your target Minecraft Java version is 1.21.4 or newer, and that the generated world lands in the correct saves directory by opening it once in the launcher. The last push to the repository was on 2026-11-02.

Frequently asked questions

What is Arnis and what is it for?

Arnis generates Minecraft Java Edition (1.21.4+), Bedrock Edition and Luanti worlds from real-world OpenStreetMap and elevation data, so a real location appears as terrain and buildings in the game. It runs as a desktop application with a map-based GUI or as a command line tool.

How do I install Arnis for Minecraft?

The README says to download the latest release from the GitHub releases page, or to compile it yourself. Compiling with cargo run --release builds the GUI, and cargo run --release --no-default-features builds the command line version.

How do I install Arnis on a Mac?

The README lists cross-platform support for Windows, macOS and Linux as a project objective, and the Nix command nix run github:louis-e/arnis works on systems with Nix installed. The README does not give macOS-specific install steps beyond that.

How do I use Arnis with Minecraft Java Edition?

Point --output-dir at your .minecraft/saves folder and pass a bounding box with --bbox in the order min_lat,min_lng,max_lat,max_lng. The README states the output targets Java Edition 1.21.4 and newer.

Can I use Arnis for free?

Yes. Arnis is free and open source under the Apache License 2.0, and the README describes it as a free and open source project. The README also warns that the GitHub page and arnismc.com are the only official project websites.

Official sources

  1. License: Apache-2.0
  2. louis-e/arnis on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/louis-e-arnis.svg)](https://hysenlabs.com/projects/louis-e-arnis)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/louis-e-arnis.svg)](https://hysenlabs.com/projects/louis-e-arnis)

Was this useful?