Interactive 3D viewer for photogrammetry scans. Drag to rotate, scroll to zoom.
These models use the Gaussian Splatting format, which stores 3D points with color information encoded as spherical harmonic coefficients. The PLY file structure includes:
x, y, z coordinates for each pointnx, ny, nz (used for other purposes in the original data)f_dc_0, f_dc_1, f_dc_2 - the DC (zeroth-degree) spherical harmonic coefficientsTo extract RGB colors from these coefficients, we use the formula:
SH_C0 = 0.28209479177387814 // 1 / (2 * sqrt(π))
R = 0.5 + SH_C0 * f_dc_0
G = 0.5 + SH_C0 * f_dc_1
B = 0.5 + SH_C0 * f_dc_2
The standard Three.js PLYLoader doesn’t recognize these custom attributes, so the viewer includes a custom parser to extract and convert them to vertex colors.
Update 20/10/2025: Added support for loading compressed .7z PLY files by decompressing them in the browser. Using 7z compressed the living room model from about 100MB to about 10MB!