[HN Gopher] Show HN: Global 3D topography explorer
       ___________________________________________________________________
        
       Show HN: Global 3D topography explorer
        
       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".
        
       Author : jessekv
       Score  : 67 points
       Date   : 2025-02-10 15:54 UTC (7 hours ago)
        
 (HTM) web link (topography.jessekv.com)
 (TXT) w3m dump (topography.jessekv.com)
        
       | ekianjo wrote:
       | I see you use glb files. Any way to convert them into something
       | that can work with GDAL?
        
         | jessekv wrote:
         | 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.
        
       | petargyurov wrote:
       | 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 wrote:
         | > 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 ;)
        
       | cozzyd wrote:
       | 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 wrote:
         | It's AW3D30 and MERIT-DEM. AW3D30 has Antartica, but I don't
         | have catchment or island polygon data there yet.
        
           | cozzyd wrote:
           | yes, Antarctica is slightly complicated by the need to use a
           | different coordinate system to get reasonable results.
        
           | cozzyd wrote:
           | 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.j
           | essekv.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=-1
           | 19.5641&mo...
        
             | jessekv wrote:
             | 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&mod
             | e...
             | 
             | and
             | 
             | https://topography.jessekv.com/?lat=31.4136&lng=35.4702&mod
             | e...
        
               | cozzyd wrote:
               | 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
        
               | jessekv wrote:
               | 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&m
               | ode...
               | 
               | 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
        
               | cozzyd wrote:
               | 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.
        
       | Karawebnetwork wrote:
       | 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 wrote:
         | > 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 :(
        
       | chefandy wrote:
       | Cool work!
        
       | ata_aman wrote:
       | 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 wrote:
         | 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 wrote:
           | 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 wrote:
       | 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?
        
       | folli wrote:
       | 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/
        
         | jessekv wrote:
         | Thanks! You inspired me to try babylon.js. You may also
         | recognize the background image.
         | 
         | I'd love to compare notes.
        
         | pedalpete wrote:
         | 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/
        
         | wilson090 wrote:
         | 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
        
       | entropie wrote:
       | Is it maybe possible to download object files or something like
       | that (that I can convert to stl)?
        
         | jessekv wrote:
         | Not sure- I'm generating the glb on-demand from the raw DEM
         | data with numpy. What interests you about STL?
        
           | entropie wrote:
           | 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.
        
       | diggan wrote:
       | 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 :)
        
       | trhway wrote:
       | While Russia (in the "best" traditions of USSR) has recently, as
       | a response to Ukrainian drones, outlawed detailed Russian
       | topographic data _inside_ Russia.
        
       ___________________________________________________________________
       (page generated 2025-02-10 23:00 UTC)