Cympha

How to fill holes and smooth a mesh in Cympha Studio

Fill holes closes open boundaries and Smooth relaxes surface noise across a whole mesh; this guide shows when to pair them while preparing a scan for the dental case.

Audience: Clinicians and lab designers with a mesh that's mostly correct but has open boundaries (holes you want closed everywhere), or has high-frequency surface noise you want to relax, and who don't need the heavier non-manifold and largest-region steps that Fix model runs.

You'll come away knowing: when to reach for Fill holes or Smooth instead of Fix model or the brush tools, how to invoke each from the mesh right-click menu, what each command does to the geometry, and how they typically pair with the other cleanup commands.

Time required: A few seconds for the click and a couple of seconds for either command to run on a single arch.


Before you start

You need:

  • A mesh already added to the scene via Add model (+), ☰ Open optical scan file…, or drag-and-drop. Formats: .stl, .ply, .obj.
  • No GuideMia case loaded — both Fill holes and Smooth appear on the right-click menu only for user-added meshes when no full .gvw case is open. Use ☰ → Clear scene if you have one open.

Sign into studio.cympha.com and open your mesh.

Whole-surface, not brush. Both Fill holes and Smooth run over the entire mesh in one click — they don't take a painted region. If the mesh has one good area and one bad area, the brush tools give you finer control. See How to clean up meshes with the brush tools.

When to use which command

The right-click menu offers three whole-surface cleanup choices. Picking the right one saves rework:

| Command | Closes holes? | Smooths? | Removes non-manifold? | Keeps largest region? | |---|---|---|---|---| | Fix model | Yes (small holes, twice) | Yes (gentle) | Yes | Yes — drops disconnected pieces | | Fill holes | Yes (twice) | Slight | No | No — disconnected pieces stay | | Smooth | No | Yes | No | No |

Pick Fill holes when the mesh is structurally fine but has open boundaries you want closed everywhere at once — typical for a scan with several small gaps the scanner didn't capture, or for the result of a Boolean cut that left holes around the cut path. It closes the openings and leaves disconnected islands alone.

Pick Smooth when the topology is fine and the boundaries are how you want them, but the surface itself is noisy — stair-step artefacts on a low-resolution print scan, or speckle noise from a phone-camera-derived facial scan. Smooth changes only vertex positions; it doesn't delete triangles or close holes.

Pick Fix model when you want one conservative pass that handles everything — see How to repair a mesh with Fix model.

Pick the brush tools when the defect is local and the rest of the mesh is fine — see How to clean up meshes with the brush tools.

Step 1 — Open the mesh context menu

  1. Right-click directly on the mesh body in the main 3D view. The menu opens at the cursor; its title shows the file name of the mesh you clicked, so you can confirm you're about to edit the right one.
  2. Click outside the menu or press <kbd>Escape</kbd> to dismiss without doing anything.

Step 2 — Run Fill holes

  1. In the right-click menu, choose Fill holes.
  2. The viewer shows a wait cursor while the pipeline runs on the main thread. Expect a couple of seconds on a single arch; longer on dense meshes.
  3. Watch the status line at the bottom of the viewport:
    • Start: "Fill holes: running global pipeline…"
    • On success: "Fill holes complete (global + slight smooth)."
    • On failure: "Fill holes failed: empty result.", "Fill holes failed (geometry update).", or "Fill holes failed: …" with a reason.
  4. On success the cleaned geometry replaces the original in the scene.

What the pipeline does: two passes of the global hole-fill filter, followed by a light smoothing pass. Very large openings are deliberately left open — a size ceiling exists so the filter doesn't bridge across a missing tooth and pretend it's surface, for example.

Two passes, not one. Filling holes in one pass occasionally exposes a secondary hole the first pass uncovered — for example a thin sliver of missing surface that becomes a closable boundary only after the surrounding triangles are stitched. The second pass catches those.

Step 3 — Or run Smooth

  1. In the right-click menu, choose Smooth.
  2. The viewer shows a wait cursor while the pipeline runs.
  3. Watch the status line:
    • Start: "Smooth: running global pipeline…"
    • On success: "Smooth complete (global)."
    • On failure: "Smooth failed: empty result.", "Smooth failed (geometry update).", or "Smooth failed: …" with a reason.
  4. On success the relaxed geometry replaces the original in the scene.

What it does: a single global smoothing pass over every triangle. No deliberate hole filling, no triangle deletion, no topology change. The triangle count and connectivity are preserved; only vertex positions move.

Smoothing is cumulative. Running Smooth twice has roughly double the effect of running it once. If a single pass isn't enough, run it again rather than reaching for the brush — but stop as soon as anatomy starts to soften visibly. <kbd>Ctrl</kbd>+<kbd>Z</kbd> restores the previous geometry, but it's a one-step undo — to go further back you have to reimport the original file.

Pairing with Fix model and brush cleanup

These commands are designed to combine cleanly:

  • Typical repair sequence on a noisy scan: Add model → optionally Fix model for one conservative pass → if a specific area still looks wrong, the brush tools (Smart cleanup… / Delete region… / Local smoothing…) → Fill holes if any boundaries are still open after local edits → Smooth at the very end if you want one more relaxation pass on the surface.
  • Don't follow Fix model with Fill holes as a default — Fix model has already run two hole-fill passes. Add Fill holes only if you can still see an open boundary that Fix model left behind.

What success looks like

  • For Fill holes: the status line reads "Fill holes complete (global + slight smooth)." and the open boundaries are closed. The surface is slightly smoother than the input but still recognisable.
  • For Smooth: the status line reads "Smooth complete (global)." and high-frequency noise — stair-stepping, speckle, triangle-scale roughness — is reduced. Triangle count and the position of holes are unchanged.
  • In both cases, the mesh entry in Models is still present with its colour and visibility settings, just rewritten in place.

Troubleshooting

The right-click menu doesn't show Fill holes or Smooth. A GuideMia case is loaded — clear the scene with ☰ → Clear scene, or switch to a tab without a case. The commands also disappear if you right-click on case geometry rather than a user-added mesh.

Fill holes complete but I can still see a big opening. The hole is larger than the filter's size ceiling, so it was left alone. Use the brush — Smart cleanup… can sometimes close larger boundaries by paring back the rim before filling — or close the hole in a dedicated mesh-editing tool before reimporting.

Fill holes produced an obviously wrong patch — a flat sheet bridging two arches, for example. The filter saw an open path it considered closable. Press <kbd>Ctrl</kbd>+<kbd>Z</kbd> to restore the previous geometry, or reimport the original; either pre-merge the two shells in your scanning tool, or use the brush tools to trim the rim of one shell before running Fill holes again.

Smooth made the anatomy look soft. The global smooth is mild but visible on dense scans. Press <kbd>Ctrl</kbd>+<kbd>Z</kbd> to restore the previous geometry (one step of undo), or reimport the original; consider Local smoothing… instead so only the noisy patch is relaxed.

The browser tab feels frozen for several seconds. Both commands run on the main thread. Wait for the status line to update — interrupting by reloading the tab will lose any unsaved work.

Status line says "Fill holes failed: empty result." or "Smooth failed: empty result." The pipeline ran but produced no triangles. Usually means the input was already broken in a way the filter couldn't recover. Try Fix model first to clean topology, then Fill holes or Smooth on the cleaned mesh.


Related how-tos: How to repair a mesh with Fix model · How to clean up meshes with the brush tools · How to build a virtual patient in Cympha Studio · Cympha Studio operations reference

CymphaLMSCymphaStudio