Skip to main content

Diagnostics and Fixes

The Diagnostics and Fixes tool identifies and repairs common surface problems such as disconnected parts, overlapping triangles, intersecting faces, holes, and inverted normals. These problems can cause failures in Boolean operations, 3D printing, or simulation.

Medical Disclaimer

This tool is provided for research and educational purposes only. Any clinical or diagnostic use requires proper validation in accordance with applicable regulations.

Overview

Surface meshes generated from segmentation or imported from external sources often contain defects that can compromise their usability. The Diagnostics and Fixes tool organizes repair operations into specialized tabs, each targeting a specific category of mesh problems:

TabPurposeKey Operations
Quick FixAutomated diagnostics and one-click repairUnify vertices, remove small parts, fix non-manifold edges
ShellsAnalyze and manage disconnected componentsView shell statistics, delete selected shells
OverlapsDetect and fix overlapping trianglesIdentify and remove overlapping faces
TrianglesFind problematic triangles by various criteriaSelect by intersection, area, angle, aspect ratio, skewness
HolesDetect and fill holes in the meshCount holes, measure diameters, fill holes
NormalsFix inconsistent face orientationsDetect inverted normals, flip triangles, recompute normals

Quick Fix Tab

The Quick Fix tab provides an automated approach to mesh diagnostics and repair. It performs multiple checks simultaneously and offers one-click fixes for common issues.

Diagnostics Section

Select which diagnostic checks to perform:

CheckDescription
ShellsCount the number of disconnected shell components
Overlapping trianglesDetect exact duplicate or degenerate triangles
Intersecting trianglesFind triangles that intersect other triangles
HolesCount open boundaries (holes) in the mesh
Inverted normalsDetect triangles with inconsistent face orientations

Each diagnostic displays a status indicator and count showing the severity of the issue.

Additional Information

FieldDescription
Noise shellsSmall disconnected components that are likely artifacts
Non-manifold edgesEdges shared by more than two triangles (topology errors)

Additional Fix Options

OptionEffectExampleDefault
UnifyMerge vertices at the same position and remove unused vertices. This can join separate parts when they share coincident vertices.Use for an imported STL in which adjacent triangles store separate copies of the same corner. Disable it when coincident assembly parts must remain disconnected.Enabled
Remove small disconnected partsRemove parts with area ≤0.05% of the total, volume ≤0.0005% of the total, or ≤2 triangles. This can remove valid small details.Use to remove tiny floating fragments left by segmentation.Enabled
Fix non-manifold edgesRepair edges shared by an invalid number of triangles. The first repair attempt preserves all triangles.Use when several faces or parts share the same edge.Enabled
Separate repaired partsIf intersecting surfaces cannot safely form one outer surface, disconnect them along the repaired intersections. This can create multiple parts.Use for a component intersecting a PCB surface or for overlapping solids.Enabled
Keep largest repaired partWhen Separate repaired parts has split the surface, keep the part with the largest surface area and remove the smaller parts. It does not filter an ordinary multi-part input when no repaired intersection was separated.Use when the smaller separated parts are unwanted intersection fragments. Disable it when those parts are meaningful.Enabled
Force repair of unresolved non-manifold edgesRemove triangles around non-manifold edges that the other repairs could not resolve, fill the resulting openings, and keep the largest part. This can remove valid geometry, and the result is used only when it passes the selected checks.Use when Update still reports non-manifold edges after the other repairs.Enabled

Separate repaired parts and Keep largest repaired part apply only while Intersecting triangles is selected, and Keep largest repaired part additionally requires Separate repaired parts. Force repair of unresolved non-manifold edges applies only while Fix non-manifold edges is selected. Options that cannot take effect are shown greyed out.

Actions

  • Fix: Apply automatic repairs based on selected options
  • Update: Refresh diagnostic information for the active surface

Shells Tab

The Shells tab provides detailed analysis of disconnected components within the active surface. This is particularly useful for identifying and removing small artifact shells that result from noisy segmentation data.

Diagnostics

FieldDescription
Connected shellsTotal number of disconnected shell components

Statistics Table

The statistics table displays detailed information for each shell:

ColumnDescription
Shell IDUnique identifier for the shell
VolumeEnclosed volume of the shell (mm³)
AreaSurface area of the shell (mm²)
TrianglesNumber of triangles in the shell

You can select shells in the table to highlight them in the 3D view.

Actions

  • Delete Selected Shells: Remove the selected shells from the surface
  • Update: Refresh shell analysis

Overlaps Tab

The Overlaps tab detects exact duplicate triangles and degenerate triangles with no geometric area. Positive-area sliver triangles are not classified as overlaps; use the area or aspect-ratio selection in the Triangles tab to inspect them.

Diagnostics

FieldDescription
Overlapping trianglesNumber of redundant exact duplicates and degenerate triangles

Detected overlapping triangles are highlighted in the 3D view for visual inspection.

Actions

  • Fix: Remove the detected overlapping triangles
  • Update: Refresh the overlap detection

Triangles Tab

The Triangles tab provides advanced triangle selection based on various quality metrics. This allows you to identify and remove problematic triangles that don't meet specific quality criteria.

Triangle Selection Methods

MethodDescriptionParameters
Select intersecting trianglesFind triangles that intersect other trianglesGeometric tolerance
Select non-manifold trianglesFind triangles connected to non-manifold edgesNone
Select triangles based on triangle areaFind triangles outside an area rangeMin/Max area (mm²)
Select triangles based on triangle angleFind triangles with extreme anglesMin/Max angle (°)
Select triangles based on triangle aspect ratioFind triangles with poor aspect ratiosMin/Max aspect ratio
Select triangles based on triangle skewnessFind triangles with high skewnessMin/Max skew

Parameters by Method

Intersecting Triangles

ParameterDescriptionDefault
Geometric toleranceDistance threshold for intersection detection0.3

Area-Based Selection

ParameterDescriptionDefault
Min. area (mm²)Triangles with area ≤ this value are selected0.005
Max. area (mm²)Triangles with area ≥ this value are selected1000.0

Angle-Based Selection

ParameterDescriptionDefault
Min. angle (°)Triangles with minimum angle ≤ this value are selected0.01
Max. angle (°)Triangles with minimum angle ≥ this value are selected177.0

Aspect Ratio-Based Selection

ParameterDescriptionDefault
Min. aspect ratioTriangles with aspect ratio ≤ this value are selected1.0
Max. aspect ratioTriangles with aspect ratio ≥ this value are selected1000.0

Skewness-Based Selection

ParameterDescriptionDefault
Min. skewTriangles with skewness ≤ this value are selected0.0
Max. skewTriangles with skewness ≥ this value are selected0.9994

Diagnostics

FieldDescription
Selected trianglesNumber of triangles matching the selection criteria
Non-manifold edgesNumber of edges shared by more than two triangles

Actions

  • Delete Selected Triangles: Remove triangles matching the current selection criteria
  • Update: Refresh the triangle selection
  • Delete Triangle: Interactive mode—click on triangles to delete them one by one
  • Create Triangle: Interactive mode—click three points to create a new triangle
Interactive Editing

When using Delete Triangle or Create Triangle mode, hold the Alt key to enable camera spinning, panning, and zooming.

Holes Tab

The Holes tab detects open boundaries in the mesh and provides hole-filling capabilities to create watertight surfaces.

Diagnostics

FieldDescription
Number of holesCount of open boundaries in the mesh
Smallest hole diameter (mm)Diameter of the smallest detected hole
Largest hole diameter (mm)Diameter of the largest detected hole

Actions

  • Fill Holes: Automatically fill all detected holes
  • Update: Refresh hole detection
About Hole Filling

For a surface with several disconnected parts, Volvicon fills the holes in each part. It then removes duplicate cap triangles and isolated leaf-like triangles that do not enclose a fillable hole.

An open edge chain or a branching boundary is not a closed hole. It remains open until the surrounding non-manifold edges are repaired or the area is edited or remeshed. For manual control, use the Fill Holes tool.

A boundary that Separate repaired parts created along a repaired intersection is reported as a hole but is left open by Quick Fix, because closing it would cut through the neighbouring parts. Use the Holes tab to close it deliberately.

Choosing Repair Options

The default options try to make every retained part clean, manifold, and watertight. They do not reduce an ordinary healthy multi-part surface to one part. However, removing small parts, keeping only the largest part created by intersection repair, and forcing the repair of unresolved non-manifold edges can remove geometry. Make a copy before repairing an important model and review the result.

When to disable Unify

Keep Unify enabled for most imported STL and triangle meshes. Many files store a separate copy of the same vertex for each adjacent triangle; unifying those vertices restores the intended connectivity and removes unused vertices.

Disable Unify when separate assembly parts intentionally have vertices at exactly the same positions and must remain disconnected. The repair pipeline will then clean the disconnected parts independently. Disabling it is not normally needed for two solids that intersect through their interiors.

Intersections leave non-manifold edges

For example, a component joined to a PCB surface or two solids that meet along an invalid edge can leave non-manifold edges after the first repair stage:

  1. Enable Separate repaired parts. When one safe outer surface cannot be created, this disconnects the repaired surfaces so they can be reviewed or split as valid individual parts.
  2. If only one final part is wanted, also enable Keep largest repaired part. This retains the repaired part with the largest surface area and removes the smaller repaired parts.
  3. Click Fix, then Update to verify the result.

The separated parts stay open along the repaired intersection curve, and Update reports those openings as holes. This is intended: the curve is where the surfaces were disconnected, so closing it would span the curve with a flat lid that cuts through the neighbouring parts. Keeping the parts open is also what lets you delete the parts you do not want and be left with a closed surface. For example, separating a sphere that intersects a box gives four parts; deleting the two parts that lie inside the other solid leaves the closed outer surface of the union.

Keep largest repaired part applies only when intersection repair actually separates the surface. It does not silently reduce an ordinary multi-part input to one part. For example, repairing holes and normals in a valid five-part model retains all five parts. By contrast, two cubes joined along an invalid diagonal edge can be separated into two valid cubes; enabling Keep largest repaired part retains one cube.

Non-manifold edges still remain

If the options above do not remove all non-manifold edges, enable Force repair of unresolved non-manifold edges and click Fix again. This step removes triangles around the remaining problem edges, fills the resulting openings, and keeps the largest connected part. It can remove valid details, so compare the repaired surface with the original. Volvicon keeps this result only when it passes the mesh checks selected in Quick Fix; if the replacement would still violate one of them, the original surface is kept unchanged and Update continues to report the problem. On severely ambiguous geometry, the result may be a smaller manifold replacement rather than the shape you intended. Prefer Separate repaired parts when retaining the original solids matters.

When a second repair is useful

A single Fix resolves most models, including the intersections that closing a hole can itself introduce. A severely damaged segmentation containing many small parts, duplicate triangles, holes, and invalid edges can still need a second Fix, because a repair whose result would not pass the selected checks is discarded rather than committed. Click Update after the first repair:

  • If the reported counts improved but some issues remain, run Fix once more.
  • If the mesh and reported counts are unchanged, repeated repairs are not expected to help.

Clear intersections between closed solids are normally combined into one clean outer surface in one repair. The separated-part and unresolved-edge options are fallbacks and do not alter that successful result.

The mesh still cannot be repaired

Some inputs do not describe a unique solid surface. Examples include branching open boundaries, zero-thickness sheets, and parts that meet only at one edge or point. In these cases, Volvicon preserves a verified repaired arrangement instead of silently discarding an entire part to manufacture a closed result. If Update still reports problems, inspect the highlighted area in the specialized tab, edit it manually, or use Remesh.

Normals Tab

The Normals tab helps ensure consistent face orientations across the surface. Inverted normals cause rendering issues (faces appear inside-out) and can cause Boolean operations to fail.

Diagnostics

FieldDescription
Inverted trianglesNumber of triangles with normals pointing in the wrong direction

Each disconnected closed part is evaluated independently. A closed part nested inside another part is not automatically assumed to be a cavity because the same geometry can also represent two separate solids. If a nested part is intended to be a cavity wall, inspect its orientation before automatic repair and use Invert All Triangles on the isolated part when needed. The Quick Fix count and the highlighted triangles in this tab use the same orientation rule.

Actions

ActionDescription
Fix Inverted TrianglesAutomatically correct inverted triangle orientations
UpdateRefresh normal analysis
Invert All TrianglesFlip all triangle orientations (useful if the entire surface is inside-out)
Invert TriangleInteractive mode—click on individual triangles to flip them
Recompute NormalsRecalculate normals for all faces and vertices

Typical Workflows

Pre-Boolean Preparation

Before performing Boolean operations, ensure your meshes are clean:

  1. Open the Diagnostics and Fixes tool
  2. Click Update on the Quick Fix tab to run all diagnostics
  3. Review the enabled fix options, especially Keep largest repaired part if the model contains important disconnected parts
  4. Click Fix to apply automatic repairs
  5. Switch to the Holes tab and fill any detected holes
  6. Verify the Comments section shows "Active surface mesh is closed and manifold"

3D Print Preparation

For 3D printing, surfaces must be manifold and watertight:

  1. Run Quick Fix diagnostics, review the part-removal options, and apply automatic repairs
  2. Check the Shells tab—remove any unwanted small shells
  3. Use the Holes tab to ensure no open boundaries exist
  4. Verify Normals tab shows no inverted triangles
  5. Check for intersecting triangles in the Triangles tab

Cleaning Imported Meshes

When working with imported STL or OBJ files:

  1. Run the diagnostics on the Quick Fix tab
  2. Review shell statistics and remove noise shells
  3. Fix any overlapping or intersecting triangles
  4. Fill holes if the mesh should be watertight
  5. Ensure consistent normal orientation

Understanding Mesh Quality Metrics

Aspect Ratio

The aspect ratio measures how elongated a triangle is. An equilateral triangle has an aspect ratio of 1.0 (ideal). Higher values indicate increasingly elongated triangles:

  • 1.0: Equilateral (ideal)
  • 1.0–5.0: Good quality
  • 5.0–20.0: Acceptable for most applications
  • >20.0: May cause numerical issues

Skewness

Skewness measures deviation from an equilateral triangle (equiangle skew):

  • 0.0: Equilateral (ideal)
  • 0.0–0.5: Good quality
  • 0.5–0.9: Acceptable
  • >0.9: Poor quality, nearly degenerate

Non-Manifold Geometry

A mesh is manifold if:

  • Every edge is shared by exactly two faces
  • Every vertex is surrounded by a single fan of faces

Non-manifold conditions include:

  • Edges shared by more than two faces
  • Vertices where multiple fans meet (pinched vertices)
  • Self-intersecting surfaces

See Also

  • Filter Shells - Advanced shell filtering options
  • Fill Holes - Detailed hole-filling controls
  • Remesh - Improve mesh quality through remeshing
  • Editor - Manual triangle editing tools