How to Clean Up a 3D Scan Online (No Desktop Software Required)
Updated Mar 2026
Every 3D scan needs cleanup. Whether you captured a photogrammetry model in RealityCapture, scanned with iPhone LiDAR in Polycam, or used a structured-light scanner like Artec, the raw output has problems: floating debris from background objects, holes where the scanner could not see, surface noise that makes the mesh look rough, and wildly excessive polygon counts. The traditional fix is a 45-minute session in Blender or MeshLab — software that requires installation, learning a complex UI, and troubleshooting import/export quirks. This guide shows you how to do the entire cleanup in your browser using Polyvia3D’s free tools. No downloads, no accounts, no file uploads to servers. Every step runs locally on your device. The complete workflow takes 5–10 minutes for a typical scan.
Tools used in this guide
Step-by-Step Guide
- 1
Inspect the raw scan to identify what needs fixing
Before you touch anything, understand what you are working with. Upload your scan to the viewer (/viewer/ply for PLY files, /viewer/obj for OBJ, /viewer/stl for STL, /viewer/glb for GLB). Rotate the model and look for five specific problems that appear in almost every scan. (1) Floating debris — disconnected chunks of geometry from background objects (the table, nearby items, your hand). These appear as small floating islands separate from the main model. Present in roughly 70% of photogrammetry scans and 50% of LiDAR scans. (2) Holes — open gaps in the mesh, most commonly on the bottom surface (where the object sat on a surface) and in concavities the scanner could not reach. (3) Surface noise — rough, bumpy texture on areas where the scanner had low confidence. Common on dark, glossy, or thin surfaces. LiDAR noise amplitude is typically 1–2 mm; photogrammetry noise depends on photo count and lighting. (4) Excessive polygon count — scan meshes typically have 500K–5M faces, far more than needed for most purposes. A 3D print at 0.2 mm layers cannot resolve detail that 200K faces cannot already represent. (5) Degenerate geometry — zero-area triangles, duplicated faces, and non-manifold edges created during mesh reconstruction. Take note of which problems your scan has — this determines which cleanup steps you actually need.
- 2
One-click cleanup: use the Scan Cleanup tool for the fast path
If your scan has the typical combination of problems (debris + holes + noise), the fastest path is the all-in-one Scan Cleanup tool at /cleanup/stl (or /cleanup/ply, /cleanup/obj, /cleanup/glb depending on your format). Upload your file and click "Clean Up" with default settings. The tool runs a four-stage pipeline automatically: (1) removes small disconnected components (floating debris), (2) fills holes and fixes topology errors (degenerate faces, non-manifold edges), (3) optionally smooths the surface (Taubin smoothing, disabled by default — enable it in the Advanced section if you have noise), and (4) optionally reduces polygon count (also in Advanced). For most scans, the defaults handle debris and holes perfectly. The tool reports exactly what it did: "Removed 835 small components (1,029 faces), filled 1 hole, recomputed normals." Review the before/after 3D preview to confirm the cleanup looks correct. If you are happy with the result, download and skip to Step 7. If you need more control over individual operations, continue to the manual steps below.
- 3
Manual path: remove floating debris first
The Scan Cleanup tool handles debris automatically, but if you want to understand what is happening or need finer control, here is the manual approach. Upload your scan to /cleanup/stl (or the appropriate format). In the controls, enable only "Remove Small Components" and disable everything else. The "Component Size Threshold" slider (default: 50 faces) determines the cutoff — any disconnected mesh chunk with fewer faces than the threshold gets deleted. For most scans, the default works well. If your main object is very small (under 200 faces), lower the threshold to avoid accidentally deleting it. If you have large debris (e.g., the scanner captured your entire desk surface as a connected mesh), you may need to increase the threshold or use Blender to manually select and delete the unwanted geometry. After removing debris, download the cleaned file.
- 4
Fill holes and fix topology
Holes are the most common structural defect in scans. The Scan Cleanup tool fills holes automatically using the PMP (Polygon Mesh Processing) library. If you disabled hole filling in Step 3, re-upload your debris-cleaned file and enable "Fill Holes" and "Fix Degenerate Faces." The "Max Hole Size" parameter (default: 100 boundary edges) controls which holes get filled. Bottom holes from scanner occlusion typically have 50–200 boundary edges — the default catches most of them. Very large holes (>200 edges) may be intentional openings in the model, so the default avoids filling those. Increase the limit if your scan has very large occlusion holes. Filled surfaces are triangulated flat patches — geometrically simple but structurally correct. For 3D printing, a flat bottom is actually desirable since the object sits on the build plate. For rendering or AR, the filled surfaces blend in at normal viewing distances but may be visible in extreme close-ups.
- 5
Smooth surface noise
Surface noise is the grainy, rough texture you see on scan meshes, especially on areas with poor scanner confidence. The standalone Smooth tool at /smooth/stl (or /smooth/ply, /smooth/obj, /smooth/glb) gives you precise control. It uses Taubin smoothing — a volume-preserving algorithm that removes noise without shrinking the model. This is critical: simple Laplacian smoothing (what Blender’s "Smooth Vertices" uses by default) progressively shrinks the mesh, distorting proportions. Taubin’s method alternates a shrink step and an inflate step each iteration, maintaining overall dimensions. Settings by scanner type: iPhone/iPad LiDAR (Polycam, Scaniverse): 3–5 iterations at 0.5 strength. Structured-light (Artec, EinScan): 2–3 iterations at 0.5 strength — these scanners produce cleaner data. Photogrammetry (RealityCapture, Metashape, COLMAP): 5–10 iterations at 0.5 strength — reconstruction noise can be heavier. Start conservative and increase iterations if the surface is still rough. Compare before/after in the preview tab to find the sweet spot where noise is gone but sharp features (edges, corners) are preserved.
- 6
Reduce polygon count
Scan meshes are massively over-detailed for most uses. A 3M-face photogrammetry mesh contains detail that no FDM printer, web viewer, or AR renderer can actually display. The Simplify tool at /simplify/stl (or other formats) reduces polygon count while preserving visual shape. It uses the QEM (Quadric Error Metrics) algorithm from meshoptimizer, which is the same algorithm used by AAA game studios and Unreal Engine. Target face counts by use case: 3D printing (FDM, 0.2 mm layers) — 50K–200K faces. 3D printing (resin, 50 μm layers) — 200K–500K faces. Web display (Three.js, model-viewer) — 50K–100K faces. AR (ARKit/ARCore) — 50K–100K faces. Archival/measurement — keep original or light reduction (50–70%). Set the target ratio slider: for a 2M face scan targeting 200K, set it to 10%. The simplifier locks boundary edges by default, so hole edges and model borders stay in place. Always check the before/after preview — if you see visual artifacts (jagged edges, lost details), increase the ratio.
- 7
Final inspection and export
Upload your cleaned file to the viewer one last time (/viewer/stl or the appropriate format). Check three things. (1) No remaining debris — orbit around the model and confirm no floating fragments survived. (2) No visible holes — the surface should be continuous (watertight for printing). (3) Surface quality — the smoothing and simplification should not have introduced visible artifacts. If you see a problem, go back to the relevant step. The tools are non-destructive in the sense that you always work on a new file — your original scan is untouched. For 3D printing: your file is now ready for the slicer. Import into Cura, PrusaSlicer, or Bambu Studio. If the slicer reports non-manifold errors, run the file through /repair/stl one more time — the simplification step occasionally creates isolated non-manifold edges at extreme reduction ratios. For web/AR: if you need GLB format, convert via /convert/stl-to-glb or /convert/obj-to-glb. For web delivery, also consider Draco compression at /compress/draco which can reduce GLB file size by 80–90%.