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:
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.
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.
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.
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?
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.
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.
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.
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.
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:
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...
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/
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.