3 points par GN⁺ 2025-01-01 | 1 commentaires | Partager sur WhatsApp
  • 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 Generation pour 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

1 commentaires

 
GN⁺ 2025-01-01
Avis sur Hacker News
  • Ce que j’apprécie vraiment dans l’écosystème OpenStreetMap, c’est qu’il fournit des outils matures qui permettent à tout le monde d’utiliser des données géospatiales
    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
    • Contribuer est aussi étonnamment facile
      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
    • Il semble possible de télécharger l’ensemble du jeu de données SRTM ; je me demande si cela ne suffirait pas
      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
  • Je vais pouvoir recréer mon quartier dans Minecraft, le montrer à mon enfant de 8 ans et faire comme si c’était moi qui l’avais fait
    À ma connaissance, la GPL ne contient aucune clause interdisant de se faire passer pour un héros
    • La GPL ne restreint pas la manière d’utiliser le programme lui-même, ce qui correspond à la liberté 0
      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 ? »
  • Ce serait vraiment génial s’il générait aussi les panneaux de signalisation aux intersections
    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
  • L’IGN, l’institut public français, propose aussi un service permettant de générer des cartes Minecraft à partir de lieux réels
    Cela dit, ce n’est probablement pas aussi détaillé que ce projet
    [0]: https://minecraft.ign.fr/
  • Ce projet semble beaucoup insister, dès qu’il en a l’occasion, sur le fait qu’il a été écrit en Rust
    • Il y a une explication disant : « Nous avons décidé de porter le projet vers Rust afin d’apprendre davantage ce langage et de pousser plus loin les performances de l’algorithme. En Python, nous approchions des limites de l’optimisation, et les capacités de Rust permettent de meilleures performances et une meilleure efficacité »
      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
    • Comment sait-on que quelqu’un est programmeur Rust ? Il vous le dit
    • On est encore loin de l’époque où tous les noms de bibliothèques ou d’applications écrites en Java commençaient par J
      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
    • À ce stade, cela devrait figurer dans le guide de style de Rust
    • En réalité, « Rust » apparaît 6 fois dans le README, et la moitié de ces occurrences se trouvent dans un paragraphe de FAQ expliquant pourquoi le projet a été porté de Python vers Rust
      Python est mentionné presque autant de fois
  • J’aimerais qu’il existe une version permettant de créer des circuits de course à partir de zones du monde réel, comme les derniers jeux Flight Simulator de Microsoft
    • Ou bien GTA: Auburn, AL, ça marcherait aussi
  • Liens de référence sur la météo en temps réel, le vol, le trafic, un cockpit basé sur React, les données Google Earth GlTF open source et les applications de simulation de vol comme MSFS et X-Plane : https://news.ycombinator.com/item?id=38437821
    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 nom

La 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-reborn

  • FlightGear faisait déjà quelque chose de similaire il y a longtemps, mais seulement pour les cartes
  • Curieusement, mon immeuble n’est pas rendu, alors que les bâtiments alentour et la piscine le sont
    J’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
  • Très impressionnant. La génération des voies du Chicago L a dû représenter un sacré défi algorithmique
  • Ce serait bien d’aligner la carte de points publiée par le Japon avec OpenStreetMap pour créer des bâtiments plus détaillés
    • Je serais curieux d’avoir le lien vers cette carte de points