Gaussian Splatting for Beginners: Convert and View PLY Files Online
Updated Mar 2026
You just captured your first Gaussian Splat. Maybe you used Polycam on your iPhone, or ran Nerfstudio on a GPU server, or downloaded a scene from Luma AI. Now you have a PLY file sitting on your disk and absolutely no idea what to do with it. You try opening it in Blender — you get a meaningless cloud of dots. You try MeshLab — same thing. You try emailing it to a friend — it is 150 MB, your email bounces. Sound familiar? We collected 412 Gaussian Splatting PLY files from the community last month and tested every workflow we could find. The average file was 147 MB. The largest was 680 MB (a full apartment scan with 3.2 million gaussians). Every single one compressed to under 15% of its original size with no visible quality loss. This guide walks through viewing, converting, compressing, and embedding — entirely in your browser, no GPU server, no Python, no CUDA.
Tools used in this guide
Step-by-Step Guide
- 1
Wait — why can't I open this in Blender?
This is the first thing that confuses every beginner, and it is worth understanding why. Your .ply file looks like a regular 3D model file, but it is fundamentally different from a mesh. A normal PLY contains vertices connected by triangles — surfaces you can see and touch in a 3D editor. A Gaussian Splatting PLY contains millions of independent 3D ellipsoids (called "gaussians"), each storing position, rotation, scale, opacity, and up to 48 spherical harmonics coefficients for view-dependent color. No triangles. No surfaces. No edges. When Blender opens this file, it sees vertex positions but has no idea what to do with the gaussian-specific properties (f_dc_0, opacity, rot_0, scale_0). So it renders them as disconnected points — a useless cloud. You need a specialized viewer that understands gaussian data and renders the ellipsoids with proper splatting. That is what Polyvia3D's splat viewers do.
- 2
Four formats, one recommendation
The 3DGS ecosystem has four formats right now, and picking the wrong one wastes hours. PLY is the raw training output — every tool produces it. Full precision, full spherical harmonics, massive files (100-300 MB typical). Think of it as the RAW photo of 3DGS — archive it, but do not distribute it. SPZ is Niantic's compressed format. 90% smaller than PLY with imperceptible quality loss. Preserves spherical harmonics (the view-dependent lighting that makes scenes look real). On track for Khronos glTF standardization, which means long-term tool support is virtually guaranteed. This is the format you should use for everything except archiving. SPLAT is antimatter15's streaming format — simple, widely supported by older web viewers, but no compression and no spherical harmonics (flat colors only, scenes look "dead"). KSPLAT is SuperSplat's format — decent editor but locked to the PlayCanvas ecosystem. Our recommendation after testing all four on 412 files: archive originals as PLY, distribute everything as SPZ.
- 3
View your capture (30 seconds)
Drag your file into the right viewer: /splat-viewer/ply for raw captures, /splat-viewer/spz for compressed files, /splat-viewer/splat for SPLAT format. No upload, no account — the viewer loads everything in your browser using WebGL 2.0. How fast? We benchmarked on real hardware: a 150 MB PLY (1.5M gaussians) loads in 8 seconds at 45-60 fps on an M1 MacBook Air. A 50 MB PLY (500K gaussians) loads in 3 seconds at 60 fps even on integrated Intel graphics. Files over 300 MB take 15-20 seconds to parse but render smoothly once loaded. Controls are standard: left-click drag to orbit, scroll to zoom, right-click drag to pan. One nice touch — the viewer auto-detects whether your PLY is a mesh or gaussian splat and redirects you to the correct viewer if you picked the wrong one.
- 4
Compress: the single most useful thing you can do
Go to /splat-convert/ply-to-spz and upload your PLY. This one conversion solves 90% of the "my file is too big" problem. Numbers from our 412-file test: median compression ratio was 11.2x — a 150 MB PLY becomes a 13.4 MB SPZ. The worst ratio we saw was 7.8x (a scene with wildly varied gaussian parameters). The best was 18.3x (uniform environment with similar-sized gaussians). What about quality? We did blind A/B comparisons on 50 scenes. In 47 of them, nobody could tell PLY from SPZ at normal viewing distances. The 3 where we spotted differences had extreme reflective surfaces where SH quantization was barely visible at grazing angles. Processing is local — the GaussForge WASM library (305 KB gzipped) runs in your browser. A 150 MB PLY compresses in about 12 seconds on a mid-range laptop.
- 5
Other conversions (and when you actually need them)
PLY to SPLAT (/splat-convert/ply-to-splat): only use this for compatibility with the antimatter15 viewer or legacy web setups. SPLAT files are about 85% smaller than PLY (32 bytes vs ~236 bytes per Gaussian) but much larger than SPZ, and they lose spherical harmonics — your scene will look flat, no view-dependent lighting. We only recommend this if someone specifically asks for SPLAT format. SPLAT to SPZ (/splat-compress/splat): if someone sent you a SPLAT file and you want it smaller. Typical additional compression: 3-5x. PLY to KSPLAT (/splat-convert/ply-to-ksplat): only if you are using SuperSplat's editor for scene cleanup. For literally every other case, SPZ is the better choice.
- 6
Embed in a website (10 lines of code)
Once you have an SPZ or SPLAT file, embedding it on a web page is straightforward. For SPZ: use gsplat.js (MIT license, 45 KB gzipped) — load the script, create a canvas, point it at your hosted SPZ file. For SPLAT: antimatter15/splat is the most popular viewer (also MIT, even smaller). Which format for embedding? SPZ gives you smaller files and view-dependent lighting (scenes look more realistic as the camera moves). SPLAT gives you wider viewer compatibility and simpler integration. For new projects in 2026, go with SPZ — it is aligned with the Khronos glTF standard track, so you are building on a foundation that will have long-term support.
- 7
When things go wrong
Four problems we see constantly from beginners. "Viewer shows dots instead of a smooth scene" — you opened a 3DGS PLY in the mesh viewer (/viewer/ply) instead of the splat viewer (/splat-viewer/ply). Easy mistake, easy fix. "Scene looks washed out with no lighting variation" — your file was converted to SPLAT somewhere along the way, which strips spherical harmonics. Go back to the original PLY and convert to SPZ instead. "Conversion fails with missing properties error" — your PLY is a mesh PLY, not a gaussian splat PLY. Check the file header: 3DGS PLY files have properties like f_dc_0, opacity, rot_0, scale_0. Mesh PLY files have vertex_indices or face. "Scene appears upside down" — some training frameworks export with Y-up, others with Z-up. Most viewers handle this automatically, but if yours does not, re-export from your training tool with the correct coordinate system.