Skip to content(if available)orjump to list(if available)

Show HN: Global 3D topography explorer

Show HN: Global 3D topography explorer

30 comments

·February 10, 2025

I made a web app to generate 3D models of real places on earth from land cover and elevation data.

Click anywhere on the map to get a polygon, and then click "generate".

It should work at most scales, but if your watershed or region selection is too large, the result can be less exciting because it's so flat.

As a warning, the 3D models can sometimes be too much for my phone. It's nicer on desktop. I'm still working better on mobile support.

The land cover data I'm using gives a cool effect, but at some point I'd like to add in global imagery and clouds.

The backend is a Python thread running on an old Lenovo Thinkcentre in my closet, so if it goes down, this is why. (I also sometimes need to restart it when the network card stops working... I really should figure out why sometime.)

If you find a really cool island or watershed, let me know and I can add it to the "favorites".

folli

Nice!

I'm working on something similar but aimed at visualizing GPS tracks, e.g. for hiking and biking: https://cubetrek.com/view/6638

Let's share some notes, if you're interested! Code is open source: https://github.com/r-follador/CubeTrek/

wilson090

Oh cool, I made something similar but for making a styled graphic rendering of a ride/run/trek: https://riderender.wilsonspearman.com/

also open-sourced: https://github.com/wilson090/ride-render

pedalpete

Nice, I'm the founder of Ayvri (acquired) we were doing 3d virtual scenes for lots of different use cases. The Tor des Geants used our 3D map for their event one year, it was one of my favorites to see in 3D.

The publicly available stuff is gone now, but there's still a grainy poor resolution video showing what we used to do.

https://ayvri.com/

jessekv

Thanks! You inspired me to try babylon.js. You may also recognize the background image.

I'd love to compare notes.

diggan

It would be great if one could select multiple "Catchments", since "Region" seems to select a whole country, while Catchment is dividing the island I'd like to capture into three pieces, one of which is huge and the others kind of small. Made a small demonstration of the problem here: https://imgur.com/a/tyudJvW

Another thing that would be awesome is if we could download the .glb files via a link/button in the visualizer, instead of having to manually grab the download link from the developer tools :)

stevage

I was hoping to be able to visualise a mountain peak, but watersheds doesn't work for that.

cozzyd

Which DEM are you using? MERIT-DEM? It seems to exceed SRTM's coverage, but be smaller than ASTER's coverage (except it does include the Northernmost island in Greenlan which I think falls outside 83 N). You might consider adding BEDMAP2 or REMA to cover Antarctica...

jessekv

It's AW3D30 and MERIT-DEM. AW3D30 has Antartica, but I don't have catchment or island polygon data there yet.

cozzyd

Speaking of catchment, lakes behave in a strange way to me. Is this an artifact of them somehow being divided up into river catchment zones? This sliver of Lake Michigan shows only the Chicago River (and it's wrong anyway, since the Chicago river flows the wrong way :) ) . https://topography.jessekv.com/?lat=41.8869&lng=-87.5356&mod... I would naively expect clicking on a lake would show the sum of all watersheds going into it.

Ok, Lake Michigan is weird due to the canals (and strangely the Des Plaines river is shown there, maybe it's confused by that) but even very straightforward endorheic lakes seem divided up https://topography.jessekv.com/?lat=40.0780&lng=-119.5641&mo...

jessekv

Yes, these inaccuracies come from using a (global) DEM for catchment delineation. It also behaves strange in river deltas, when multiple branches of the river show up.

I'd like it to render a whole endorheic basin with one selection of a lake, but currently it splits the lake into two or more, e.g.

https://topography.jessekv.com/?lat=31.4299&lng=35.4724&mode...

and

https://topography.jessekv.com/?lat=31.4136&lng=35.4702&mode...

cozzyd

yes, Antarctica is slightly complicated by the need to use a different coordinate system to get reasonable results.

ata_aman

That's sweet, I'm planning to implement something like this on my project[1] as well (also a Christmas gift to myself). Right now it spits out points but regions and polygons is on my to-do list. Suggestion: make the map cover the entire browser window/remove the black borders, it gives it a more HD feel and it makes it immersive.

[1] https://godview.ai

diggan

Doesn't it end up being kind of a shameless plug and less of a "here is something similar" when your own thing isn't at all similar and shares no functionality with what OP posted?

ata_aman

I mean, not really? It's not like I make money from it, it's completely open-source and free to use. I gain nothing besides sharing similar work to OPs which I found interesting.

maxloh

Taiwan renders pretty good for me: https://topography.jessekv.com/?lat=23.9339&lng=121.0158&mod...

Do you consider open-sourcing the code behind it?

petargyurov

Nice, what was the motivation?

The Amazon made my poor unplugged M1 stutter.

> The backend is a Python thread running on an old Lenovo Thinkcentre in my closet

I love that, however, RIP in advance ;)

jessekv

> what was the motivation

Sort of a Christmas present to myself, always wanted to visualize the world this way. I've sunk hours just clicking around on the catchment selector.

But I'd like to get to this sort of experience one day: https://xkcd.com/941/

> RIP in advance

Yes, I also wanted to see what asyncio could take ;)

Karawebnetwork

I wish there was a way to select multiple catchments at once, because using "region" for Canada or the US selects the entire country and not individual states.

A favorite of mine to look at is October Revolution Island and its glaciers.

jessekv

> I wish there was a way to select multiple catchments at once

Me too.

> October Revolution Island

Unfortunately my land cover data does not reach there either :(

entropie

Is it maybe possible to download object files or something like that (that I can convert to stl)?

jessekv

Not sure- I'm generating the glb on-demand from the raw DEM data with numpy. What interests you about STL?

entropie

Id like to (3d) print topo maps and most online tools are either not for europe or just bad.

Your comment is very helpfull. I might figure it out myself.

cozzyd

QGIS has a plug-in for this. I've toyed with writing my plug-in for a colorful 3D format for 3D printing purposes though.

trhway

While Russia (in the "best" traditions of USSR) has recently, as a response to Ukrainian drones, outlawed detailed Russian topographic data _inside_ Russia.

chefandy

Cool work!

ekianjo

I see you use glb files. Any way to convert them into something that can work with GDAL?

jessekv

All the data started out as geotif, the final glb output is just for the web view. For GDAL it would be easier to go back to the original geotif than to extract the data from the glb.