PlayCanvas SOG stores Gaussian parameters packed inside WebP texture atlases sorted by Morton code. When you want to use a model in simple Three.js scripts or legacy WebGL shaders that only know how to read flat 32-byte chunks, converting from SOG back to .splat unpacks the textures into linear memory.
Technical Decompression Steps
[PlayCanvas SOG Container]
│
├── Decode Texture Atlases (RGB / Opacity / Quaternions)
├── Reconstruct Absolute Scale & Position Vectors
└── Interleave Sequentially into 32-Byte Linear Blocks
│
▼
[.splat Array Buffer]
| Output Field | Data Format | Description |
|---|---|---|
| Position | 3 $\times$ Float32 | Continuous metric XYZ coordinates |
| Scale | 3 $\times$ Float32 | Ellipsoid axes in metric units |
| Color | 4 $\times$ UInt8 | 8-bit RGBA channels |
| Quaternion | 4 $\times$ UInt8 | Normalized spatial rotation |
How to Convert SOG to Splat
- Drag and drop your
.sogfile into the upload zone. - Select SPLAT target format.
- Click Convert & Download .SPLAT for an uncompressed linear splat file.