Skip to content

Scan Cleanup & Remesh Utility

Module: Modeling · Category: Modeling · Tool ID: ScanCleanupRemeshUtility

A five-tab workshop for taming scanned and raw geometry. Remesh rebuilds a mesh to a uniform face count. Hole Fill finds and patches boundary holes. Self-Intersection detects and resolves overlapping faces. Component Isolation breaks a mesh into its connected pieces. Topology Analyzer maps edge loops and runs edge-flow smoothing.

Screenshot 01 — Hero shot — Tool open on the Remesh tab with a heavy mesh selected, target face count visible, before/after comparison if possible.


  • Bringing photogrammetry / 3D scan data into a real-time pipeline — typically too dense, full of holes, often self-intersecting
  • Cleaning up CAD imports that come in as a single fused mesh with hidden internal geometry
  • Pre-Nanite preparation — Nanite handles density beautifully but still benefits from watertight, well-formed input
  • Topology research — analyzing edge flow on a reference mesh before retopo
  • Don’t use this for hand-authored low-poly meshes — the operations are aggressive and assume scanner-quality input
  • Don’t expect this to replace ZBrush / 3D-Coat / similar — it’s a triage and cleanup tool, not a full sculpting/retopo suite

  1. Open the EQLabs Hub and search for Scan Cleanup (or browse to Modeling → Modeling)
  2. Click the tool card
  3. Use the tab bar at the top to pick the operation you need

Each tab works on a single Static Mesh asset at a time, picked via the Static Mesh field on that tab.


Uniform edge-length remeshing to a target face count. Useful for normalizing density on scanned meshes.

FieldWhat it doesDefault
Static MeshThe mesh to remesh(empty)
Target Face CountThe output triangle count after remeshing5000
Voxel ResolutionInternal voxel grid resolution — higher preserves detail but is slower128
Remesh buttonRuns the remesh operation. Creates a new _Remesh asset (non-destructive).

Internally voxelizes the mesh at Voxel Resolution, then meshes the voxel surface at an edge length tuned to hit Target Face Count. The result is a uniform-density mesh.

  1. Drop a Static Mesh into the field
  2. Set Target Face Count — start with 5000 for a hero asset, drop to 1500 for low-poly background dressing
  3. Adjust Voxel Resolution if details are lost (256 for fine features, 64 for blobby targets)
  4. Click Remesh. A new <MeshName>_Remesh asset is created in the same folder.

Screenshot 02 — Remesh result — Side-by-side: original dense scan vs. remeshed output at 5000 faces.


Detects boundary edges and fills holes up to a configurable size.

FieldWhat it doesDefault
Static MeshThe mesh to inspect(empty)
Hole Size ThresholdMaximum hole perimeter to fill. Holes larger than this are left alone (typically these are intentional openings).10.0
Fill StrategyPlanar / Smooth / MinimalPlanar
Detect Holes buttonScans for boundary edges and lists holes by perimeter
Fill All buttonFills every hole in the list using the selected strategy
Holes listPer-hole row: index, edge count, perimeter
StrategyWhat it does
PlanarFlat triangle fan — fast and predictable, best for small holes
SmoothInterpolated fill matching surrounding curvature — best for organic surfaces
MinimalFewest new triangles — best when minimizing density matters
  1. Drop a Static Mesh
  2. Click Detect Holes — list populates with every boundary loop
  3. Tune Hole Size Threshold so the threshold-bigger holes (legitimate openings like windows or doorways) are excluded
  4. Pick a Fill Strategy that matches the surface character
  5. Click Fill All

Finds faces that intersect each other — common in scanned meshes where the surface folds back on itself.

FieldWhat it does
Static MeshThe mesh to scan
Scan Intersections buttonWalks all face pairs looking for intersections
Resolve All buttonAttempts automatic resolution of every detected intersection
Intersections listPer-pair row: face IDs and a description
  1. Drop a Static Mesh, click Scan Intersections
  2. If the list is short, eyeball each entry and decide whether auto-resolve makes sense
  3. Click Resolve All to apply automatic resolution
  4. Re-scan to confirm

Self-intersection resolution is best-effort; severely tangled scanned meshes may need manual cleanup in a DCC.


Decomposes a mesh into its connected components and lets you extract individual pieces as separate assets.

FieldWhat it does
Static MeshThe mesh to decompose
Analyze Components buttonWalks the topology, identifies connected components
Isolate Selected buttonExports the selected component as a new Static Mesh
Components listPer-component row: name, triangle count, vertex count
  1. Drop a Static Mesh, click Analyze Components
  2. Review the list — a properly-modeled single object should be one component; multi-piece scans show multiple
  3. Select the components you want to extract, click Isolate Selected
  4. Each selected component is saved as a new Static Mesh asset

This is especially useful for kitbashed scans where multiple objects were captured in a single mesh.


Inspects edge loops, hard edges, and topology poles. Includes a non-destructive edge-flow smoother.

FieldWhat it doesDefault
Static MeshThe mesh to analyze(empty)
Hard Edge AngleDihedral angle threshold above which edges are considered “hard”60°
Detect Edge Loops buttonAnalyzes for boundary loops, hard edge loops, and irregular-valence vertices
Apply Edge Flow buttonRuns Laplacian smoothing while preserving hard edges. Creates a new _EdgeFlow asset (non-destructive).
Copy buttonPlain-text dump of the topology report
Edge Loops listPer-loop row: index, edge count, description
  1. Drop a mesh, set Hard Edge Angle to match your tolerance (30° for soft surfaces, 60° for typical mechanical edges, 90° for cube-like)
  2. Click Detect Edge Loops — list populates with boundaries, hard edge loops, and pole vertices
  3. If you want to clean up surface noise, click Apply Edge Flow — creates a new _EdgeFlow asset that you can compare against the original

TabFieldDefault
RemeshTarget Face Count5000
RemeshVoxel Resolution128
Hole FillHole Size Threshold10.0
Hole FillFill StrategyPlanar
TopologyHard Edge Angle60°

Settings are persisted to [Project]/Saved/EQLabs/Settings/ScanCleanupRemeshUtility.json.


  • Non-destructive operations — Remesh and Apply Edge Flow create new assets named <Original>_Remesh and <Original>_EdgeFlow respectively
  • In-place operations — Hole Fill, Self-Intersection Resolve, Component Isolation modify the source asset (or create new components for isolation)
  • Undo — operations that modify the source mesh are wrapped in ScopedTransaction and reversible with Ctrl+Z
  • Clipboard — Topology Analyzer has a Copy button for the topology report

  • Voxelization in Remesh has a memory costVoxel Resolution: 256 on a large mesh can spike RAM. Start at 128, raise only if you need more detail.
  • Hole Size Threshold has tricky semantics — it’s the maximum perimeter to fill. Set it high to fill big holes, set it low to only patch tiny gaps.
  • Self-Intersection auto-resolve isn’t a magic wand — it cleans up obvious cases. Severe self-intersection means the input was bad and may need DCC-side cleanup.
  • Component Isolation works on connected topology only — meshes that share UVs or materials but are topologically separate count as different components. Disconnected islands within a single material count as separate components.
  • Edge Flow output is a separate asset — original is preserved. Compare in the Static Mesh editor before committing.
  • All operations are single-mesh — no batch mode. For cleaning a folder of scans, run the tool repeatedly.


Report an issue with this tool

Opens our feedback form in a new tab with the tool name pre-filled.