Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Global 3D topography explorer (jessekv.com)
118 points by jessekv 29 days ago | hide | past | favorite | 36 comments
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".




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 :)


Add FluidX3d

and then you can have Cursor layer over an actual fluid dynamics to the catchments and determine how the Sphinx was eroded...

Jokes aside, do it for wind flow layers as well.

https://github.com/ProjectPhysX/FluidX3D


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/


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/


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


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

I'd love to compare notes.


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 ;)


> 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 ;)


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


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


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


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


very interesting... on SRTM the example I checked (Pyramid Lake) is all at one altitude (albeit, only with 1 m resolution), while on MERIT-DEM, the lake surface differs by more than 1 m across the lake.

Here is a difference map between the two: https://i.imgur.com/Iw5bsdj.png


It's too late to edit, but I should clarify, MERIT has at least two DEM, the MERIT-DEM and MERIT Hydro.

MERIT Hydro is the one I am using at larger scales.

MERIT Hydro has "Hydraulically Adjusted Elevations". Of course the actual elevation of the surface of the lake will be set up in whatever direction the wind is blowing on a given day, but MERIT Hydro is interesting because they tweaked the elevations to make them monotonically decreasing in a way that should align with the mean direction of flow.

For visualization, MERIT Hydro is nice because it is smooth float32 (as in your image) that also downsample nicely. It's just not high enough resolution for smaller catchments. AW3D30 has 30m resolution which is much better, but is stored in int16 and can sometimes look a bit lumpy, especially with a large vertical exaggeration. For example:

https://topography.jessekv.com/?lat=1.3622&lng=103.8131&mode...

I found a spot on Pyramid Lake that has the whole catchment:

https://topography.jessekv.com/?lat=40.0756&lng=-119.5985&mo...

I'm going to add this to "favorites" :D


Ah, I clearly just had to keep clicking! I see now that the DEMs are credited in the rendering, which I didn't notice before.


One might do well to use a Voroni diagram algo whereby a middle-out where the center is the center of the obloide(globe) and you calc the volume of water as compared to the topology.

https://hn.algolia.com/?q=voronoi

Some dope inspiration in HN threads...


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


Update: Thanks for all the interest!

I've run out of monthly credit at map tiler, so I'm going to have to tinker a bit with the explorer view.

Edit: Switching to protomaps for now.


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


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?


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.


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?


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.


> 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 :(


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


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


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


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


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.


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.


That worked better than excpected. Thanks for the heads up.


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


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.


Really nice P.S don't try viewing Everest :)


Lovely. Need a compass point image added.


Cool work!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: