Babylonjs splat positions seems weird, especially with right-handed

This link shows the result of rendering after assigning position values to a single splat and a disc mesh. The first thing that noticeably stands out is the position.

When the mesh position is (1, 2, 3), in order for the corresponding splat to completely overlap it, the splat position needs to be (1, -2, 3).

Another strange point is that if I set useRightHandedSystem to true and load the splat file, it appears as a mirror image compared to the actual splat. Also, the axes differ between loading the splat in typical tools and loading it through Babylon.js.

For example, with the splat file I have, tools like COLMAP or Supersplat(SuperSplat) show the ground as almost perpendicular to the Y-axis, but in Babylon.js it appears almost perpendicular to the Z-axis. Furthermore, if I set useRightHandedSystem to true, the scene appears mirrored.

Is this behavior intended? If so, how should I modify the data if I want to use the Gaussian splat data as some kind of map or background of a scene?

I happened to know that I can invert / display correctly via settings like below:

              const myRotationMatrix = Matrix.FromValues(
                1, 0, 0, 0,
                0, -1, 0, 0,
                0, 0, 1, 0,
                0, 0, 0, 1,
              );
              // assume this mesh is GaussianSplattingMesh
              mesh.setPreTransformMatrix(myRotationMatrix);

Now I guess there were some miss for gsplat mesh when right-handed option is configured

@Cedric

There is no reference standard or coordinate system on GS representation. Does SuperSplat allow to switch between Left hand and Right hand? Do you know its default coordinate system btw?