3 puntos por GN⁺ 2025-01-01 | 1 comentarios | Compartir por WhatsApp
  • Arnis es un proyecto gratuito y de código abierto que genera mundos de Minecraft Java Edition 1.17+ y Bedrock Edition basados en geografía, terreno y construcciones del mundo real
  • El algoritmo de generación procesa datos geoespaciales de OpenStreetMap y datos de elevación para recrear con mayor precisión el terreno y los edificios dentro de Minecraft
  • El usuario puede elegir un área con la herramienta de rectángulo en el mapa, seleccionar un mundo de Minecraft y luego presionar Start Generation; también es posible ajustar opciones como la escala del mundo, el punto de aparición y la generación de interiores de edificios
  • Es posible crear mundos desde el navegador sin instalación, o usar MapSmith si se quieren mapas más grandes y generación móvil
  • Las únicas rutas oficiales de descarga son arnismc.com y el repositorio de GitHub; las descargas de Arnis desde otros sitios web no son oficiales y podrían ser maliciosas

Mundos de Minecraft que crea Arnis

  • Arnis genera mundos de Minecraft que reflejan la geografía, el terreno y las construcciones del mundo real
    • Es compatible con Minecraft Java Edition 1.17+ y Bedrock Edition
    • Permite convertir lugares reales como tu ciudad natal, grandes metrópolis o paisajes naturales en mundos de Minecraft
  • El proyecto es una herramienta gratuita y de código abierto diseñada para manejar datos geográficos reales a gran escala
  • El proceso de generación usa en conjunto datos geoespaciales de OpenStreetMap y datos de elevación
    • El objetivo es lograr una representación más precisa del terreno y de las edificaciones en Minecraft

Cómo se usa

  • El usuario puede descargar la versión más reciente o compilarla directamente
  • En la GUI, se selecciona el área deseada con la herramienta de rectángulo en el mapa, se indica el mundo de Minecraft y luego se hace clic en Start Generation
  • La configuración de generación permite ajustar varios elementos
    • Escala del mundo
    • Punto de aparición
    • Generación de interiores de edificios
  • Si se necesita generación móvil o mapas de mayor tamaño, MapSmith permite crear mundos desde el navegador sin instalación

Documentación y objetivos de desarrollo

  • Toda la documentación está disponible en la GitHub Wiki
    • Explicaciones técnicas
    • FAQ
    • Guía de contribución
    • Hoja de ruta
  • Los objetivos principales del proyecto son la modularidad, el rendimiento, la documentación, la usabilidad y el soporte multiplataforma
    • Busca mejorar el mantenimiento y la extensibilidad separando claramente la importación de datos, el procesamiento y la generación del mundo
    • Da prioridad a la optimización del rendimiento para generar mundos rápidamente
    • Busca aclarar la estructura y la lógica mediante documentación interna del código
    • Apunta a una experiencia fácil de usar para el usuario final
    • Su meta es funcionar sin problemas en Windows, macOS y Linux

Compilación y contribuciones

  • El proyecto acepta contribuciones de todo nivel, incluidas correcciones de errores, mejoras de rendimiento, nuevas funciones y mejoras de documentación
  • La forma de contribuir consiste en hacer un fork del repositorio, realizar cambios y enviar un pull request
  • Un ejemplo de compilación desde línea de comandos es el siguiente
    • cargo run --no-default-features -- --terrain --path="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"
  • La compilación de la GUI se ejecuta con el siguiente comando
    • cargo run
  • Los usuarios de Nix pueden ejecutarlo directamente así
    • nix run github:louis-e/arnis -- --terrain --path=YOUR_PATH/.minecraft/saves/worldname --bbox="min_lat,min_lng,max_lat,max_lng"
  • Cuando un pull request se fusiona, los cambios se incluyen en las publicaciones periódicas de actualización

Reconocimiento, licencia y fuentes oficiales

