ComfyUI > Nodes > ComfyUI libigl > Fill Holes

ComfyUI Node: Fill Holes

Class Name

GeomPackFillHoles

Category
geompack/repair
Author
PozzettiAndrea (Account age: 2240days)
Extension
ComfyUI libigl
Latest Updated
2025-12-22
Github Stars
0.06K

How to Install ComfyUI libigl

Install this extension via the ComfyUI Manager by searching for ComfyUI libigl
  • 1. Click the Manager button in the main menu
  • 2. Select Custom Nodes Manager button
  • 3. Enter ComfyUI libigl in the search bar
After installation, click the Restart button to restart ComfyUI. Then, manually refresh your browser to clear the cache and access the updated list of nodes.

Visit ComfyUI Online for ready-to-use ComfyUI environment

  • Free trial available
  • 16GB VRAM to 80GB VRAM GPU machines
  • 400+ preloaded models/nodes
  • Freedom to upload custom models/nodes
  • 200+ ready-to-run workflows
  • 100% private workspace with up to 200GB storage
  • Dedicated Support

Run ComfyUI Online

Fill Holes Description

GeomPackFillHoles node repairs 3D meshes by filling holes, ensuring watertight integrity.

Fill Holes:

The GeomPackFillHoles node is designed to repair 3D meshes by filling holes, ensuring the mesh is watertight and suitable for further processing or 3D printing. This node is particularly beneficial for artists and designers working with 3D models, as it automates the tedious task of manually identifying and closing gaps in a mesh. By utilizing different methods such as cumesh, pymeshlab, and trimesh, the node offers flexibility in handling various mesh topologies and sizes of holes. The primary goal of this node is to enhance the integrity of 3D models, making them more robust and reliable for rendering or physical production. Its ability to adapt to different hole sizes and mesh complexities makes it an essential tool for ensuring high-quality 3D assets.

Fill Holes Input Parameters:

mesh

The mesh parameter represents the 3D model that you want to repair. It is the primary input for the node, and its quality and structure will directly affect the hole-filling process. The mesh should be a valid 3D object with vertices and faces defined. There are no specific minimum or maximum values for this parameter, but the mesh should be well-formed to ensure successful processing.

method

The method parameter determines the technique used to fill holes in the mesh. It can take values such as "cumesh", "pymeshlab", or "trimesh". Each method has its own approach to handling holes, with cumesh focusing on perimeter-based filling, pymeshlab using edge count for hole closure, and trimesh serving as a fallback option. The default value is "cumesh", and the choice of method can impact the quality and speed of the hole-filling process.

perimeter

The perimeter parameter is used when the cumesh method is selected. It specifies the maximum perimeter of holes that the node will attempt to fill. This allows you to control the size of holes that are targeted for repair, with smaller values focusing on smaller gaps. The default value is 0.03, and adjusting this parameter can help in fine-tuning the hole-filling process for specific mesh requirements.

maxholesize

The maxholesize parameter is relevant when using the pymeshlab method. It defines the maximum size of holes, in terms of edge count, that the node will attempt to close. This parameter helps in managing the complexity of the hole-filling operation, with larger values allowing for the closure of bigger holes. The default value is 1000, and it can be adjusted to suit the needs of the mesh being processed.

Fill Holes Output Parameters:

filled_mesh

The filled_mesh output is the repaired version of the input mesh, with holes filled according to the specified method and parameters. This output is crucial for ensuring that the 3D model is watertight and ready for further use, whether in digital applications or physical production. The filled mesh should have improved structural integrity and be free of gaps that could cause issues in rendering or printing.

info

The info output provides detailed information about the hole-filling process, including the method used, parameters applied, and the state of the mesh before and after filling. It includes metrics such as the number of vertices and faces added, whether the mesh is watertight, and any holes that were successfully filled. This information is valuable for understanding the effectiveness of the operation and for troubleshooting any issues that may arise.

Fill Holes Usage Tips:

  • Use the cumesh method for meshes with small to medium-sized holes, adjusting the perimeter parameter to target specific gap sizes effectively.
  • Opt for the pymeshlab method when dealing with larger holes, and adjust the maxholesize parameter to ensure comprehensive coverage of the mesh's gaps.
  • If pymeshlab is not available, rely on the trimesh fallback method, which provides a robust alternative for filling holes in most scenarios.
  • Always review the info output to verify the success of the hole-filling process and make any necessary adjustments to the input parameters for optimal results.

Fill Holes Common Errors and Solutions:

[FillHoles] No boundary loop found or invalid format

  • Explanation: This error occurs when the node is unable to identify a valid boundary loop in the mesh, which is necessary for the hole-filling process.
  • Solution: Ensure that the input mesh is well-formed and does not have any structural issues. Consider preprocessing the mesh to fix any topology problems before using the node.

[FillHoles] Boundary loop too small

  • Explanation: The identified boundary loop is too small to form a valid hole for filling, typically having fewer than three vertices.
  • Solution: Check the mesh for very small or degenerate holes that may not be suitable for filling. Adjust the perimeter or maxholesize parameters to focus on larger, more significant gaps.

[FillHoles] PyMeshLab not available, falling back to trimesh method

  • Explanation: The pymeshlab method was selected, but the PyMeshLab library is not available, so the node defaults to using the trimesh method.
  • Solution: Install the PyMeshLab library if you wish to use its specific hole-filling capabilities, or continue with the trimesh method as a reliable alternative.

[FillHoles] igl boundary_loop failed

  • Explanation: The node encountered an error while attempting to use the igl library to find a boundary loop, resulting in a fallback to the trimesh method.
  • Solution: Ensure that the input mesh is compatible with the igl library's requirements, or proceed with the trimesh method if the error persists.

Fill Holes Related Nodes

Go back to the extension to check out more related nodes.
ComfyUI libigl
RunComfy
Copyright 2025 RunComfy. All Rights Reserved.

RunComfy is the premier ComfyUI platform, offering ComfyUI online environment and services, along with ComfyUI workflows featuring stunning visuals. RunComfy also provides AI Models, enabling artists to harness the latest AI tools to create incredible art.