Compression and performance for Gaussian splats

Hi

I know this is a fast paced field and the technology development is everchanging, but what’s the current outlook on techniques for working with large splats on the web in terms of - compression, LOD/distance culling techniques, streaming of data etc.

I’ve seen this example using Self Organizing Gaussians compression that @will posted about on linkedin. It mentions it has PlayCanvas support it right out of the gate. What does that mean in practice? @slimbuck you’re mentioned there been helping to create the decoding of the compressed format. Is that something built into the engine now, or proprietary code? Anyone else tried this technique?

Best Regards

  • Björn

Hi @bjorn.syse,

I have been intending to add support for loading and rendering SOGS in the engine for a while now since the compression results look very promising.

There is a quite a lot of work to do though to get runtime performance and also tooling to match what we have for compressed.ply.

SOGS itself won’t help much with lod, culling, streaming unfortunately. That’s a different kettle of fish :smiley:

1 Like

I see,

Well judging from the large dataset there at Sutro tower, perhaps SOGS is all that is needed to make tours like this perform making the need for the other techniques smaller.

So cool, you are implementing support for it then I figure. Right now that repo is quite high threshold to use it though, perhaps if it would be included in the Postshot software too training would be easier.

Or, did you mean there could be a possibility to no only add support for decompression but also the SOGS compression itself in supersplat, so input could still be an uncompressed ply?

Sorry I missed your reply!

I actually merged SOGS engine support today Support sogs by slimbuck · Pull Request #7510 · playcanvas/engine · GitHub

Getting the tooling for generating SOGS/plas data in SuperSplat would require quite a lot of work, because the tooling is currently CUDA based.

However we could relatively easily offer SOGS compression to our registered users (i.e. editor feature) and we could use it for the superspl.at published content too.

1 Like

Yes please, that would not only be awesome but also i think one of the main things holding 3DGS content back right now. :star_struck:

Hello @slimbuck ,
Is it possible for you to give a bit more information on how to implement SOGS in playcanvas? I succesfully managed to create a SOG splat with the code provided by vincent, but got stuck trying to get it to work in playcanvas.
Thank you

Hi @Casper_AP ,

Sure! Are you using engine or editor? I haven’t actually tried doing this in editor yet…

I am using the editor, I had no idea the engine existed yet. If possible it would be nice if we can get it to work in the editor.

1 Like

I’ll try it myself and share the results!

2 Likes

Hey, I was just wondering if you had any updates for this?

Engine 2.7.0 was the first release which incorporated SOGS support. The Editor is now on 2.7.4.

This is what’s next:

That’s referenced on the SuperSplat roadmap which can be found here:

@slimbuck is away until next Tuesday and I suspect he’ll follow up then.

1 Like

And just in case it passed you by, @Casper_AP, check this out:

1 Like

I saw it on reddit straight after you published it, looks very promising! The only weird thing was some strange behavior on my phone, but after turning off “desktop site version” it worked properly. For some reason it turned it on automatically on the technical demo.

What phone/browser were you using?

Samsung s24 and using chrome. Just tried it again and now it opens without desktop mode straight away.

This looks amazing. Is there any estimate currently of when SOGS support will reach the editor? I recently tried to DIY it through a shader with no luck.

Give us a couple of weeks to come up with a clean solution for Editor users. Engine 2.8.0, which is due in a couple of days, should deliver an Engine example based on SOGS (featuring a streamlined API for the GSplatComponent). At the same time, we’re building the tools to make it easier for you to generate SOGS data from PLY. Sooooon!

5 Likes

Awesome Will, thank you for the quick response. Super excited to try it out :grin:

Hey Will and Playcanvas Team,

I am close to finish my Playcanvas Experience “Celestial Signs” for VIVEVERSE, and it is based on a 3DGS that’s nearly 500mb, even after exporting it with compression via marvelous Supersplat.

May I ask: Does it make sense to wait for Playcanvas editor to accept SOGS before my launch? Because right now, it’s very laggy…

Thank you for all the great effort.

SOGS won’t help with runtime performance - it will just reduce your load time. 500MB is very large for a 3DGS! How many Gaussians is that? Maybe consider retraining your splat but set a lower upper bound for Gaussian count?