Show HN: An interactive map of Tolkien's Middle-earth

(middle-earth-interactive-map.web.app)

272 points | by frasermarlow 22 hours ago

28 comments

  • frasermarlow 6 hours ago
    PS: There have been a few questions about the tiling system used. It's based on https://leafletjs.com/ and you will find it all in the Github repo. Its one of the more interesting parts of the project:

    https://github.com/frasermarlow/middle-earth-map

    The tiles were pre-generated from the source image using generate_tiles.py — a Python script that slices the big map into 256x256 JPEG tiles at three zoom levels . Leaflet loads them with zoomOffset: 2, so directory zoom 0 = Leaflet zoom -2, directory zoom 2 = Leaflet zoom 0 (the highest native zoom). Below and above that range, Leaflet scales tiles up or down automatically.

    The satellite tiles were generated by generate_sat_ai.py using Stable Diffusion img2img. It assembles the zoom-2 tiles into a full image, processes 512x512 overlapping patches through SD, blends them back together, then slices into the tile pyramid.

    • ComSubVie 4 hours ago
      The generated satellite tiles are interesting. The sea is very dry. And some mountains are looking very strange. At least for some places (e.g. Mount Doom) the AI should have been able to generate more "realistic" images.

      Interesting project. I might "steal" that for teaching purposes.

      • frasermarlow 3 hours ago
        Ha ha. Yeah. That was a first wild attempt. If I get time I will figure out how to fine tune the mock-satellite imagery to properly reflect ocean, lakes, trees, castles etc.
    • Prime_Axiom 5 hours ago
      This is pretty cool man, I appreciate you sharing what you did on GitHub. I’m just a codelet script kiddie crashing around the Google Maps api for fun and I love seeing projects like this.
      • frasermarlow 3 hours ago
        If you put in a credit card, look out, the Google maps API can get very expensive very quickly!
  • starkparker 1 hour ago
    LotrProject[1] has several interactive maps and visualizations, including a family tree, time/distance chart of the fellowship's journey, maps of Beleriand and Middle-Earth, historical timeline maps, and demographic posts on Middle-Earth's inhabitants. Sadly doesn't seem to have been maintained recently, the cracks in WordPress are starting to show, and AFAICT the source content isn't open.

    http://lotrproject.com

  • aquir 12 hours ago
    It's great but it's the Map of Middle-Earth in the Third Age, right? During the First and Second Ages Middle-Earth looked very different and this makes showing events from the Silmarillion for example very confusing.
    • frasermarlow 6 hours ago
      Yep, that is correct, well spotted. See the thread with blevinstein below on some more details related to that.
  • ivolimmen 13 hours ago
    The first thing that poped in my head when seeing this: it must have taken quite some time to thoroughly go thought all this to make it. The developer must have a huge passion for LOTR. Seeing all the message that it was build using AI it hugely deminishes this feeling. Still a very nice looking map.
    • frasermarlow 1 hour ago
      I totally get that. Sorry if it was a letdown. In reality I built this map as part of a personal exploration of the lore and background of Tolkien's lore, because i am fascinated by it. This felt like a productive way to share my learnings with others in a fun way. I certainly learnt a lot from going through the process.
    • cheschire 9 hours ago
      LLMs are a sum of their parts. Whatever feelings you had towards OP can still be given freely to the creators of the parts.
  • topherjaynes 20 hours ago
    One doesn't simply vibe code into Mordor!(but seriously love this)
  • Pooge 3 hours ago
    And all this without OpenGL! Kudos.

    My new favorite insult towards web services that are badly done is: "even fully vibe-coded Codex would've done better".

  • bananaflag 21 hours ago
    I notice the map is the one from the movies (it shows the Orocarni a bit too close, but it's nice they appear on the map).

    Maybe when describing historical events you should also put the year (it is given only for some of them).

    Anyway, very nice work! I think it's appropriate especially for casual fans (especially movie fans) to delve (sorry) deeper into the lore.

    • frasermarlow 19 hours ago
      Hey thanks. Good call, I will have Claude figure out the years for each event that can be pinned down.
  • tuom1s 11 hours ago
    This is amazing, and only recently I started to read the books. So this map will actually be handy to follow through the story!
  • block_dagger 8 hours ago
    Interactive is generous - more like labeled. Interesting but was expecting more.
    • frasermarlow 6 hours ago
      Open to ideas on how more 'interactive' we can make it. But yeah, fair point. Maybe it's just more 'annotated'
  • shdh 20 hours ago
    Using a tile server for this feels hilarious
  • balajeekalyan 19 hours ago
    Wow! this is so detailed. You are putting vibe-code to genuine use.
    • frasermarlow 19 hours ago
      Best use case I have found so far :-)
  • frm88 10 hours ago
    This is awesome, thank you. I will play around with this all day :)
  • bdeol22 5 hours ago
    The tiling pipeline is the easy part to underestimate; documenting how you sliced and served zoom levels is genuinely useful for anyone doing map-style UIs. Nice work.
  • blevinstein 18 hours ago
    Arda was supposed to be drastically changed after the First Age. This map is from the Second/Third Ages. Do the events from the First Age map currently into what is shown? Do some have to be excluded?
    • frasermarlow 17 hours ago
      Well I included 13 Silmarillion events, but most are actually Second Age events that map perfectly fine. Three of them are First age so it's a bit fudgy. The project has no Beleriand events... they literally cannot be placed because Beleriand sank beneath the sea after the War of Wrath. Cuiviénen it tricky. The Sea of Helcar where it sat was reshaped when Morgoth's strongholds were taken out, so that is approximate. Would love to make age-appropriate (ha ha) maps, but I only had this one to work from.
  • jcstryker 14 hours ago
    Great work! A window into one of the most important universe we have created.

    Any chance you would be willing to share the source code?

  • randomeel 13 hours ago
    Amazing ! But it did kind of spoil the rest of the books since i am reading LOTR for the first time...
    • frasermarlow 6 hours ago
      Ah. Yeah sorry. I could add a "spoiler alert!"
  • twostorytower 20 hours ago
    This is awesome! Can you make the zoom in and out smoother? I have to pinch every single time to get to the next zoom level instead of continuously zooming as I pinch.
    • frasermarlow 19 hours ago
      Yep, that zoom thing is a bit fiddly on mobile in particular. I will see what I can improve.
  • pants2 18 hours ago
    Would love just for fun to feed this through an image generator to make it look like satellite imagery or maybe even Google Maps.
  • chantaiman_fnf 12 hours ago
    Wish I had this thing when I was young. Like... 25 years ago? lol I had to turn back to the map page over and over... Thanks for the work!
  • imwally 17 hours ago
    Anyone know a decent place where I can buy a giant print of this for my wall?
    • frasermarlow 17 hours ago
      Good question. Check out Reddit - that is where I found the original. I understand it was made for the movies but I have not been able to locate the exact source or a place to order it from.
  • 4ndrewl 12 hours ago
    Looks really nice. There are tons of interactive Middle Earth maps, but this looks really polished.

    Did the LLM suggest using some pre-existing standard like MBTiles for the tiles?

  • strider_2018 18 hours ago
    I made an account just to say thank you. Really great work. I would love to see a map of the first age events.
    • frasermarlow 16 hours ago
      If I can find the right source materials, then challenge accepted.
  • kilbey1 20 hours ago
    Mad respect; I've been working on building maps and it's a LOT harder than it might seem.
    • frasermarlow 19 hours ago
      Honestly the hardest thing for this was getting the pins in the right place. I had Claude create a tool for me to get the location and have it correct placements. Even after a dozen 'pins' were on the map, it still had problems placing the next pin (relative to the ones it had). Claude has gotten better and honestly I had not figured out Claude in the browser when I built this.
  • vldszn 17 hours ago
    Looks very good! Thank you
    • frasermarlow 17 hours ago
      Thanks. Being on Hacker News is fun. But it turns out to be expensive too if your project takes off and Firebase charges for downloads!
  • devcraft_ai 10 hours ago
    [dead]
  • ffwebmaster 4 hours ago
    [dead]
  • zhichuanxun 14 hours ago
    [dead]
  • freakynit 15 hours ago
    As much hate as vibe-coding gets (and most of it is justified), it has also allowed all of us to vibe-code our thoughts to small single-page web apps very easily.

    Shameless vibe-coded plugs for my own regular usage:

    1. https://llm-token-cost-calculator.pagey.site/

    2. https://metrics-memory-usage.pagey.site/

    • emaro 12 hours ago
      I don't mind people sharing their plugs about related things, but don't you think the connection here is a bit far-fetched?

      Imo we're past the point where being vibe-coded is an interesting link. This is a thread about an interactive map of middle earth — not about vibe-coding, token usage or anything like it. Imagine if everyone posted their vibes projects now...

      • freakynit 11 hours ago
        You're right. I got too excited to share. Couldn't delete now because of HN rule (1 hour), but will keep in mind. Thanks..
    • helloplanets 10 hours ago
      Whatever you're using as your visual templating instructions, I like it. Mind sharing?

      Been using a slightly modified Tufte template for my vibed small apps, but this is much better.

      • frasermarlow 1 hour ago
        I added some notes above on the tiling technology. As for the base map itself I posted a link to the original file. I hope that helps but happy to answer any other questions you might have.
    • frasermarlow 15 hours ago
      Yeah, for sure. Vibe coding has it's place, I think. It's the people who pretend to build production-ready systems that are just hollow shells that give it a bad name. It is what it is. I vibe-coded this game and I take pride in it: https://frasermarlow.github.io/vibe-star-chase/
      • freakynit 13 hours ago
        yep.. vibe-coding works, but, only up to a certain housands of lines of code max, that too, with bigger models.. beyond that, it starts to make absolutely stupid mistakes and starts to screw up with the architecture and general layout of the project all while leaving huge security holes. You need to guide it beyond that.