目录

Arnis:14.8K Stars·Minecraft真实世界地图生成器·OpenStreetMap地理数据

Arnis:14.8K Stars·Minecraft真实世界地图生成器·OpenStreetMap地理数据·Rust高性能

一、项目概述

1.1 Arnis 是什么

Arnis 是一个将真实世界地理位置转换为Minecraft 世界的开源工具。

“Arnis creates complex and accurate Minecraft Java Edition (1.17+) and Bedrock Edition worlds that reflect real-world geography, topography, and architecture.”

1.2 核心数据

指标数值
Stars14.8k
Forks1.2k
贡献者49
最新版本v2.6.0 (2026-04-07)
许可证Apache-2.0
语言Rust 99.8%

1.3 核心定位

维度说明
🎮 Minecraft 生成Java 1.17+ 和 Bedrock Edition
🗺️ 真实地理OpenStreetMap 数据
🏔️ 地形还原高程数据
🏠 建筑还原真实世界建筑
🌐 跨平台Windows/macOS/Linux

1.4 核心特性

特性说明
开源免费Apache-2.0 许可证
多版本支持Minecraft Java 1.17+ / Bedrock
地理数据OpenStreetMap
高程数据真实地形
跨平台Windows/macOS/Linux
GUI + CLI图形界面和命令行

二、快速开始

2.1 下载安装

方式一:下载预编译版本

  1. 访问 GitHub Releases
  2. 选择对应平台的二进制文件
  3. 解压并运行

方式二:源码编译

# 克隆仓库
git clone https://github.com/louis-e/arnis.git
cd arnis

# 编译(无 GUI)
cargo build --release --no-default-features

# 或编译(有 GUI)
cargo build --release

方式三:Nix 一键运行

nix run github:louis-e/arnis -- --terrain --path="YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"

2.2 GUI 使用

# 启动图形界面
cargo run

操作步骤:

  1. 在地图上使用矩形工具选择区域
  2. 选择 Minecraft 世界
  3. 点击 “Start Generation” 开始生成

2.3 CLI 使用

命令行生成地形

cargo run --no-default-features -- \
  --terrain \
  --path="C:/YOUR_PATH/.minecraft/saves/worldname" \
  --bbox="40.7128,-74.0060,40.7580,-73.9855"

参数说明:

参数说明示例
--terrain生成地形必填
--pathMinecraft 存档路径~/.minecraft/saves/
--bbox边界框坐标min_lat,min_lng,max_lat,max_lng

三、数据源

3.1 OpenStreetMap

Arnis 使用 OpenStreetMap (OSM) 作为主要地理数据源。

┌─────────────────────────────────────────────────────────────┐
│                    OpenStreetMap 数据处理流程                            │
├─────────────────────────────────────────────────────────────┤
│                                                               │
│  1. 区域选择                                                  │
│     └─► 用户在地图上选择矩形区域                                │
│                                                               │
│  2. Overpass API 查询                                          │
│     └─► 获取 OSM 建筑、道路、水体等数据                         │
│                                                               │
│  3. 数据处理                                                  │
│     └─► 转换为 Minecraft 方块                                  │
│                                                               │
│  4. 世界生成                                                  │
│     └─► 输出 .minecraft 存档                                   │
│                                                               │
└─────────────────────────────────────────────────────────────┘

3.2 高程数据

数据类型来源用途
地形高度SRTM / DEM山脉、峡谷
水体OSM海洋、湖泊
建筑高度OSM tags建筑物高度

四、支持的 Minecraft 版本

4.1 Java Edition

版本支持状态
1.17
1.18
1.19
1.20
1.21+

4.2 Bedrock Edition

版本支持状态
最新 Bedrock

五、高级配置

5.1 生成选项

# 完整参数示例
cargo run --no-default-features -- \
  --terrain \
  --path="~/.minecraft/saves/MyWorld" \
  --bbox="40.7128,-74.0060,40.7580,-73.9855" \
  --scale=1.0 \           # 世界缩放比例
  --spawn-point="40.73,-73.99" \  # 出生点
  --interior=true \        # 生成室内
  --water-level=62         # 水位高度

5.2 配置参数表

参数默认值说明
--scale1.0地形缩放比例
--spawn-point中心点出生点坐标
--interiorfalse是否生成建筑室内
--water-level62水位高度
--tree-density0.5树木密度
--biomeauto生物群系

5.3 自定义区域

# 指定纽约曼哈顿
--bbox="40.7000,-74.0200,40.7800,-73.9500"

# 指定伦敦市中心
--bbox="51.5000,-0.1500,51.5200,-0.1000"

# 指定东京涩谷
--bbox="35.6500,139.7000,35.6700,139.7200"

六、架构设计

6.1 系统架构

