Hacker News new | ask | show | jobs
by nathancahill 3428 days ago
The state of the art in open source 3D mapping right now is CesiumJS[0]. From browsing their docs, it looks like it's in a similar place, capabilities-wise. Unfortunately, the limiting factor for most projects isn't the JS library, but it's the availability of high-resolution DEMs (digital elevation models). These won't become widely available until we do something about the price of lidar.

Fortunately, there's a lot of interest in reducing the cost of lidar right now for self driving cars, so maybe the situation will improve soon. I've seen really high resolution scans of small areas (Boulder, Colorado had the entire town scanned a couple years ago), and it truly blows you away. Every detail down the the shape of trees is available.

[0] https://cesiumjs.org/

4 comments

Hi, this is Ondrej from Melown.com.

With all due respect to the folks at AGI and the amazing work they put to CesiumJS, Melown is a very different product tailored at different use cases. We developed Melown bottom-up as a platform for interactive rendering True3D (photogrammetric or lidar based) data, at street-level detail and planetary scale. Cesium on the other hand, is essentially a 2.5D (DEM) rendering library with some interesting add-ons.

Melown now natively supports 2.5D data and Cesium has incorporated support for True3D data through its "3D tiles" standard. This makes the two systems look similar in appearance, though they are by no means similar by design and there differences show once you work with anything more complex than simple demos.

As one of the authors of Melown (and a person with only very limited knowledge of Cesium) I tend to see many advantages in Melown data model, such as support for multiple reference frames (see [0] and [1]), powerful data integration capabilities, state of the art geodata rendering (complete with styles similar to the ones used by Mapbox), and most importantly, performance when dealing with large scale True3D data. Cesium users would probably point out to its support for temporal datasets and wide-array of connectors for various GIS formats.

In the end the choice depends on where your priorities are. I sincerely doubt you could base a website such as the one at [2] on Cesium due to some important data integration issues. Perhaps some people more knowledgeable of Cesium might prove me wrong.

Of course, there is one more important difference between Cesium and Melown. Melown, at this time, is not yet fully open-sourced yet. But that difference is not going to be there much longer. We at Melown will be open-sourcing not only the JS library, but much of the server-side data management software, hopefully providing web and desktop/mobile software developers with whole new array of choice when dealing with the challenges of modern 3D mapping application development.

[0] https://melown.com/mercury [1] http://tinyurl.com/zk6xqnq [2] https://melown.com/intergeo2016

DEMs: how high-res do you really need the DEMs, how many petabytes will you sacrifice for sub-meter accuracy? Unless the app is for mountaineers, what's out there for free in lower-res (to be interpolated by varying to-be-experimented-with smart algos/heuristics throughout academia) and affordably handle-able on a global scale [1] should be a perfectly sufficient starting point until users actually complain about minor inaccuracies. Whether we're talking 30m or 90m resolution.. it's not "high" but for all sorts of startups but the most exacting surveying/etc pro-level b2b offerings, a fine starting point.

(Of course I'm only talking DEM here, since you mentioned them, whereas Lidar proper kinda covers details such as houses and other structures as 3d points.)

[1] http://viewfinderpanoramas.org/dem3.html seemed to be the best in the "free" (for prototypes / MVPs and such) space when I last played in this space on-and-off from 2011 through 2014~ish.

We use Cesium in a couple applications. We actually generated some imagery and terrain datasets using open-source tools in 2014.

In late 2015, I spent a couple weeks researching GIS data conversion utilities, Cesium's formats, and potential improved source datasets we could use to generate higher-quality imagery and terrain data. I can't haul out the relevant writeup atm, but I concluded that the EarthEnv DEM90 dataset appeared to be highest-quality free terrain source I could find ([0]), and the TrueMarble collection was the best free imagery source ([1]).

I generated our earlier terrain dataset using the Cesium-Terrain-Builder utility ([2]). It generates Cesium's "heightmap" format, but does not yet support the "quantized-mesh" format. I have seen a couple other tools that appear to deal with quantized-mesh tiles, though. On my list to dig into at some point.

As a related note, using the MBTiles format ([3]) for storing and moving tile datasets around is great. Multiple gigabytes in a single SQLite database file (or possibly a few files split by zoom level), rather than trying to move around millions of individual 10KB images on disk. Highly recommended.

[0] http://www.earthenv.org/DEM.html

[1] http://www.unearthedoutdoors.net/global_data/true_marble/dow...

[2] https://github.com/geo-data/cesium-terrain-builder

[3] https://www.mapbox.com/help/an-open-platform/

I feel like Multi-View reconstructions from a combination of high resolution ground and aerial photography are the only way we can hope to do better than Google Earth. Earth still suffers a lot on reversing lighting. Maybe a sunlight raytracing model could reconstruct neutral diffuse textures from a combination of time information, position information, and surrounding geometry.

Maybe some day we can get angular and spectral reflectance, normals, refraction, and subsurface diffusion maps. Each of these would be essentially the same optimization as the diffuse maps.

> Unfortunately, the limiting factor for most projects isn't the JS library, but it's the availability of high-resolution DEMs (digital elevation models). These won't become widely available until we do something about the price of lidar.

You can cheaply generate approximate DEM from drone imagery. E.g. DroneDreploy.

How approximate?