Arnis, une technologie de génération de villes Minecraft avec OpenStreetMap
(github.com/louis-e)- Arnis est un projet open source gratuit qui génère des mondes pour Minecraft Java Edition 1.17+ et Bedrock Edition reflétant la géographie, le relief et l’architecture réels
- L’algorithme de génération traite les données géospatiales d’OpenStreetMap et les données d’altitude afin de reproduire plus fidèlement les terrains et les bâtiments dans Minecraft
- L’utilisateur peut sélectionner une zone sur la carte avec l’outil rectangle, choisir un monde Minecraft, puis cliquer sur
Start Generationpour lancer la génération ; il est aussi possible d’ajuster des paramètres comme l’échelle du monde, le point d’apparition et la génération des intérieurs de bâtiments - Pour créer un monde dans le navigateur sans installation, ou si l’on veut des cartes plus grandes et la génération sur mobile, on peut utiliser MapSmith
- Les seuls canaux de téléchargement officiels sont arnismc.com et le dépôt GitHub ; les téléchargements d’Arnis depuis d’autres sites sont non officiels et peuvent être malveillants
Les mondes Minecraft créés par Arnis
- Arnis génère des mondes Minecraft reflétant la géographie, le relief et l’architecture du monde réel
- Les plateformes prises en charge sont Minecraft Java Edition 1.17+ et Bedrock Edition
- Il permet de transformer des lieux réels, comme sa ville natale, une grande métropole ou des paysages naturels, en mondes Minecraft
- Le projet est un outil gratuit et open source conçu pour traiter des données géographiques réelles à grande échelle
- Le processus de génération utilise à la fois les données géospatiales d’OpenStreetMap et des données d’altitude
- Son objectif est de rendre plus fidèle la représentation des terrains et des bâtiments dans Minecraft
Mode d’utilisation
- L’utilisateur peut télécharger la dernière release ou compiler le projet lui-même
- Dans l’interface graphique, il sélectionne la zone souhaitée sur la carte avec l’outil rectangle, indique le monde Minecraft, puis clique sur
Start Generation - Plusieurs paramètres de génération peuvent être ajustés
- Échelle du monde
- Point d’apparition
- Génération des intérieurs de bâtiments
- Si la génération sur mobile ou des cartes de plus grande taille sont nécessaires, MapSmith permet de générer des mondes dans le navigateur, sans installation
Documentation et objectifs de développement
- La documentation complète est disponible dans le wiki GitHub
- Explications techniques
- FAQ
- Guide de contribution
- Feuille de route
- Les objectifs clés du projet sont la modularité, les performances, la documentation, l’utilisabilité et la prise en charge multiplateforme
- Il vise à séparer clairement l’import des données, leur traitement et la génération du monde afin d’améliorer la maintenabilité et l’extensibilité
- Il met l’accent sur l’optimisation des performances pour générer rapidement des mondes
- Il cherche à clarifier la structure et la logique via la documentation interne du code
- Il vise une expérience facile à prendre en main pour les utilisateurs finaux
- Il a pour objectif de fonctionner correctement sous Windows, macOS et Linux
Compilation et contributions
- Le projet accepte les contributions de tous niveaux, qu’il s’agisse de corrections de bugs, d’améliorations de performances, d’ajout de nouvelles fonctionnalités ou d’amélioration de la documentation
- Le processus de contribution consiste à forker le dépôt, effectuer ses changements, puis soumettre une pull request
- Voici un exemple de compilation en ligne de commande
cargo run --no-default-features -- --terrain --path="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"
- La compilation de l’interface graphique se lance avec la commande suivante
cargo run
- Les utilisateurs de Nix peuvent l’exécuter directement comme suit
nix run github:louis-e/arnis -- --terrain --path=YOUR_PATH/.minecraft/saves/worldname --bbox="min_lat,min_lng,max_lat,max_lng"
- Une fois une pull request fusionnée, les changements sont inclus dans une release de mise à jour régulière
Notoriété, licence et sources officielles
- Arnis suscite davantage d’intérêt depuis décembre 2024 et a été cité dans plusieurs ressources académiques et médiatiques
- 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 est distribué sous Apache License 2.0
- Le mapping des noms de blocs Luanti dans
src/luanti_block_map.rsest dérivé de MC2MT et est soumis à la licence GNU Lesser General Public License v2.1 ou ultérieure - Les seuls sites officiels du projet sont arnismc.com et le dépôt GitHub
- Les téléchargements depuis d’autres sites sont non officiels et peuvent être malveillants
- Arnis n’est pas un produit Minecraft officiel et n’est ni approuvé par Mojang ou Microsoft, ni associé à eux
1 commentaires
Avis sur Hacker News
Il y a plus de dix ans, j’ai créé maps4cim, un projet open source de générateur de villes pour Cities in Motion 2 ; les routes et les bâtiments utilisaient les données OSM, et l’altitude les données NASA SRTM
Le côté OSM est bien plus complexe et les données changent tous les jours, mais si l’on envoie la même requête à l’API Overpass, on peut toujours obtenir les données les plus récentes dans le format attendu
À l’inverse, la NASA a fini par fermer l’accès public aux données SRTM, qui relèvent du domaine public, et les a cachées derrière un service web non REST accessible uniquement aux utilisateurs enregistrés
Si les données n’avaient pas été gratuites et facilement accessibles, je n’aurais jamais lancé ce type de projet open source au départ ; et dès que l’on crée une barrière à l’entrée, on perd tous les bons outils qui auraient pu être bâtis sur les épaules de géants
J’aimerais que davantage de projets mettant en pratique l’esprit de l’open data, comme OSM, prennent de l’ampleur
1: https://github.com/Klamann/maps4cim
Grâce aux quêtes gamifiées de StreetComplete ou à l’éditeur dans le navigateur d’osm.org, n’importe qui avec Internet peut corriger des lieux autour de lui en quelques minutes
Cela dit, le fait qu’il reste des choses à corriger partout où l’on va signifie aussi qu’il n’y a pas assez de contributeurs
Le gros problème, c’est qu’il n’existe pas d’application phare que les gens utilisent en permanence et où ils finissent par tomber sur des erreurs ; cela commence toutefois à changer avec Organic Maps, et j’ai entendu dire que le stationnement automatique de Tesla avait aussi amené de nouvelles personnes à cartographier
https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
Geonames propose aussi un service de recherche d’altitude basé sur SRTM et d’autres données : http://www.geonames.org/export/web-services.html
En revanche, si l’on doit échantillonner finement de vastes zones, on risque de se heurter aux limites de l’API ou de surcharger le service
Cela montre malgré tout qu’un tiers peut récupérer le jeu de données et fournir une API par-dessus
À ma connaissance, la GPL ne contient aucune clause interdisant de se faire passer pour un héros
Il existe toutefois des exceptions, par exemple lorsque la sortie contient une partie du code source du programme lui-même, comme avec les générateurs de lexers/parsers ; la licence de GNU Bison prévoit une exception explicite pour l’autoriser
Minecraft a Redstone et les Command Blocks, et des gens y ont construit des choses comme un 8086 ou Tetris
Je me demande s’il existe des cas limites où un monde généré par ce type d’outil de génération de monde serait contaminé par la GPL
Personnellement, c’est pour ce genre de raison que je préfère les licences BSD/MIT. Je n’ai pas envie de devoir payer un avocat pour répondre à une question simple du type : « Ai-je vraiment le droit d’utiliser ce programme ? »
J’aimerais m’en servir pour que mes enfants se familiarisent davantage avec notre quartier
J’en ai assez de leur demander sans cesse les noms des rues ou où tourner, et parfois je leur donne même un guidage complet virage par virage
Jusqu’ici, ils ne se sont perdus que quelques fois
Cela dit, ce n’est probablement pas aussi détaillé que ce projet
[0]: https://minecraft.ign.fr/
https://youtube.com/watch?v=vl_MExz52jA
Et une vidéo sur le même sujet avec une explication qui semble destinée aux enfants :
https://youtu.be/7JYjxSfvJQk?feature=shared
Comme il existait déjà une implémentation en Python, il paraît raisonnable d’expliquer dès le début en quoi cette version est différente
Ce n’étaient même pas forcément de vrais mots commençant par J : on collait simplement un J devant n’importe quel nom
Python est mentionné presque autant de fois
Il pourrait même être plus simple de distinguer si un nom ou une référence de position de type
(lat,long,game)renvoie à un emplacement dans le jeu, ou à un lieu virtuel du jeu portant le même nomLa documentation sur les tuiles 3D GlTF de Google Maps https://developers.google.com/maps/documentation/tile/3d-til... indique que, pour rendre les tuiles photoréalistes de Google, il faut utiliser un moteur de rendu 3D Tiles prenant en charge l’affichage des mentions de copyright, et que l’on peut utiliser CesiumJS ou Cesium for Unreal
Parmi les jeux open source de type Minecraft disposant d’une API Python, il y a sensorcraft, basé sur pyglet pour la 3D OpenGL, qui couvre
self.add_block(), la gravité, l’IA, les circuits, etc.WebGL est plus portable qu’OpenGL, et je me demande aussi s’il est possible de compiler pyglet en WASM
À ma connaissance, panda3d et godot se compilent facilement en WASM
Comme moteur physique Python open source pouvant être utile à un clone de Minecraft, il y a Genesis-Embodied-AI/Genesis : « Genesis: A Generative and Universal Physics Engine for Robotics and Beyond » https://news.ycombinator.com/item?id=42457213#42457224
« Approximating mathematical constants using Minecraft » https://news.ycombinator.com/item?id=42319313 mentionne aussi
luanti,minetest,mcpi,MCPI-Revival/minecraft-pi-rebornJ’ai aussi vérifié les données OSM, ce qui rend la chose encore plus étrange
En revanche, l’école de mon enfant, qui n’est pas très loin, est rendue de façon assez détaillée
En creusant un peu, il semble que ce bâtiment soit rendu dans OSM comme un multipolygon avec deux couches différentes, tandis que les autres semblent être rendus à partir d’un ensemble de nœuds