About tools for converting 3D Gaussian Splatting to 3D Tiles

Hi there,

I have been searching up online about some of the available tools to convert 3DGS files to 3D Tiles, but there’s not many. I wonder if anyone has any good recommendations, especially for converting large scenes?

I did try one tool called GISBox, but the results turned out to be very sparse and performance was very low for large scenes(~10m splats). Not sure if it’s the tool’s problem or CesiumJS has a limit on the rendering. Would appreciate any help on it!

There is a lot of research and development going on around Gaussian splatting right now. Support for Gaussian splats in CesiumJS via the KHR_spz_gaussian_splats_compression extension has only been added recently, and the extension is not even finalized. Similarly, producers are developing tooling to convert between different splat formats, and to eventually generate it in a form that is suitable for 3D Tiles.

But note that as part of the recent development efforts by Cesium, Cesium ion now supports uploading Gaussian splat data as .PLY files, and converting them into 3D Tiles 1.1. tilesets. You might want to give that a try.

(An aside: The screenshot looks like it is rather a (somewhat sparse) point cloud. Which data was this created from, and does this data actually represent Gaussian splats?)

1 Like

I’ve created a tool that can perform conversions, but it can’t handle LOD for now. If it’s convenient for you, you can send me the data and I’ll give it a try.

I also try this tool called GISBox, it is so terrible. maybe you can try one tools named cesiumlab4, WestWorld Company’s software. This tool works well, but the latest version of CesiumJS is not supported, but the splat branch version of Cesium is still available. I guess they still support the original KHR_gaussian_splatting extension for GS. By the way, the software trial application is worth complaining about. Someone on the Bilibili website has also shared related slicing tools.

1 Like

Now supports octree LOD :melting_face:

That sounds cool! How large of a splat file can you handle now and how about the performance and quality? I have also been looking into a tool called splat-3dtiles and it looks quite promising to me now.

I tested a ply data. The original data is ChristmasTree.ply (419M), and the corresponding ChristmasTree.splat is 55M. The number of points is not large, point number 1,774,942.

  1. Without LOD, the resulting data is 22.4M.
  2. With LOD octree partitioning, the resulting data is 27.3M.

You can apply for it. I use the publicly available 3DGS data (3GB, “.splat” type) and our own training data(13GB,“.ply” type, But the computer crashed) to produce 3DTiles. The quality of the tiles cut out is still good. Of course, if you want to know more, our company also has similar products, and the effect is similar to theirs. However, the function is coming online, and the slicing solution we use is also different from splat-3dtiles tools.

maybe, it is best for you to provide the original data and sliced data for comparison. The slicing effect alone cannot tell whether your algorithm is good or not.

Hi,

I would like to put my data (ply-file) to ion but ion crahes. It is displayed correct in SuperSplat

Could you give me a tip in which way i have to process the ply-files, that they work with Cesium ion

  • compression …

Regards

Rüdiger

@Ruediger_Brand There seems to be some connection to Cesium 3D-Tiles glb-files not visible in Unity - #5 by Marco13

When you have more specific information about the PLY data or the crash, then this might be investigated further. Cesium ion should be able to process Gaussian Splat PLY files. (There are some degrees of freedom for how PLY files are structured. In doubt, as a first analysis step, maybe you could post the header of these files here?)

Something went wrong with this asset. To report this issue, please email support@cesium.com with the asset ID: 3944893.

To help resolve this faster, include any relevant information about your data, such as what software you used to export it.