Tiny Online Tools logoTiny Online ToolssearchSearch tools…grid_viewAll Tools
Homechevron_rightGaussian Splat Toolschevron_rightGaussian Splat Coordinate ConverterGaussian Splat Coordinate Converter

Gaussian Splat Coordinate Converter

Convert a Gaussian splat capture between the axis conventions of COLMAP, glTF, Unity, Unreal and Blender, spherical harmonics included.

upload_file

Click to browse or drag & drop files here

PLY, SPLAT, SPZ, KSPLAT or a SOG bundle

Accepted: .ply,.splat,.spz,.ksplat,.sog,.zip,.json

Similar Tools

3D Coordinate System Converter

3D Coordinate System Converter

Convert 3D models between Y-up and Z-up, and between right-handed and left-handed coordinate systems, free in your browser.

Gaussian Splat Compressor

Gaussian Splat Compressor

Shrink a Gaussian splat capture by splat count, spherical-harmonic degree and container, with the output size shown as you drag.

Gaussian Splat SH Inspector

Gaussian Splat SH Inspector

See what the spherical harmonics in a splat capture are doing: band energies, the scene at each degree, and one splat's colour over every view direction.

Gaussian Splat to Point Cloud

Gaussian Splat to Point Cloud

Convert a 3D Gaussian splat capture into a coloured PLY or XYZ point cloud that CloudCompare, MeshLab and Open3D read correctly.

SVG Stroke to Fill

SVG Stroke to Fill

Convert SVG stroke-painted elements to fill-painted paths for better compatibility.

PDF to JPG

PDF to JPG

Convert PDF pages into high-quality JPG images.

Build Plate Arranger

Build Plate Arranger

Pack several models onto a print bed automatically, drag them where you want them, and export the arranged plate as one model.

apps

More Tools

Browse our full collection of free online tools.

Why your capture arrives on its side

There are only a handful of axis conventions in wide use, and every capture and rendering tool picked a different one. COLMAP and OpenCV are RDF — x right, y down, z forward. glTF, three.js and SPZ are RUB — x right, y up, z back. Unity is RUF and left-handed. Blender is RFU, Z up. Unreal is FRU, Z up and left-handed.

Move a file between two of them without converting and it arrives on its side, upside down, or mirrored.

What most converters get wrong

A splat is not a point. Converting a capture correctly means rotating three things:

  1. the positions — everybody does this
  2. the rotation quaternion of every splat — most tools do this
  3. the spherical harmonics — almost nobody does this

Skip the third and the geometry looks right while the view-dependent shading stays bolted to the old axes: a reflection that used to slide across a surface as you walk past now slides the wrong way. This tool rotates the spherical-harmonic bands with the geometry, using rotation matrices solved directly from the same basis it evaluates the colour with.

Mirrors

Three of the possible conversions flip handedness — the matrix has determinant −1. A mirror is not a rotation and cannot be written as a splat's quaternion. Positions and scales come out exact; each splat's orientation carries only the rotational part. When that happens the tool says so, prominently, rather than handing you a scene that renders inside-out and letting you find out later.

Also here

  • Uniform scale — positions and splat sizes together, so the capture keeps its shape. Metres to centimetres, or a capture trained at an arbitrary scale.
  • Centre at the origin — most engines import an asset at its stored origin, and a capture's origin is wherever the reconstruction happened to put it.

The before and after are shown side by side, so a wrong choice is obvious immediately. Everything runs in your browser.