# Gaussian Splats, NME material block

**URL:** <https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966>\
**Category:** Questions\
**Created:** [March 22, 2024, 10:33am UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966 "2024-03-22T10:33:56Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![yamaciller](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/yamaciller/32/21810_2.png) [@yamaciller](https://forum.babylonjs.com/u/yamaciller)\
**Post date:** [March 22, 2024, 10:33am UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/1 "2024-03-22T10:33:56Z")

</div>

Is there a plan to add NME support for the Gaussian Splat materials/mesh? (maybe in release 7 😉 )  
I am fascinated by the results of the splats but also wondering if that has some future potential.  
Best.  
Werner

---

<div class="post-metadata">

**Author:** ![Deltakosh](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/deltakosh/32/26635_2.png) [@Deltakosh](https://forum.babylonjs.com/u/Deltakosh)\
**Post date:** [March 22, 2024, 3:58pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/2 "2024-03-22T15:58:07Z")

</div>

This is a great idea! What would be the goal of that block?

---

<div class="post-metadata">

**Author:** ![yamaciller](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/yamaciller/32/21810_2.png) [@yamaciller](https://forum.babylonjs.com/u/yamaciller)\
**Post date:** [March 22, 2024, 5:05pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/3 "2024-03-22T17:05:19Z")

</div>

Hi.  
TBH we dont have too much knowledge about Splats atm.  
We try to figure out if we can incorporate it in our pipeline.  
As it is so different to the standard pipeline we dont exactly know how to approach this new method of depicting information.  
Can we light it, can we do shadows, can we modify colors, and so on.

ATM we have a mesh and we apply a noise for a iridescence thickness in a standard PBR workflow.  
Base is a photogrammetry model.

Basically we want to do the same but with GS.  
Need to rush now.  
Will get to that later on.  
Best.  
Werner

---

<div class="post-metadata">

**Author:** ![Deltakosh](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/deltakosh/32/26635_2.png) [@Deltakosh](https://forum.babylonjs.com/u/Deltakosh)\
**Post date:** [March 22, 2024, 6:22pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/4 "2024-03-22T18:22:45Z")

</div>

Adding @Cedric to get his thoughts on how to use nme on a splat.

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [March 25, 2024, 8:42am UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/5 "2024-03-25T08:42:48Z")

</div>

I was thinking of something like the pbr node: A GaussianSplatting node and new mesh inputs (coefficients for the gaussian, splat size,…). I think it’s doable. I have a very small knowledge of how NME internals work but we can discuss that after 7.0 release I think.  
Adding @Evgeni_Popov who did a lot to make GS material/mesh consistent with the rest of the engine.

---

<div class="post-metadata">

**Author:** ![yamaciller](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/yamaciller/32/21810_2.png) [@yamaciller](https://forum.babylonjs.com/u/yamaciller)\
**Post date:** [March 25, 2024, 12:17pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/6 "2024-03-25T12:17:42Z")

</div>

Hi.  
I have a question re. the fileformat.  
There is the .ply fileformat and a .splat fileformat

I have edited and converted a .ply file to a .splat format, which was generated from polycam, with the supersplat tool [SuperSplat](https://playcanvas.com/supersplat/editor)  
The .splat files are reasonable smaller.  
Babylon can read and load that format (as it seems).  
The supersplat editor is quite convinient and so far the only tool which I know to edit splats.  
It seems that e.g. meshlab .ply files dont seem to work after editing?  
A splat editor for babylon maybe (?) ;).

Sry to be a bit wild here, we are just on that splatting topic right now.

We are also looking into the material and shading for the splats, which we will have some questions later on I guess…

Thx, Best.  
Werner

---

<div class="post-metadata">

**Author:** ![HelmutB](https://avatars.discourse-cdn.com/v4/letter/h/439d5e/32.png) [@HelmutB](https://forum.babylonjs.com/u/HelmutB)\
**Post date:** [March 25, 2024, 12:55pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/7 "2024-03-25T12:55:52Z")

</div>

Hello,

I think my first question would be if it is possible to use a custom fragment shader for a GaussianSplattingMaterial. As far as I understood I only have a world position and a color, which could enable a custom shader to do some effects.

My second question is more on an algorithmic level: Is it possible to compute a per-splat surface normal?

For the next questions I might start a new thread 🙂

Thanks  
Helmut (who is testing with Werner and impressed by the image quality)

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [March 25, 2024, 1:22pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/8 "2024-03-25T13:22:04Z")

</div>

> [@yamaciller](#):
>
> A splat editor for babylon maybe (?) ;).

This is a feature that is getting some traction. At least a tool in the inspector to load/save in different formats plus the ability to selected/delete/move splat would be a great addition.

> I think my first question would be if it is possible to use a custom fragment shader

Not possible at the moment. I think it will be in the roadmap for Babylon.js 8 release.

> Is it possible to compute a per-splat surface normal?

I think it’s possible and it would be a good example for the GS custom shaders.

---

<div class="post-metadata">

**Author:** ![Evgeni\_Popov](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/evgeni_popov/32/4432_2.png) [@Evgeni\_Popov](https://forum.babylonjs.com/u/Evgeni_Popov)\
**Post date:** [March 25, 2024, 2:10pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/9 "2024-03-25T14:10:38Z")

</div>

Regarding NME support, I think that’s something we will have to discuss with the team, as the shader code is quite specific when dealing with gaussian splats. We would have to find a clean way to make it available in the editor.

---

<div class="post-metadata">

**Author:** ![yamaciller](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/yamaciller/32/21810_2.png) [@yamaciller](https://forum.babylonjs.com/u/yamaciller)\
**Post date:** [March 25, 2024, 2:39pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/10 "2024-03-25T14:39:06Z")

</div>

NME is really cool when it comes to accessability. (not necessarily necessary when working with professionals here 😉 ) I love the NME.  
First steps would be to get access to all the possible features of the tech itself.(?)  
I wondering if that is the “new triangle”. Everything so far looks exciting.  
hmm.

---

<div class="post-metadata">

**Author:** ![Deltakosh](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/deltakosh/32/26635_2.png) [@Deltakosh](https://forum.babylonjs.com/u/Deltakosh)\
**Post date:** [March 25, 2024, 4:54pm UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/11 "2024-03-25T16:54:03Z")

</div>

I was thinking about a special mode actually (like procedural or particles)

---

<div class="post-metadata">

**Author:** ![zhang](https://avatars.discourse-cdn.com/v4/letter/z/aeb1de/32.png) [@zhang](https://forum.babylonjs.com/u/zhang)\
**Post date:** [May 6, 2024, 9:38am UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/12 "2024-05-06T09:38:54Z")

</div>

May I ask how to export. las files to the. py format supported by babylonjs? Is there any tool available? I am unable to load the. py file even after exporting it using CloudCompare. The screenshot below shows an error message.

 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/b/b/bb77e8fe8af9926580618ad6d2cc5c18644b3487.png)

---

<div class="post-metadata">

**Author:** ![yamaciller](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/yamaciller/32/21810_2.png) [@yamaciller](https://forum.babylonjs.com/u/yamaciller)\
**Post date:** [May 6, 2024, 11:16am UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/13 "2024-05-06T11:16:33Z")

</div>

Hi.  
The cloud compare .ply file does not support splatting in its setup.  
You could do it by hand, but there is a conversion tool, which does that for you.

> **[GitHub - francescofugazzi/3dgsconverter: 3D Gaussian Splatting Converter: A...](https://github.com/francescofugazzi/3dgsconverter)**
>
> 3D Gaussian Splatting Converter: A tool to seamlessly convert 3DGS .ply files to a Cloud Compare-friendly format and vice-versa. Features include RGB coloring, density filtering, and flyer removal ...

Hope that helps.  
Best.

---

<div class="post-metadata">

**Author:** ![yamaciller](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/yamaciller/32/21810_2.png) [@yamaciller](https://forum.babylonjs.com/u/yamaciller)\
**Post date:** [May 15, 2024, 8:04am UTC](https://forum.babylonjs.com/t/gaussian-splats-nme-material-block/48966/14 "2024-05-15T08:04:56Z")

</div>

> **[Spherical Harmonics added to three.js library, GaussianSplats3D - Radiance...](https://radiancefields.com/spherical-harmonics-added-to-three-js-library-gaussiansplats3d)**
>
> Mark Kellogg, developer of the 3D Gaussian Splatting three.js library, GaussianSplats3D has released an update to Version .4.0, enabling spherical harmonics

Might be interesting oO

Best. Werner
