3D Mesh Repair
Blender addon for mesh hole detection and filling
MeshRepair for Blender integrates the MeshRepair engine directly into Blender’s interface, providing access to hole detection and filling operations from the sidebar panel. This guide covers installation, configuration, and usage.

| Feature | Description |
|---|---|
| Preset Modes | C⁰, C¹, C² continuity presets |
| Edit Mode Support | Process selected faces only |
| Preprocessing | Topology cleanup before hole filling |
| Statistics Display | Operation results and timing |
| Undo Support | Full integration with Blender’s undo system |
| Multi-threaded | Parallel processing via external engine |
The addon requires the MeshRepair engine executable:
C:\Program Files\MeshRepair\/usr/local/bin/ or ~/meshrepair//Applications/MeshRepair/ or /usr/local/bin/meshrepair_blender.zip from releasesmeshrepair executable
The Engine Status panel should display:

| Section | Function |
|---|---|
| Engine Status | Connection status and version (collapsible) |
| Context Info | Current mode and mesh/selection data |
| Operation Buttons | Preset or manual operation controls |
| Preprocessing Options | Topology cleanup settings (collapsible) |
| Hole Filling Options | Algorithm parameters (collapsible) |
| Results | Statistics from last operation |
The panel displays context information based on current mode:
| Mode | Information Displayed |
|---|---|
| Object Mode | Object name, total face count |
| Edit Mode | Selected faces / total faces, scope selector |
| No Selection | Warning message |
For standard use cases, preset buttons provide configured parameter combinations:
| Parameter | Value |
|---|---|
| Continuity | C⁰ (positional) |
| Refinement | Disabled |
| Cubic Search | Skipped |
Suitable for: Preview, large meshes, non-critical repairs
| Parameter | Value |
|---|---|
| Continuity | C¹ (tangent) |
| Refinement | Enabled |
| Cubic Search | Normal |
Suitable for: General use, balanced quality and performance
| Parameter | Value |
|---|---|
| Continuity | C² (curvature) |
| Refinement | Enabled |
| Cubic Search | Normal |
Suitable for: Final output, additive manufacturing, high-fidelity requirements
For fine control, switch to Custom mode:
Executes topology cleanup operations.
Operations performed:
Analyzes mesh and reports hole count.
Output:
Fills detected holes using configured parameters.
Output:
The addon supports processing selected regions in Edit Mode.
| Scenario | Benefit |
|---|---|
| Selective repair | Process specific areas only |
| Preserve intentional openings | Skip holes that should remain open |
| Large mesh processing | Reduce computation by limiting scope |
| Iterative workflow | Address problems incrementally |
In Edit Mode, the Scope option controls processing extent:
| Option | Behavior |
|---|---|
| Remesh | Treat selected faces as a hole rim, delete them, and fill the opening |
| Selection | Keep selected faces, fill holes found inside the selection |
| Whole Mesh | Process entire mesh regardless of selection |
Remesh:

Selection:

