Arnis: Minecraft-Städte mit OpenStreetMap erzeugen
(github.com/louis-e)- Arnis ist ein kostenloses Open-Source-Projekt, das Welten für Minecraft Java Edition 1.17+ und Bedrock Edition erzeugt, die reale Geografie, Topografie und Architektur widerspiegeln
- Der Generierungsalgorithmus verarbeitet Geodaten von OpenStreetMap sowie Höhendaten, um Gelände und Gebäude in Minecraft genauer nachzubilden
- Nutzer können auf der Karte mit dem Rechteck-Werkzeug ein Gebiet auswählen, eine Minecraft-Welt festlegen und anschließend
Start Generationdrücken; Einstellungen wie Weltmaßstab, Spawnpunkt und die Generierung von Gebäudeinnenräumen lassen sich ebenfalls anpassen - Wer Welten ohne Installation im Browser erstellen möchte oder größere Kartengrößen und mobile Generierung benötigt, kann MapSmith nutzen
- Offizielle Downloadquellen sind ausschließlich arnismc.com und das GitHub-Repository; Arnis-Downloads von anderen Websites sind inoffiziell und können schädlich sein
Von Arnis erzeugte Minecraft-Welten
- Arnis erzeugt Minecraft-Welten, die Geografie, Topografie und Architektur der realen Welt widerspiegeln
- Unterstützt werden Minecraft Java Edition 1.17+ und Bedrock Edition
- Reale Orte wie die eigene Heimatstadt, Großstädte oder Naturlandschaften lassen sich als Minecraft-Welten erstellen
- Das Projekt ist ein kostenloses Open-Source-Tool, das für den Umgang mit großen realen Geodatenmengen entwickelt wurde
- Der Generierungsprozess nutzt Geodaten von OpenStreetMap zusammen mit Höhendaten
- Ziel ist es, Gelände und Gebäude in Minecraft genauer darzustellen
Nutzung
- Nutzer können das neueste Release herunterladen oder das Projekt selbst bauen
- In der GUI wählt man auf der Karte mit dem Rechteck-Werkzeug das gewünschte Gebiet aus, legt eine Minecraft-Welt fest und klickt auf
Start Generation - Für die Generierung lassen sich mehrere Einstellungen anpassen
- Weltmaßstab
- Spawnpunkt
- Generierung von Gebäudeinnenräumen
- Wenn mobile Generierung oder größere Kartengrößen benötigt werden, erzeugt MapSmith Welten ohne Installation direkt im Browser
Dokumentation und Entwicklungsziele
- Die vollständige Dokumentation ist im GitHub Wiki verfügbar
- Technische Erläuterungen
- FAQ
- Beitragsrichtlinien
- Roadmap
- Die zentralen Ziele des Projekts sind Modularität, Performance, Dokumentation, Benutzerfreundlichkeit und Cross-Platform-Unterstützung
- Durch eine klare Trennung von Datenimport, Verarbeitung und Welterzeugung sollen Wartbarkeit und Erweiterbarkeit verbessert werden
- Performance-Optimierungen für eine schnelle Welterzeugung haben hohe Priorität
- Interne Code-Dokumentation soll Struktur und Logik verständlich machen
- Ziel ist eine für Endnutzer leicht zugängliche Nutzungserfahrung
- Das Projekt soll reibungslos unter Windows, macOS und Linux laufen
Build und Beiträge
- Das Projekt nimmt Beiträge auf allen Ebenen an, darunter Bugfixes, Performance-Verbesserungen, neue Funktionen und Dokumentationsverbesserungen
- Der übliche Beitragsprozess besteht darin, das Repository zu forken, Änderungen vorzunehmen und anschließend einen Pull Request einzureichen
- Ein Beispiel für einen Build über die Kommandozeile:
cargo run --no-default-features -- --terrain --path="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"
- Der GUI-Build wird mit folgendem Befehl ausgeführt:
cargo run
- Nix-Nutzer können das Projekt wie folgt direkt ausführen:
nix run github:louis-e/arnis -- --terrain --path=YOUR_PATH/.minecraft/saves/worldname --bbox="min_lat,min_lng,max_lat,max_lng"
- Sobald ein Pull Request gemergt wurde, werden die Änderungen in ein reguläres Update-Release aufgenommen
Bekanntheit, Lizenz und offizielle Quellen
- Arnis hat seit Dezember 2024 mehr Aufmerksamkeit erhalten und wurde in mehreren wissenschaftlichen und medialen Veröffentlichungen behandelt
- Building realistic Minecraft worlds with Open Data on AWS: How Arnis uses elevation datasets at scale
- Floodcraft: Game-based Interactive Learning Environment using Minecraft for Flood Mitigation and Preparedness for K-12 Education
- Hackaday: Bringing OpenStreetMap Data into Minecraft
- TomsHardware: Minecraft Tool Lets You Create Scale Replicas of Real-World Locations
- XDA Developers: Hometown Minecraft Map: Arnis
- Arnis wird unter der Apache License 2.0 veröffentlicht
- Die Zuordnung der Luanti-Blocknamen in
src/luanti_block_map.rsist von MC2MT abgeleitet und steht unter der GNU Lesser General Public License v2.1 oder neuer - Offizielle Projektwebsites sind ausschließlich arnismc.com und das GitHub-Repository
- Downloads von anderen Websites sind inoffiziell und können schädlich sein
- Arnis ist kein offizielles Minecraft-Produkt und wird weder von Mojang noch von Microsoft unterstützt oder mit ihnen in Verbindung gebracht
1 Kommentare
Meinungen auf Hacker News
Vor über zehn Jahren habe ich maps4cim entwickelt, ein Open-Source-Projekt für einen Stadtgenerator für Cities in Motion 2; Straßen und Gebäude stammten aus OSM-Daten, Höhen aus NASA-SRTM-Daten.
Die OSM-Seite ist deutlich komplexer und die Daten ändern sich täglich, aber wenn man dieselbe Anfrage an die Overpass API schickt, bekommt man weiterhin aktuelle Daten im erwarteten Format.
NASA dagegen hat irgendwann den öffentlichen Zugriff auf die gemeinfreien SRTM-Daten geschlossen und sie hinter einem nicht-REST-basierten Webservice versteckt, der nur registrierten Nutzern zugänglich ist.
Wären die Daten nicht frei und einfach zugänglich gewesen, hätte ich so ein Open-Source-Projekt gar nicht erst begonnen; sobald Einstiegshürden entstehen, verlieren wir all die guten Werkzeuge, die auf den Schultern von Riesen hätten entstehen können.
Ich wünsche mir, dass Projekte wie OSM, die den Open-Data-Gedanken praktisch umsetzen, noch stärker werden.
1: https://github.com/Klamann/maps4cim
Dank der gamifizierten Quests von StreetComplete oder des browserbasierten Editors auf osm.org kann jeder mit Internetzugang innerhalb weniger Minuten Orte in der Umgebung korrigieren.
Dass es aber überall, wo man hinkommt, noch etwas zu verbessern gibt, bedeutet auch, dass es nicht genug Mitwirkende gibt.
Das große Problem ist, dass es keine führende App gibt, die Menschen ständig nutzen und in der sie dabei Fehler entdecken; mit Organic Maps ändert sich das langsam, und ich habe gehört, dass Teslas automatisches Einparken ebenfalls neue Leute zum Mapping bringt.
https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
Geonames bietet ebenfalls einen Dienst zur Höhenabfrage auf Basis von SRTM und anderen Daten an: http://www.geonames.org/export/web-services.html
Wenn man große Gebiete sehr fein abtasten muss, kann man allerdings an API-Limits stoßen oder den Dienst überlasten.
Trotzdem zeigt es, dass Dritte den Datensatz vorhalten und darauf eine API anbieten können.
Soweit ich weiß, enthält die GPL keine Klausel gegen falsches Heldentum.
Ausnahmen gibt es allerdings, wenn Ausgaben Teile des Quellcodes des Programms selbst enthalten, wie bei Lexer-/Parser-Generatoren; die GNU-Bison-Lizenz enthält dafür eine ausdrückliche Ausnahme.
In Minecraft gibt es Redstone und Command Blocks, und Leute haben damit auch Dinge wie einen 8086 oder Tetris gebaut.
Ich frage mich, ob es Grenzfälle gibt, in denen eine von so einem Weltgenerator erzeugte Welt von der GPL „infiziert“ wird.
Persönlich bevorzuge ich aus solchen Gründen BSD-/MIT-Lizenzen. Ich möchte keine Anwaltskosten für einfache Fragen wie „Darf ich dieses Programm tatsächlich benutzen?“ verursachen.
Ich würde das gern nutzen, damit meine Kinder sich in unserer Nachbarschaft besser auskennen.
Ich bin es leid, ständig nach Straßennamen zu fragen oder danach, wo ich abbiegen muss; manchmal lasse ich mir sogar eine vollständige Turn-by-Turn-Navigation geben.
Bisher haben wir uns nur ein paar Mal verfahren.
Vermutlich ist er aber nicht so detailliert wie dieses Projekt.
[0]: https://minecraft.ign.fr/
https://youtube.com/watch?v=vl_MExz52jA
Und ein Video zum selben Thema mit einer kindlich wirkenden Erklärung:
https://youtu.be/7JYjxSfvJQk?feature=shared
Da es bereits eine Python-Implementierung gab, wirkt es vernünftig, gleich am Anfang zu erklären, warum diese Version anders ist.
Es waren nicht einmal echte Wörter, die mit J begannen; man hat einfach vor irgendeinen Namen ein J gesetzt.
Python wird fast genauso oft erwähnt.
Vielleicht wäre es sogar einfacher zu unterscheiden, ob Ortsverweise in Form von Wörtern oder
(lat,long,game)Positionen im Spiel sind oder virtuelle Orte im Spiel mit demselben Namen.In der Dokumentation zu Google Maps GlTF 3D Tiles https://developers.google.com/maps/documentation/tile/3d-til... steht, dass man zum Rendern der fotorealistischen Tiles von Google einen 3D-Tiles-Renderer verwenden muss, der Urheberrechtshinweise unterstützt; CesiumJS oder Cesium for Unreal können dafür genutzt werden.
Als Open-Source-Spiel im Minecraft-Stil mit Python-API gibt es sensorcraft; es basiert auf pyglet für OpenGL 3D und behandelt
self.add_block(), Schwerkraft, KI, Schaltungen usw.Ich frage mich auch, ob WebGL portabler ist als OpenGL und ob sich pyglet nach WASM kompilieren lässt.
Soweit ich weiß, lassen sich panda3d und godot leicht nach WASM kompilieren.
Als Python-Open-Source-Physik-Engine, die für einen Minecraft-Klon nützlich sein könnte, gibt es Genesis-Embodied-AI/Genesis: „Genesis: A Generative and Universal Physics Engine for Robotics and Beyond“ https://news.ycombinator.com/item?id=42457213#42457224
In „Approximating mathematical constants using Minecraft“ https://news.ycombinator.com/item?id=42319313 kommen auch
luanti,minetest,mcpiundMCPI-Revival/minecraft-pi-rebornvor.Ich habe auch die OSM-Daten überprüft, was es noch seltsamer macht.
Die Schule meines Kindes dagegen ist nicht weit entfernt und wird ziemlich detailliert gerendert.
Bei weiterer Nachforschung scheint dieses Gebäude in OSM als Multipolygon mit zwei verschiedenen Layern gerendert zu werden, während der Rest offenbar auf Basis von Knotenmengen gerendert wird.