1 comentarios

 
GN⁺ 2025-01-01
Opiniones de Hacker News
  • Me encanta que el ecosistema de OpenStreetMap ofrezca herramientas maduras que permiten que cualquiera use datos geoespaciales.
    Hace más de 10 años hice maps4cim, un proyecto open source que era un generador de ciudades para Cities in Motion 2; usaba datos de OSM para calles y edificios, y datos NASA SRTM para elevación.
    El lado de OSM es mucho más complejo y los datos cambian todos los días, pero si uno envía la misma consulta a la Overpass API, todavía puede esperar recibir datos actualizados en el formato esperado.
    En cambio, en algún momento la NASA cerró el acceso público a los datos SRTM, que eran de dominio público, y los escondió detrás de un servicio web no REST accesible solo para usuarios registrados.
    Si los datos no hubieran sido gratuitos y fáciles de acceder, nunca habría iniciado un proyecto open source así en primer lugar; cuando se levantan barreras de entrada, perdemos todas las buenas herramientas que podrían haberse construido sobre hombros de gigantes.
    Ojalá ganen más fuerza los proyectos que practican el espíritu de datos abiertos, como OSM.
    1: https://github.com/Klamann/maps4cim
    • Contribuir también es sorprendentemente fácil.
      Gracias a las misiones gamificadas de StreetComplete o al editor basado en navegador de osm.org, cualquiera con internet puede corregir lugares cercanos en cuestión de minutos.
      Pero que dondequiera que uno vaya siempre quede algo por corregir también significa que no hay suficientes colaboradores.
      El gran problema es que no existe una app insignia que la gente use todo el tiempo y en la que vaya encontrando errores, aunque eso está cambiando poco a poco con Organic Maps, y escuché que también hay gente nueva mapeando por el estacionamiento automático de Tesla.
    • Parece que es posible descargar el dataset completo de SRTM; me pregunto si eso no serviría.
      https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
      Geonames también ofrece un servicio de consulta de elevación basado en SRTM y otros datos: http://www.geonames.org/export/web-services.html
      Claro que, si necesitas muestrear áreas grandes con mucho detalle, podrías toparte con límites de la API o sobrecargar el servicio.
      Aun así, demuestra que es posible que un tercero consiga el dataset y ofrezca una API encima de él.
  • Podría crear mi barrio en Minecraft, mostrárselo a mi hijo de 8 años y hacer como que lo hice yo.
    Que yo sepa, la GPL no tiene ninguna cláusula que prohíba fabricar falsos héroes.
    • La GPL no restringe el modo de uso del programa en sí; es decir, corresponde a la libertad 0.
      Pero hay excepciones, como en generadores de léxers/parsers, cuando la salida incluye parte del código fuente del propio programa; la licencia de GNU Bison incluye una excepción explícita que lo permite.
      Minecraft tiene Redstone y Command Blocks, y la gente ha creado cosas como un 8086 o Tetris.
      Me pregunto si habría algún caso límite en el que un mundo generado por una herramienta de generación de mundos como esta quedara contaminado por la GPL.
      Personalmente, por razones como esta prefiero licencias BSD/MIT. No quiero gastar en abogados por una pregunta simple como “¿puedo usar este programa de verdad?”.
  • Sería buenísimo que también generara señales de tránsito en las intersecciones.
    Me gustaría usarlo para que mis hijos se familiaricen más con nuestro barrio.
    Ya estoy cansado de preguntarles todo el tiempo nombres de calles o dónde hay que doblar, y a veces hasta les doy indicaciones completas paso a paso.
    Hasta ahora solo nos hemos perdido unas cuantas veces.
  • IGN, una institución pública francesa, también ofrece un servicio para generar mapas de Minecraft a partir de lugares reales.
    Aunque probablemente no sea tan detallado como este proyecto.
    [0]: https://minecraft.ign.fr/
  • Este proyecto parece enfatizar bastante, cada vez que puede, que está hecho en Rust.
    • Tiene una explicación que dice: “Decidí portar el proyecto a Rust para aprender más sobre el lenguaje y exprimir más el rendimiento de los algoritmos. En Python me estaba acercando a los límites de optimización, y las capacidades de Rust permiten mejor rendimiento y eficiencia”.
      Dado que existía una implementación anterior en Python, parece razonable que al principio expliquen por qué esta versión es distinta.
    • ¿Cómo sabes quién es programador de Rust? Él mismo te lo dice.
    • Todavía falta bastante para llegar a la época en que todas las bibliotecas o aplicaciones escritas en Java empezaban con J.
      Ni siquiera eran palabras que realmente empezaran con J; simplemente le ponían una J delante a cualquier nombre.
    • A estas alturas ya debería entrar en la guía de estilo de Rust.
    • En realidad, “Rust” aparece 6 veces en el README, y la mitad de esas menciones están en una sección de FAQ que explica por qué lo portaron de Python a Rust.
      Python se menciona casi la misma cantidad de veces.
  • Me gustaría que hubiera una versión que creara pistas de carreras basadas en zonas del mundo real, como los juegos más recientes de Flight Simulator de Microsoft.
    • O también podría ser GTA: Auburn, AL.
  • Enlace de referencia sobre clima en tiempo real, vuelo, tráfico, cabina basada en React, datos GlTF open source de Google Earth y apps de simuladores de vuelo como MSFS y X-Plane: https://news.ycombinator.com/item?id=38437821
    Tal vez sea más fácil distinguir si una referencia de ubicación tipo (lat,long,game) o verbal apunta a una ubicación dentro del juego, o a una ubicación ficticia del juego que tiene el mismo nombre.

La documentación sobre tiles 3D GlTF de Google Maps https://developers.google.com/maps/documentation/tile/3d-til... dice que, para renderizar los tiles fotorrealistas de Google, hay que usar un renderizador de 3D Tiles que admita la visualización de atribuciones de copyright, y que se puede usar CesiumJS o Cesium for Unreal
Como juego open source tipo Minecraft con API de Python está sensorcraft, basado en pyglet para OpenGL 3D, y cubre self.add_block(), gravedad, IA, circuitos, etc.
WebGL tiene mejor portabilidad que OpenGL, y también me pregunto si pyglet se puede compilar a WASM
Tengo entendido que panda3d y godot se compilan fácilmente a WASM
Como motor de física open source en Python que podría ser útil para un clon de Minecraft está Genesis-Embodied-AI/Genesis: “Genesis: A Generative and Universal Physics Engine for Robotics and Beyond” https://news.ycombinator.com/item?id=42457213#42457224
En “Approximating mathematical constants using Minecraft” https://news.ycombinator.com/item?id=42319313 también aparecen luanti, minetest, mcpi y MCPI-Revival/minecraft-pi-reborn

  • FlightGear ya había hecho algo parecido hace mucho, pero solo con los mapas
  • Curiosamente, mi complejo de departamentos no se renderiza, pero los edificios cercanos y la piscina sí
    También revisé los datos de OSM, por eso se me hace aún más raro
    En cambio, la escuela de mi hijo queda no muy lejos y se renderiza con bastante detalle
    Investigando un poco más, parece que ese edificio se renderiza en OSM como un multipolygon con dos capas distintas, mientras que los demás se renderizan a partir de un conjunto de nodos
  • Muy genial. La generación de las vías del Chicago L parece haber sido un desafío algorítmico considerable
  • Estaría bueno alinear el mapa de puntos publicado por Japón con OpenStreetMap para crear edificios más detallados
    • Me interesa el enlace al mapa de puntos