3D Gaussian Splatting?

Hello. I’ve started experiment with 3D GAUSSIAN SPLATTING

I’ve followed this method, and I’m totally hyped : GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"

I’m now searching for a way to visualize and manipulate them in realtime inside TD.

The training process requires a lot of libraries and dependencies, but at the end, we just obtain a *.json file (for the cameras) and a *.ply file (with a lot of points attributes). Indeed, the ellipsoids have to change shape, color and opacity depending of the camera position.

Quite difficult, BUT… Inria also provides the sourcecode and windows binaries for a viewer, based on their SIBR framework. And it’s really fast !

Here : https://sibr.gitlabpages.inria.fr

Do you think I can run it through TD?

Or maybe recreate this method via a shader?

Any ideas? Thanks

3 Likes

I am also very interesting in getting Gaussian Splats to work in TD.

There seems to be a Unity addon already created and previously I experimented with the NeRF Studio add-on for Blender. It is only a matter of time until someone takes up the challenge to implement this in TD. I guess the key to getting this to work inside TD would be to understand how this SIBR viewer works and translate it into python code or a custom operator?

Not sure, but hopefully more knowledgeable people can people start chiming in to get the ball rolling with ideas.

@b2bk,

would be interesting to see a resulting .ply and json file - do you have one of those?

cheers
Markus

1 Like

Hi @snaut , hi @julsbell

Markus, I’ve uploaded the output file i used for this video (a metal workshop near Amsterdam)
The archive link (expires in about 30 days) :
https://www.swisstransfer.com/d/64847d69-18d9-4a5b-bf75-d073beb3990d

The preview video :

Screenshot taken in SIBR viewer :

I have to tell, with @timgerritsen, we have made some major steps to bring 3D Gaussian Splats in TD. (I say we, but in fact… he did ^^)
Tim used this output file as well and he wrote a shader to handle the positioning, the coloring (difficult task with color harmonics) and the display of the gaussian splats.
The points in the ply files contains a LOOOT of information, we extract with PointFileIn and multiple PointFileSelect

Not perfect yet, still some size and orientation issue, but very promising results with a very good performance !!! See the image below, rendered in TD, with a 180° fisheye from cubemap.

I’ll keep you posted, but i can say already we really love this technique, and will try to go as further as possible :slight_smile:

6 Likes

Hi there!

Yes we’ve been diving deep in the splatting business :smiley: Very interesting technique indeed.
As far as we understand now is that the PLY file contains positions of the splats (xyz), rotational information (quaternion), scales (in log space) and spherical harmonics to describe the colors depending on the viewing direction. We’ve managed to load all the data though still bumping into some problems. It feels the splats are not orientated correctly if I compare it to the SIBR viewer. Might be related that the coordinate system is different to TD, but haven’t figured out yet to get the right orientations.

Also a similar problem we have with the spherical harmonics, giving weird red/green-ish colors when using higher orders of the harmonics (the fish eye image only uses the first order, so kinda like a diffuse color for all the directions).

Anyways will dive into it some more and keep you posted :smiley:

cheers,
Tim

5 Likes

Fun times! I’ve got my system setup to produce these also. Was looking into the unreal plugin but price is steep. Let me know if you’d like anymore test files.
Quine

Hey Markus,
I’ve got a bunch of files also if you need anymore.
Quine