ComfyUI > Nodes > ComfyUI libigl > Fix Self Intersections (Perturbation)

ComfyUI Node: Fix Self Intersections (Perturbation)

Class Name

GeomPackFixSelfIntersectionsByPerturbation

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

Fix Self Intersections (Perturbation) Description

Resolves 3D mesh self-intersections by perturbing vertices, preserving topology and connectivity.

Fix Self Intersections (Perturbation):

The GeomPackFixSelfIntersectionsByPerturbation node is designed to address and resolve self-intersections within a 3D mesh by applying a perturbation technique. This method is particularly useful for artists and designers who work with complex geometries and need to ensure their models are free from intersecting surfaces that can cause rendering issues or inaccuracies in simulations. The node works by identifying vertices that are adjacent to self-intersecting regions and perturbing them along their normals to separate the intersecting areas. This approach preserves the mesh's topology, maintaining the same faces and connectivity while adjusting vertex positions to eliminate intersections. If intersections persist, the node allows for adjustments in the perturbation parameters, such as increasing the epsilon or the number of iterations, to achieve better results. For severe cases, it suggests considering alternative methods like Fix By Removal. Overall, this node provides a robust solution for cleaning up meshes, ensuring they are suitable for further processing or rendering.

Fix Self Intersections (Perturbation) Input Parameters:

epsilon

The epsilon parameter controls the magnitude of the perturbation applied to the vertices. It determines how far the vertices are moved along their normals to resolve intersections. A higher epsilon value results in larger displacements, which can be useful for resolving more severe intersections. However, excessive values may distort the mesh. The default value is typically small to ensure minimal distortion while effectively separating intersecting regions.

iterations

The iterations parameter specifies the number of times the perturbation process is applied. More iterations can lead to a more thorough resolution of intersections, especially in complex meshes. However, too many iterations may unnecessarily increase processing time without significant improvements. The default value is set to balance effectiveness and efficiency.

scale_by_intersection_count

This boolean parameter determines whether the perturbation should be scaled based on the number of intersections a vertex is involved in. When enabled, vertices with higher intersection counts receive larger perturbations, which can help in resolving areas with dense intersections more effectively. The default setting is typically false, applying uniform perturbation unless specified otherwise.

Fix Self Intersections (Perturbation) Output Parameters:

result_mesh

The result_mesh is the primary output of the node, representing the modified mesh after the perturbation process. It retains the original topology but with adjusted vertex positions to eliminate self-intersections. This output is crucial for ensuring the mesh is clean and ready for further use in rendering or simulation tasks.

report

The report provides a detailed summary of the perturbation process, including statistics such as the number of vertices affected, the direction and magnitude of perturbations, and any changes in the bounding box. It also includes a status update on whether intersections were successfully resolved. This output is valuable for understanding the impact of the perturbation and for making informed decisions on further adjustments if needed.

Fix Self Intersections (Perturbation) Usage Tips:

  • Ensure to run the Detect Self Intersections node before using this node to identify vertices that need perturbation.
  • Start with default values for epsilon and iterations, and adjust them incrementally to achieve the desired results without distorting the mesh.
  • If intersections persist after initial attempts, consider enabling scale_by_intersection_count to target densely intersected areas more effectively.

Fix Self Intersections (Perturbation) Common Errors and Solutions:

No affected vertices found

  • Explanation: This error occurs when the node does not find any vertices marked as adjacent to self-intersections, possibly because the mesh is already clean or the Detect Self Intersections node was not run beforehand.
  • Solution: Ensure that the Detect Self Intersections node is executed prior to using this node to identify vertices that require perturbation.

No self-intersections remaining

  • Explanation: This message indicates that the perturbation process was successful and no self-intersections are detected in the mesh.
  • Solution: No action is needed as the mesh is now clean and ready for further processing.

Fix Self Intersections (Perturbation) 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.