Nodes/ComfyUI libigl/Fill Holes PyMeshFix (backend)
ComfyUI Node

Fill Holes PyMeshFix (backend)

The industry default for hole filling, now a ComfyUI node

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
Fill Holes PyMeshFix (backend)
  • mesh
  • filled_mesh
  • info
max_edges0
refinetrue

PyMeshFix is one of those libraries that quietly became the industry default for mesh repair - if you've ever prepped a model for 3D printing, you've probably used it without knowing its name. This node wraps it as a backend inside GeometryPack's Fill Holes family, and if you don't have a reason to prefer a specific solver, it's the one to start with. The "industry default" label isn't hype: PyMeshFix has spent years handling the grubby reality of broken meshes, and its hole filling is dependable in a way that makes you forget you're even repairing anything.

The mechanism is proper boundary-loop triangulation with refinable output - it finds each hole's boundary, triangulates the patch, and can then refine those new triangles so the fill has decent quality rather than being a slapdash fan. Two knobs on top of that give it more control than the simpler backends:

  • max_edges - the maximum boundary edges a hole can have to be filled. Default 0 means "fill all holes." Set it to something like 200 and huge, messy openings get skipped while small artifacts get patched. That's the escape hatch the no-option fan fill lacks.
  • refine - a true/false COMBO (default true) to refine filled regions for better triangle quality. Leave it on unless you're in a hurry.

Inputs and outputs

  • mesh - the TRIMESH in.
  • filled_mesh - the repaired TRIMESH.
  • info - a STRING report of what got patched.

Installing it

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git
cd ComfyUI-GeometryPack
pip install -r requirements.txt --upgrade
python install.py

Restart ComfyUI. ComfyUI Manager works too (search "GeometryPack" or install via Git URL with https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git). PyMeshFix is a lightweight dependency relative to the pack's CGAL and Blender backends; the one-click installer is still experimental, so the manual route above remains the README's "most reliable."

The call to make

If you're standing in front of a mesh with a pile of holes and no strong opinion, PyMeshFix is the default that won't embarrass you: good fills, refinable, and the max_edges cap for protecting intentional openings. When do you not want it? When a hole sits on big visible curved geometry - there, CGAL's fair option will make the patch blend with the surface instead of looking filled. And when you need raw speed over a mesh with dozens of holes, the GPU backend is faster. This pack's Fill Holes wrapper gives you all of them behind one dropdown, so treat this as your baseline and the others as specialists. It's a young, fast-moving pack - update it regularly and don't be shy about reporting issues, since the author explicitly asks for them.

Categorygeompack/repair

Inputs (3)

NameTypeDefaultDescription
meshTRIMESH
max_edgesoptINT00–100000Max boundary edges for a hole to be filled. 0 = fill all holes.
refineoptCOMBOtrueRefine filled regions for better triangle quality.

Outputs (2)

NameTypeDescription
filled_meshTRIMESH
infoSTRING