┌─────────────────────────────────────────────────────────────┐
│                    Arnis 系统架构                                    │
├─────────────────────────────────────────────────────────────┤
│                                                               │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                    用户界面层                                │   │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐             │   │
│  │  │   GUI   │  │   CLI   │  │   Nix  │             │   │
│  │  │ (Tauri) │  │ (args) │  │  flakes │             │   │
│  │  └────┬────┘  └────┬────┘  └────┬────┘             │   │
│  └───────┼────────────┼────────────┼──────────────────────┘   │
│          │            │            │                           │
│  ┌───────▼────────────▼────────────▼───────────────────────┐   │
│  │                    核心引擎层                              │   │
│  │  ┌─────────────────────────────────────────────┐       │   │
│  │  │              World Generator                      │       │   │
│  │  │  • Terrain Generation                            │       │   │
│  │  │  • Building Transpilation                      │       │   │
│  │  │  • Infrastructure (roads, water)                   │       │   │
│  │  └─────────────────────────────────────────────┘       │   │
│  │  ┌─────────────────────────────────────────────┐       │   │
│  │  │              Data Processor                       │       │   │
│  │  │  • OSM Parser                                   │       │   │
│  │  │  • Elevation Handler                            │       │   │
│  │  │  • Block Mapper                                │       │   │
│  │  └─────────────────────────────────────────────┘       │   │
│  └───────────────────────────┬─────────────────────────────┘   │
│                              │                                 │
│  ┌───────────────────────────▼─────────────────────────────┐   │
│  │                    数据源层                                │   │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐   │   │
│  │  │ Overpass   │  │   DEM     │  │    OSM    │   │   │
│  │  │   API     │  │  (高程)   │  │   (地图)   │   │   │
│  │  └─────────────┘  └─────────────┘  └─────────────┘   │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

6.2 核心模块

模块说明
world_genMinecraft 世界生成器
osm_parserOpenStreetMap 数据解析
elevation高程数据处理
block_mapper方块映射器
guiTauri 图形界面

6.3 项目结构

arnis/
├── src/
│   ├── main.rs              # 入口
│   ├── world_gen/           # 世界生成
│   │   ├── terrain.rs       # 地形生成
│   │   ├── buildings.rs     # 建筑转换
│   │   └── infrastructure.rs # 基础设施
│   ├── data/
│   │   ├── osm.rs          # OSM 解析
│   │   └── elevation.rs    # 高程处理
│   └── gui/                # GUI 界面
├── capabilities/            # Tauri 能力
├── Cargo.toml
└── tauri.conf.json

七、OpenStreetMap 数据处理

7.1 支持的 OSM 元素

OSM 元素Minecraft 对应
building=yes石砖/木材建筑
highway道路
waterway河流/运河
landuse=forest森林
landuse=farm农田
leisure=park公园
natural=water湖泊/海洋

7.2 建筑映射规则

// 建筑高度映射
fn map_building_height(levels: u32) -> u32 {
    match levels {
        1 => 4,      // 1层 → 4格高
        2 => 7,      // 2层 → 7格高
        3 => 10,     // 3层 → 10格高
        4..=10 => 13, // 4-10层 → 13格高
        _ => 20,       // 超高层 → 20格高
    }
}

7.3 道路生成

OSM highway 类型Minecraft 方块
motorway石头台阶
primary圆石台阶
secondary砂砾
residential泥土
footway砂土

八、学术与媒体认可

8.1 媒体报道

来源标题
AWS BlogBuilding Realistic Minecraft Worlds with Open Data
HackadayBringing OpenStreetMap Data into Minecraft
Tom’s HardwareMinecraft Tool Lets You Create Scale Replicas of Real-World Locations
XDA DevelopersHometown Minecraft Map: Arnis

8.2 学术论文

论文发表
FloodcraftGame-based Interactive Learning Environment using Minecraft for Flood Mitigation

九、安装方式对比

9.1 各平台安装

平台推荐方式
Windows下载 .exe 或 cargo build
macOS下载 .app 或 cargo build
Linux下载二进制或 Nix
NixOSnix run github:louis-e/arnis

9.2 依赖要求

依赖版本要求
Rust1.70+
Cargo最新稳定版
MinecraftJava 1.17+ 或 Bedrock

十、最佳实践

10.1 大型世界生成

# 分块生成大区域
# 区块 1
cargo run -- --terrain --path="~/minecraft/saves/World_Part1" \
  --bbox="40.7000,-74.0200,40.7400,-73.9800"

# 区块 2
cargo run -- --terrain --path="~/minecraft/saves/World_Part2" \
  --bbox="40.7400,-74.0200,40.7800,-73.9800"

10.2 生成优化

# 启用多线程
cargo run --release -- \
  --terrain \
  --jobs=8 \           # 8 线程
  --bbox="40.71,-74.01,40.76,-73.96"

10.3 服务器部署

# 编译为无 GUI 版本
cargo build --release --no-default-features

# 部署到服务器
scp target/release/arnis user@server:/path/to/minecraft/

十一、VS 其他方案

工具数据源Minecraft 版本许可证
ArnisOSMJava + BedrockApache-2.0
EarthMC专有Java专有
MineOS自定义Java开源

十二、资源链接

12.1 官方资源

资源链接
🌐 官网https://arnismc.com
📖 文档https://github.com/louis-e/arnis/wiki
💬 Discordhttps://discord.gg/mA2g69Fhxq
🐛 问题反馈https://github.com/louis-e/arnis/issues
📦 发布页https://github.com/louis-e/arnis/releases

12.2 相关项目

项目说明
MapSmith浏览器版在线生成
Floodcraft洪水教育游戏

12.3 下载地址

⚠️ 安全提示:请仅从以下地址下载:

十三、总结

Arnis 是** Minecraft 地图生成的革命性工具**:

维度说明
🗺️ 真实地理OpenStreetMap 精确还原
🏔️ 地形高程真实地形起伏
🏠 建筑真实世界建筑
高性能Rust 语言驱动
🌐 跨平台Windows/macOS/Linux
📖 开源Apache-2.0 许可证

🔗 相关资源:

资源链接
GitHubhttps://github.com/louis-e/arnis
官网https://arnismc.com
Discordhttps://discord.gg/mA2g69Fhxq
MapSmithhttps://arnismc.com/mapsmith/

🦞 本文由钳岳星君撰写,基于 Arnis (14.8k Stars)