visgl / loaders.gl

Loaders for big data visualization. Website:
https://loaders.gl
Other
671 stars 187 forks source link

Tracker: COPC tiled loader #2911

Open jo-chemla opened 4 months ago

jo-chemla commented 4 months ago

This is currently low priority but path forward looks like this:


Original request:

Following comment by @hobu here, it would be nice if loaders.gl could implement a COPC tiled loader. Quick note, COPC stands for Cloud Optimized PointCloud and is basically the las/laz equivalent to COG for pointclouds instead of geotiffs.

Might be useful to have a look at the COPC.js repo from @connormanning and hobu team. Probably very close to how the OGC 3D Tiles loader works, with points coordinates being expressed in an arbitrary CRS (Coordinate Reference System) usually described by a proj4 string.

We would be happy to support someone doing a loaders.gl COPC implementation. It should be straightforward for someone who knows loaders.gl. Please contact me if you're interested.

connormanning commented 4 months ago

For some additional info, copc.js provides what I'd call "primitives" for dealing with LAS/LAZ/COPC data: header/VLR parsing, hierarchy reading, fetching a COPC node slice (with API for fetching the laszip-compressed block, or decompressed to LAS, or providing a view with getters for each attribute including extra-bytes). Determining what to fetch, caching, running decompression in a web worker, etc, are left up to you.

See the PRs for COPC support in potree and itowns for examples of copc.js usage in the context of adding a COPC loader to a downstream rendering project.

ibgreen commented 3 months ago

@connormanning I made a fleeting attempt at integrating your COPC code maybe 6 months ago but it had bundling issues as it was doing dynamic imports of node specific libraries (fs?) or some such.

Also loaders.gl has its own LASLoader module which is older and I would prefer to update that to align with the COPC LASLoader implementation but didn't immediately see how to separate the code in COPC.

By your description, sounds like your primitive system might be just what is needed to make your code fit into the loaders.gl model.

If we were able to pair up for an hour or so, perhaps we could make short work of it? email me if interested.

misteryyy commented 2 weeks ago

Hello guys, have you mange to make some progress on this topic? @connormanning @ibgreen