logoalt Hacker News

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

269 pointsby frasermarlowyesterday at 8:42 PM56 commentsview on HN

An interactive map of Tolkien’s Middle-earth, with events from across the legendarium plotted as markers.

I have been commuting a fair bit between the East and West coast, and thanks to American Airlines' free onboard WiFi, I was able to vibe-code a full interactive map of Middle-earth right from my economy seat at the back of the bus.

It's rather amazing how much an LLM knows about Tolkien's work, and it was fun to delve into many of the nooks and crannies of Tolkien's lore.

Some features: - Plot on the map the journey of the main characters in both The Hobbit and The Lord of the Rings. - Follow a list of events in the chronological Timeline - Zoom in on the high-def map and explore many of the off-the-main-plotline places - Use the 'measure distances' feature to see how far apart things are.

I also had a lot of fun learning about tiling to allow for efficient zooming.

If you are anything like me, this should provide a fun companion to reading the books or watching the movies (note that on this site, I followed the book narrative, and did not include Peter Jackson's many departures)

If you get the chance to check it out, I would love more feedback, and if there is demand, I might do the same for Game of Thrones.


Comments

frasermarlowtoday at 12:35 PM

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.

show 2 replies
aquirtoday at 6:59 AM

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.

show 1 reply
ivolimmentoday at 6:12 AM

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.

show 1 reply
Poogetoday at 3:15 PM

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".

topherjaynesyesterday at 10:57 PM

One doesn't simply vibe code into Mordor!(but seriously love this)

show 1 reply
block_daggertoday at 10:52 AM

Interactive is generous - more like labeled. Interesting but was expecting more.

show 1 reply
tuom1stoday at 8:03 AM

This is amazing, and only recently I started to read the books. So this map will actually be handy to follow through the story!

bananaflagyesterday at 9:37 PM

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.

show 1 reply
shdhyesterday at 10:34 PM

Using a tile server for this feels hilarious

show 1 reply
balajeekalyanyesterday at 11:30 PM

Wow! this is so detailed. You are putting vibe-code to genuine use.

show 1 reply
frm88today at 8:20 AM

This is awesome, thank you. I will play around with this all day :)

bdeol22today at 1:51 PM

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.

blevinsteintoday at 1:00 AM

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?

show 1 reply
randomeeltoday at 5:49 AM

Amazing ! But it did kind of spoil the rest of the books since i am reading LOTR for the first time...

show 1 reply
jcstrykertoday at 4:29 AM

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?

show 1 reply
twostorytoweryesterday at 10:29 PM

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.

show 1 reply
pants2today at 12:55 AM

Would love just for fun to feed this through an image generator to make it look like satellite imagery or maybe even Google Maps.

show 3 replies
chantaiman_fnftoday at 6:45 AM

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!

imwallytoday at 1:19 AM

Anyone know a decent place where I can buy a giant print of this for my wall?

show 1 reply
4ndrewltoday at 6:25 AM

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?

show 1 reply
strider_2018today at 1:07 AM

I made an account just to say thank you. Really great work. I would love to see a map of the first age events.

show 1 reply
kilbey1yesterday at 11:10 PM

Mad respect; I've been working on building maps and it's a LOT harder than it might seem.

show 1 reply
vldszntoday at 1:38 AM

Looks very good! Thank you

show 1 reply
devcraft_aitoday at 8:30 AM

[dead]

ffwebmastertoday at 2:16 PM

[dead]

zhichuanxuntoday at 5:12 AM

[dead]

freakynittoday at 3:18 AM

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/

show 3 replies