Mesh Heal

Hi,

I made this add-on for Blender which contains additional operators for healing surface meshes. By default, Blender contains many routines that are meant for these tasks. Unfortunately, Blender’s default routines don’t always produce good results in some difficult cases. Specifically, I run into problems when I was trying to convert non-manifold isosurfaces into manifold surfaces with consistent face normals appropriate for volumetric rendering.

Here are some visual examples of what the add-on does, copy-pasted from add-on documentation, updated:

Sew mesh:

Fill holes (Sharp):

MH Recalc Norms:

Clean and Patch:

The add-on is available here: https://github.com/tkeskita/mesh_heal

Comments are welcome!

BR,
Tuomo

23 Likes

This looks amazing! Looking forward to using it very soon . Was this done as part of a research effort?

Nice addon,it will help our workflows a lot. Thank you for sharing with us!

1 Like

hey this looks really solid man. Will try it out tomorrow, thanks!

Thank you for good addon

Thanks all for comments so far!

@calembendell: Not really research (though could be, there’s some room for algorithm development!). I have some background in numerical methods and simulations, but in Blender I’m mostly interested in 3D mesh modelling and mesh conversions.

Thanks a lot for this usefull addon

FYI: I’ve updated the add-on for Blender 2.80 (master branch). Version for Blender 2.79 is available in blender2.7 branch. Available at: https://github.com/tkeskita/mesh_heal

3 Likes

Hi tkeskita,
it’s a life-saver, but unfortunately, it’s broken.

Blender from today: blender-2.80-337eb8c1de4c-win64

Exception in module register(): E:\Blender-28\scripts\addons\mesh_heal\__init__.py
Traceback (most recent call last):
File "E:\Blender-28\2.80\scripts\modules\addon_utils.py", line 384, in enable mod.register()
File "E:\Blender-28\scripts\addons\mesh_heal\__init__.py", line 170, in register bpy.utils.register_class(cls)
RuntimeError: Error: 'Mesh_heal_object' doesn't contain '_PT_' with prefix & suffix

Hello,

thanks for bug report! I just fixed this in the add-on git repository, commit 754a7edcea2559448d86a3ce9f8cb94d39aec519

3 Likes

Wow, superfast.
Many thanks tkeskita.

Is this still in development? It doesn’t seem to work correctly. I tried to test it by fixing 2 merged cubes, but it doesn’t remove intersecting faces, instead the whole mesh is removed after heal:

1 Like

Hi,
it works by removing intersecting faces and then fills open boundaries left behind, see here. If you have such low-poly mesh it removes everything.

1 Like