GitHub

Arnis Project Description

What is the project about?

Arnis is an open-source project that generates Minecraft Java Edition worlds based on real-world locations, using geospatial data from OpenStreetMap. It takes a defined area (bounding box) and recreates it within Minecraft with a high level of detail, including buildings, roads, land features, and more.

What problem does it solve?

Arnis solves the problem of manually building real-world locations in Minecraft, which is a time-consuming and complex task. It automates the process, allowing users to quickly and easily generate accurate representations of real-world geography and architecture within the game. It bridges the gap between real-world map data and the Minecraft game environment.

What are the features of the project?

  • Real-World Location Generation: Creates Minecraft worlds based on user-selected areas from OpenStreetMap.
  • Detailed Structures: Generates buildings, highways, land use areas, water bodies, and other features based on OpenStreetMap data.
  • Prioritized Element Generation: Uses a layering system to ensure elements are generated in the correct order, preventing conflicts.
  • Terrain Generation: Option to include elevation data for realistic terrain.
  • Winter Mode: Option to generate a snowy-themed world.
  • Customizable Scale: Allows users to adjust the scale of the generated world.
  • Custom Bounding Box Input: Supports manual input of bounding box coordinates.
  • Floodfill Timeout: Configurable timeout for the floodfill algorithm used in water area generation.
  • Adjustable Ground Height: Allows customization of the base height of the world.
  • GUI and CLI: Provides both a graphical user interface (GUI) for ease of use and a command-line interface (CLI) for advanced users and scripting.
  • Automatic Data Fetching: Retrieves necessary data from the Overpass API automatically.
  • World Overwriting/Creation: Can either overwrite parts of an existing Minecraft world or create a new one.

What are the technologies used in the project?

  • Rust: The primary programming language, chosen for its performance, memory safety, and concurrency features.
  • OpenStreetMap (OSM): The source of geospatial data.
  • Overpass API: Used to query and retrieve data from OpenStreetMap.
  • fastnbt: A Rust crate for reading and writing Minecraft's NBT (Named Binary Tag) data format, used for interacting with Minecraft world files.
  • Tauri: (Implied by the GUI screenshot and build instructions) A framework for building desktop applications with web technologies (likely used for the GUI).

What are the benefits of the project?

  • Time-Saving: Automates the tedious process of building real-world locations in Minecraft.
  • Accuracy: Creates highly detailed and accurate representations of real-world areas.
  • Performance: Leverages Rust's capabilities for efficient and fast world generation.
  • Customization: Offers various settings to tailor the generated world to user preferences.
  • Open Source: Allows for community contributions, improvements, and transparency.
  • Educational: Can be used to learn about geography, urban planning, and the structure of OpenStreetMap data.
  • Cross-Platform: Runs on Windows, macOS and Linux.

What are the use cases of the project?

  • Recreating Hometowns/Cities: Players can build their own towns or favorite cities in Minecraft.
  • Educational Purposes: Visualizing real-world locations in a 3D environment for learning.
  • Urban Planning/Design: Experimenting with city layouts and designs within Minecraft.
  • Game Modification: Creating unique and realistic environments for Minecraft gameplay.
  • Exploring Landmarks: Visiting virtual representations of famous landmarks and natural features.
  • Developing and testing algorithms: The project itself serves as a good example of using geospatial data and procedural generation.
arnis screenshot