[HN Gopher] Arnis: Generate cities in Minecraft from OpenStreetMap
___________________________________________________________________
Arnis: Generate cities in Minecraft from OpenStreetMap
Author : jamesy0ung
Score : 439 points
Date : 2024-12-31 20:47 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| m3kw9 wrote:
| Someone should use the point maps Japan released and match it
| with open street maps to create even more detailed buildings.
| NavinF wrote:
| Link to the point maps?
| verdverm wrote:
| technically just tokyo
|
| https://news.ycombinator.com/item?id=42501102
| woopersiop wrote:
| Very cool, the generation of Chicago's L tracks seemed to be a
| challenge for the algorithm.
| claytonwramsey wrote:
| Is it just me, or does the README have the ChatGPT accent? For
| instance: Whether you're looking to replicate
| your hometown, explore urban environments, or simply build
| something unique and realistic, Arnis offers a comprehensive
| toolset to achieve your vision.
|
| I don't have a lot of issues with people using LLMs to generate
| documentation, but it does seem to have a lot of nothing-
| sentences.
| idle_zealot wrote:
| ChatGPT sounds like that because that's what vapid feel-good
| corporate copy reads like, and there are mountains of it
| churned out by humans.
| wjnc wrote:
| A legitimate question for me would be is documentation made
| to be read or to be written and what is the appropriate
| trade-off in energy invested? I might write a one off email
| to an individual, a email to a big audience or a presentation
| to the board. All three get different levels of attention.
| From little, to there are layers to this text nobody would
| expect (perhaps mostly for my enjoyment).
| mitthrowaway2 wrote:
| How would you phrase it?
| ripbozo wrote:
| For one, it's not a "comprehensive toolset" (focus on
| toolSET) - it's one tool with one config option.
| a12k wrote:
| Build your ideal city with Arnis.
| taberiand wrote:
| Arnis uses OpenStreetMap data and Rust to generate Minecraft
| worlds based on real-world geography and architecture.
|
| It processes large-scale data to create accurate cities,
| landmarks, and natural features in Minecraft, making it easy
| to replicate real places or design realistic environments.
|
| (This rephrasing generated by ChatGPT)
| Modified3019 wrote:
| This is actually really good.
| recursive wrote:
| That sentence just doesn't need to exist at all. The nature
| of the tool is already covered. I don't think there's a
| reason to tell people that they could use it for this, that,
| or the other thing.
| thorum wrote:
| You're right, and this is unfortunately becoming very common on
| GitHub, even for otherwise great projects.
|
| Good technical writing is concise and tells you what you need
| to know as directly as possible. ChatGPT written documentation
| always reads like bad marketing copy.
| mewpmewp2 wrote:
| On the other hand you can prompt it to be more concise, use
| simpler words, etc.
|
| I asked ChatGPT for a concise version and this is what it
| did:
|
| "Arnis generates Minecraft worlds based on real-world
| locations. Select an area to recreate cities, landmarks, and
| landscapes in the game."
|
| So overall it's up to the person to decide how it should look
| like.
| tucnak wrote:
| It seems everybody is LLM-suspicious these days, but keep in
| mind humans had mastered the art of nonsense long before!
| aduermael wrote:
| That's really cool!
| DannyPage wrote:
| Just like Microsoft's latest batch of Flight Simulator games, I'd
| love if there was a version of this for creating race tracks out
| of real areas in the world.
| rrr_oh_man wrote:
| ...or GTA: Auburn, AL
| genghisjahn wrote:
| Hmmm. Wonder if this can be done for Valheim?
| redundantly wrote:
| It would be awesome if it could generate street signs at
| intersections. I'd love to use it to help my kids get more
| familiar with our area. Theyre tired of me constantly asking for
| street names or which way to turn. Sometimes, they even give me
| full turn-by-turn instructions, and we have only gotten lost a
| couple of times so far ;)
| globalnode wrote:
| something like this could be made into a game to help taxi or bus
| drivers learn their routes or local areas.
| rrr_oh_man wrote:
| Yes, so they can ride their horse carriages even faster!
| matt3210 wrote:
| This project really likes to mention that it's made in rust
| wherever it can.
| core_dumped wrote:
| It should be a part of the Rust style guide at this point
| urbandw311er wrote:
| Q) How do you know if somebody is a Rust coder? A) They tell
| you.
| calebio wrote:
| I wonder if there is an overlap in the Rust and Arch Linux
| community then :D
| OfficialTurkey wrote:
| I'm sure one of them will comment here and tell you. Just
| as soon as they fix their wifi driver, and oh shit the
| bluetooth is broken too, okay time to open up the local
| copy of the arch wiki..
| n_plus_1_acc wrote:
| Definitely. Pacman and ALPM are currently being rewritten
| in Rust.
| wongarsu wrote:
| From personal/professional experience this is true. Your
| typical rust developer uses Arch and Neovim. Yes, he will
| tell you about both.
| n8henrie wrote:
| NixOS and helix!
| wongarsu wrote:
| And has a github repo with dotfiles
| poincaredisk wrote:
| Seriously, I consider a programming language mature when
| projects written in that language stop feeling the need to
| stress that. I mean, for some time projects listed "written
| in rust" (or "written in go", etc) as the main feature. Now
| rust is more normalized, finally.
| snappysnap wrote:
| I don't think we're anywhere near the equivalent of any library
| or application being named starting with a J when it was
| written in Java - and not even actual words beginning with J -
| just slap a J at the start of any old name.
| djfergus wrote:
| " I decided to port the project to Rust to learn more about the
| language and push the algorithm's performance further. We were
| nearing the limits of optimization in Python, and Rust's
| capabilities allow for even better performance and efficiency"
|
| So there is an existing solution in Python, seems reasonable to
| flag why this is different up front.
| xboxnolifes wrote:
| Not really? It has 6 occurrences of "Rust" in the README, and
| half of those are in the paragraph of the FAQ explaining why
| they ported to Rust from Python. There's actually an equivalent
| number of references to Python.
| cbeach wrote:
| As far as I know OSM doesn't have the granular elevation data
| required to render buildings as shown in the screenshots.
|
| I'd be interested to understand how the buildings were
| constructed?
| Rygian wrote:
| https://wiki.openstreetmap.org/wiki/Key:building:levels
| sp8962 wrote:
| If you want to add more details (don't overdo it)
| https://wiki.openstreetmap.org/wiki/Simple_3D_Buildings
| westurner wrote:
| Re: real-time weather, flight, traffic, react-based cockpits, and
| open source Google Earth GlTF data and flight sim applications
| like MSFS and X-Plane:
| https://news.ycombinator.com/item?id=38437821
|
| Probably easier to determine whether a verbal or (lat,long,game)
| location reference is a reference to an in-game location or an
| virtual location in a game with the same name.
|
| From
| https://developers.google.com/maps/documentation/tile/3d-til...
| re: Google Maps GlTF 3d tiles:
|
| > _Note: To render Google 's photorealistic tiles, you must use a
| 3D Tiles renderer that supports the display of copyright
| attribution. You can use [CesiumJS or Cesium for Unreal]_
|
| Open source minecraft games with Python APIs:
|
| > _sensorcraft is like minecraft but in python with pyglet for
| OpenGL 3D; self.add_block(), gravity, ai, circuits_
|
| WebGL is more portable than OpenGL; or can't pyglet be compiled
| to WASM?
|
| panda3d and godot easily compile to WASM FWIU.
|
| An open source physics engine in Python that might be useful for
| minecraft clones: Genesis-Embodied-AI/Genesis; "Genesis: A
| Generative and Universal Physics Engine for Robotics and Beyond"
| https://news.ycombinator.com/item?id=42457213#42457224
|
| From "Approximating mathematical constants using Minecraft"
| https://news.ycombinator.com/item?id=42319313 :
|
| > [ luanti, minetest, mcpi, MCPI-Revival/minecraft-pi-reborn ]
| anthk wrote:
| That was done long ago under Flightgear, but just the maps.
| devops99 wrote:
| Niiice. This is like that one time my friend make a Counter
| Strike map of our local high school.
| lostlogin wrote:
| Sounds like something that would get you on a watchlist.
| devops99 wrote:
| Yeah I still wish I could be half as cool as that guy.
| abotsis wrote:
| I'm just here to say thanks, as I'm not above taking credit for
| creating our neighborhood in Minecraft for my 8yo. There's
| nothing in the GPL that prohibits creating false heroes AFAIK.
| rollcat wrote:
| GPL does not restrict how you can use the program (freedom #0),
| unless (as is the case with lexer/parser generators) the output
| contains a part of the program's own source - e.g. GNU Bison's
| license has an explicit exception to allow that.
|
| In case of Minecraft, you _do_ have Redstone and Command Blocks
| at your disposal, and people have built things like an 8086 or
| Tetris. I wonder if there 's an edge case with those WG tools,
| where the generated world becomes GPL-contaminated.
|
| (Personally I'm a fan of BSD/MIT licenses, for those kinds of
| reasons - I'd rather not have anyone pay a lawyer to answer a
| simple question like, "can I actually _use_ this program? ")
| dadoum wrote:
| IGN (a French public institute) also has its service to generate
| a Minecraft map from real places. [0]
|
| It's probably not as detailed though.
|
| [0]: https://minecraft.ign.fr/
| aziaziazi wrote:
| Video with famous touristic places:
|
| https://youtube.com/watch?v=vl_MExz52jA
|
| And the same plus some explanation from a (fake?) child:
|
| https://youtu.be/7JYjxSfvJQk?feature=shared
| opless wrote:
| I just know a lot of children will be introduced to orienteering
| by their parents due to this ;-)
| anthk wrote:
| I had that literal exact same idea one month ago, but with
| Minetest.
| ocschwar wrote:
| Right now I'm using my work Mac, which I can't install Minecraft
| on. My personal Mac is not in my hands, and the kid using it is
| the one I want to surprise with a Minecraft level of the area.
|
| If anyone could post a zip file of Minecraft worlds so I can fool
| this app into using it, I would be much obliged.
| klamann wrote:
| I love that the OpenStreetMap community provides a mature
| toolscape that allows projects like this to access geospatial
| data for anyone, no questions asked. It's hard to overstate how
| valuable this kind of resource is to the free software community.
|
| Just to give some perspective: More than 10 years ago I built an
| open source project that generates cities for a different game
| (maps4cim [1], a map generator for Cities in Motion 2). It relies
| on OSM data to generate roads and buildings and stuff, and NASA
| SRTM data for elevations. The OSM part of the application is far
| more complicated, since it covers so much data that is changing
| every day, yet you can make the exact same query against the
| Overpass API and get a response with the latest data in the
| expected format. NASA however at some point decided to shut down
| public access to SRTM data, which is in the public domain, and
| hide it behind a non-RESTful webservice where only registered
| users have access.
|
| To me this feels like such a loss. I never would have started
| this open source project a decade ago if there was no free access
| to all the data the users would need. Yes, it's still public
| domain data, therefore someone could go through all the hassle of
| signing up for the service, scrape all the data and then host it
| free of charge, but right now there is no such service. Don't get
| me wrong, I don't feel entitled to this kind of free service, but
| I feel like these barriers to entry really matter and we all lose
| access to great tools that are built on the shoulders of giants.
| Very sad to lose NASA as one of the giants that once gave us free
| and easy access to highly useful data. More power to projects
| like OSM that live the spirit of open data!
|
| 1: https://github.com/Klamann/maps4cim
| m4rtink wrote:
| Looks like its is possible to download the full SRTM dataset -
| would that not work ?
|
| https://www.reddit.com/r/gis/comments/qg4b6j/is_it_possible_...
|
| Also I know Geonames has a service for elevation lookup based
| on SRTM & other data: http://www.geonames.org/export/web-
| services.html
|
| But if you need to semple a big are in detail, that could
| potentially run into API limits or overload the service. But it
| demonstrates its possible to get the dataset & provide an API
| on top of it by a third party. :)
| m4rtink wrote:
| Some more information from DRL, which was apparently involved
| in the mission:
|
| https://geoservice.dlr.de/web/dataguide/srtm/
|
| https://download.geoservice.dlr.de/SRTM_XSAR/
| klamann wrote:
| I did a quick review of the resources that you linked to:
|
| https://portal.opentopography.org/raster?opentopoID=OTSRTM.
| 0... allows to submit a request for data from a specific
| area through a web form (no REST API), then you get
| redirected to a page where you get a download link after
| your request has been processed. Does not give access to
| the original SRTM data.
|
| http://www.geonames.org/export/web-services.html exposes
| SRTM data through a REST API in their own custom format. I
| immediately ran into rate limiting when I tried to download
| a small map tile.
|
| https://download.geoservice.dlr.de/SRTM_XSAR/ provides free
| access to SRTM data in the original format. This is a great
| resource! Unfortunately, the map tiles cover 10x10 degrees,
| which results in huge files. NASA used to provide 1x1
| degree tiles, which was much better suited for on-demand
| access.
|
| https://download.geoservice.dlr.de/TDM30_EDEM/ DLR does
| provide 1x1 degree tiles for similar data sets like
| TanDEM-X, but for those they do not provide anonymous
| access.
| raybb wrote:
| It's also pretty amazing how easy it is to contribute. Between
| things like street complete with gamified quests and the
| browser based editor on osm.org basically anyone with an
| internet connection can update the places around them in
| minutes.
|
| That being said, the fact that there's always something to fix
| just about anywhere I go tells you there's not enough people
| that contribute. Tbh I think the major problem is that there's
| no single go to app that people use all the time and then
| notice the issues. Though that's changing a bit with Organic
| Maps. Tesla self parking also had a bunch of new people mapping
| places, or so I heard.
| moonlion_eth wrote:
| This is too cool. Way to represent your rust peers
| unquietwiki wrote:
| Weirdly enough, my apartment complex doesn't render in this; the
| surrounding buildings and the pool are rendered, though. I
| verified the data on OSM, which is even more mystifying. On the
| other hand, the kiddo's school isn't far away, and that is
| rendered in pretty good detail. Hmmm...
|
| Edit: I dug deeper into the OSM stuff. Apparently the building is
| rendered in OSM as a "multipolygon" with two different layers;
| but all the other stuff is rendered based on sets of nodes.
| lostlogin wrote:
| I like now you can see a massive spike in installs in the last
| day. The HN community mines?
| voidUpdate wrote:
| what "powerful capabilities of Rust" does this utilise?
| remoquete wrote:
| Can't describe the excitement that tools like thise bring to me.
| I remember when we used to create cities in Sim City 2000 and
| then navigate them in Sim Copter and Streets of Sim City. I'm
| hoping to see something similar happening with photo-realistic
| levels of accuracy.
| ygra wrote:
| There's a few projects that do rendering and 3D geometry
| construction from OSM Data, e.g.
|
| - https://streets.gl (data outdated, sadly)
|
| - https://demo.f4map.com/ (commercial, no textures)
|
| - OSM2World (sadly not interactively on the web, good textures,
| lots of rendered details, e.g. street signs)
|
| - osmbuildings.org (no live data, no roof shapes)
|
| None are really photo-realistic, and there's are a bunch of
| problems in the map data where it's hard to infer good 3D
| geometry, e.g. stairs.
| johnisgood wrote:
| > The script uses the fastnbt cargo package to interact with
| Minecraft's world format
|
| At first I was like damn, he made a way to interact with the
| world map, but apparently there is a library for that! Who would
| have known.
|
| Cool project nevertheless.
|
| I wonder about the performance claims though.
|
| > Performance Optimization: Utilize Rust's memory safety and
| concurrency features to optimize the performance of the world
| generation process.
|
| Is not much of an answer of performance.
|
| What were the limitations in Python, and how did Rust help?
|
| Since it relies on third-party libraries, what are the
| optimizations that the author did indeed implement as opposed to
| the Python version?
| tithos wrote:
| Cant find the Mac version. Cant up vote without it
| SpaghettiCthulu wrote:
| It uses Tauri. It would probably just work if you compiled it
| yourself on macOS.
___________________________________________________________________
(page generated 2025-01-01 23:01 UTC)