3DGS Floater Removal — Auto-Clean Your Gaussian Splatting Scans
Automatically detect and remove floating artifacts from 3DGS scenes using statistical outlier analysis. Runs in your browser.
Last updated Mar 2026
Drop a 3DGS file to remove floaters
Supports .ply and .splat (max 500 MB)
What You Should Know
What Are Floaters in Gaussian Splatting?
Floaters are stray Gaussians that appear as floating blobs or specks scattered around a 3DGS scene. They are caused by reconstruction errors during the training process — areas with insufficient camera coverage, reflective surfaces, or moving objects produce Gaussians that are not attached to any real surface. Floaters degrade visual quality, increase file size, and consume GPU memory during rendering. Removing them is one of the most common post-processing steps after scanning.
How Automatic Detection Works
The tool uses Statistical Outlier Removal (SOR), a well-established algorithm from point cloud processing. For each Gaussian, it computes the average distance to its K nearest neighbors using a K-D tree spatial index. Gaussians that are significantly farther from their neighbors than the global average (beyond a threshold of mean + N standard deviations) are flagged as outliers. Additionally, Gaussians with very low opacity (nearly invisible) are flagged since they typically represent reconstruction noise rather than meaningful scene content.
Adjusting the Sensitivity
The sigma (σ) slider controls how aggressively floaters are detected. A lower value (1.0-1.5σ) removes more Gaussians including borderline cases — good for heavily noisy scans but may clip thin structures like antennas or hair. A higher value (2.5-3.5σ) is conservative, removing only clearly isolated points. The default of 2.0σ works well for most indoor and outdoor scans. The K (neighbors) slider affects accuracy: more neighbors give smoother statistical estimates but take longer to compute.
Performance and Limitations
The tool processes files up to 500 MB (~2M Gaussians for PLY with SH degree 0). Processing time depends on Gaussian count and the K parameter: 100K Gaussians with K=30 takes about 10-20 seconds, while 500K Gaussians may take 1-2 minutes. The K-D tree construction and nearest-neighbor queries run on the main thread, so the browser tab may be unresponsive during processing. For files larger than 500 MB, consider using desktop tools like SuperSplat or the Open3D Python library.