Warning:
The addon automatically expands selection to include neighboring geometry for smooth blending. Control this with Expand (0 = Auto):
| Value | Behavior |
|---|---|
| 0 (Auto) | Automatically chooses expansion based on continuity (at least 1 ring, 2 rings for C²) |
| 1-8 | Manual expansion iterations |
Default is auto. Higher values provide smoother blending at increased computation cost.
The addon distinguishes between:
Selection boundaries are automatically excluded from hole filling.
The Preprocessing panel is open by default; use it to access cleanup settings:
| Preset | Description |
|---|---|
| Light | Duplicates and isolated vertices only |
| Full | All cleanup operations enabled |
| Option | Description | Default |
|---|---|---|
| Remove Duplicates | Merge coincident vertices | Enabled |
| Remove Non-Manifold | Remove invalid topology | Enabled |
| Remove 3-Face Fans | Collapse degenerate configurations | Enabled |
| Remove Isolated | Delete unconnected vertices | Enabled |
| Keep Largest Only | Remove small disconnected components | Disabled |
| Remove Long Edges | Remove polygons containing edges above a length ratio threshold | Disabled |
| Parameter | Default | Range | Description |
|---|---|---|---|
| Non-Manifold Depth | 10 | 1-20 | Search recursion limit |
| Duplicate Threshold | 0.0001 | 0.0-1.0 | Distance for coincidence detection |
| Max Edge Ratio | 0.125 | 0.0-10.0 | When Remove Long Edges is enabled, edges longer than this fraction of the object bounding-box diagonal mark their polygons for removal |
The Hole Filling panel is open by default; use it to access algorithm parameters:
| Parameter | Default | Description |
|---|---|---|
| Max Boundary | 1000 | Maximum hole boundary vertices |
| Max Diameter | 0.1 | Maximum diameter as ratio of mesh bbox |
Holes exceeding these limits are skipped. The diameter check uses the full object bounding-box diagonal cached before partitioning, so threaded fills and edit-mode scopes use the same reference. For very large openings, increase Max Diameter above 1.0.
| Parameter | Options | Description |
|---|---|---|
| Continuity | C⁰, C¹, C² | Surface smoothness level |
| Refine Mesh | On/Off | Match local triangle density |
| Level | Description | Computation |
|---|---|---|
| C⁰ | Positional continuity | Low |
| C¹ | Tangent continuity | Medium |
| C² | Curvature continuity | High |
| Parameter | Default | Description |
|---|---|---|
| Use 2D Triangulation | Enabled | Primary triangulation method |
| Use 3D Delaunay | Enabled | Fallback triangulation |
| Skip Cubic Search | Disabled | Skip exhaustive algorithm |
| Partitioned Parallel | Enabled | Multi-threaded processing |
Default values are suitable for most cases.
After operations, the Results & Statistics panel (between Engine Status and Main Operations) displays statistics:
| Field | Description |
|---|---|
| Operation | Type of operation performed |
| Status | Success or error indication |
| Time | Execution duration |
| Statistic | Description |
|---|---|
| Duplicates | Vertices merged |
| Non-manifold | Invalid geometry removed |
| Long-edge Polygons | Polygons removed due to edges exceeding the configured max edge ratio |
| 3-Face Fans | Configurations collapsed |
| Isolated | Unconnected vertices removed |
| Statistic | Description |
|---|---|
| Detected | Total holes found |
| Filled | Successfully repaired |
| Failed | Unable to repair |
| Skipped | Exceeded size limits |
| Vertices Added | New vertices created |
| Faces Added | New triangles created |
| Recommendation | Rationale |
|---|---|
| Save before repair | Undo support exists, but saves provide fallback |
| Start with presets | Adjust parameters only if results are unsatisfactory |
| Use Edit Mode for large meshes | Reduces computation by limiting scope |
| Check statistics | Non-zero failed count indicates potential issues |
Resolution:
chmod +x meshrepair)Possible causes:
Resolution:
Possible causes:
Resolution:
Resolution:
Resolution:
For issue reporting, enable verbose output:
Access via Edit → Preferences → Add-ons → Mesh: MeshRepair
| Setting | Description |
|---|---|
| Engine Path | Path to meshrepair executable |
| Detect Engine | Automatic path detection |
| Test Engine | Verify engine connectivity |
| Setting | Default | Description |
|---|---|---|
| Thread Count | 8 | Worker threads (0 = automatic) |
| Setting | Default | Description |
|---|---|---|
| Verbosity | 1 (Info) | Output detail level (0-4) |
| Temp Directory | Empty | Debug file output location |
| Socket Mode | Disabled | TCP connection (for debugging) |
Hole filling algorithm:
Peter Liepa. “Filling Holes in Meshes.” Eurographics Symposium on Geometry Processing, 2003.
Fairing algorithm:
Mario Botsch et al. “On Linear Variational Surface Deformation Methods.” IEEE Transactions on Visualization and Computer Graphics, 2008.