Support .ply or .splat(3dgs)

There are already some independent viewer implementations (relying on threejs or other game engines), such as:
mkkellogg/GaussianSplats3D: Three.js-based implementation of 3D Gaussian splatting (github.com)

huggingface/gsplat.js: JavaScript Gaussian Splatting library. (github.com)

BabylonJS/Babylon.js: Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework. (github.com)

If you want to implement cesium’s built-in support, how should you do it? Any instructions?
Thank you

5 Likes

Eagerly awaiting gaussian splat support. We are doing a pilot with a big customer. Gaussian splat is the solution but it would be awesome to use ion instead of traditional web map libraries.

This is my prototype.

https://x.com/anotherbrain/status/1795724912914796637

3 Likes

“Looking forward to it very much, hoping for further developments.”

can you give us step by step tutorial?

Looks great, that’s another three.js canvas synced with cesium as it looks in the DOM?

like in this example

At this pace and to leverage all threejs addons wouldn’t it make sense to have something like Cesium for three.js as alternative web based renderer?

three.js based NASA-AMMOS/3DTilesRendererJS

Can also be tested for arbitrary 1.0 tilesets by just adding the url
https://nasa-ammos.github.io/3DTilesRendererJS/example/bundle/index.html#https://urltosomerandomtileset.js

or for ion:
or 3D Tiles Renderer Cesium Ion Integration Example

This works quite nicely already, but missing all convenience for geodesic stuff and cameraControl. Yet I would like some tile traversal control for cesium tilesets to never fetch leaf nodes for example.

What’s non-trivial and harder to add is likely georeferenced terrain and imagery provider support in three.js

If you don’t need planetary scale. like with splats, three.js render should just hold up fine with local precision and 2D/Columbus modes disabled.

Or to have some occlusion for objects being closer to the camera in one of the scene, it mght be feasible to sample the depth buffers from cesium and threejs and create some binary mask for some sort of matte compositing? Lots of ifs here. But if you want to have object from cesium not just in the background of three.js what’s a reasonable way out here?

Multi camera support for same scene three.js would also be a big plus for cesium on the web.

1 Like