ComfyUI Extension: ComfyUI libigl

Authored by PozzettiAndrea

Created

Updated

28 stars

libigl geometry processing wrapper for ComfyUI - mesh manipulation and analysis nodes

Custom Nodes (0)

    README

    ComfyUI-GeometryPack

    ⚠️ Work in Progress - Active development, expect breaking changes.

    Professional geometry processing nodes for ComfyUI. Load, analyze, remesh, unwrap, and visualize 3D meshes directly in your workflows.

    Some previews

    Remeshing self_intersection_fix uv_unwrapping

    https://github.com/user-attachments/assets/c2e393ba-fb57-4a46-b772-31c4b01f47f8

    https://github.com/user-attachments/assets/b1bcd570-719f-4be5-868d-f72c9f1f4c10

    https://github.com/user-attachments/assets/607e6b29-a8d4-4346-873a-5bd6b140bdba

    https://github.com/user-attachments/assets/7718a5d7-cd5b-47d3-874c-29ada4320694

    Features

    Core Operations

    • Load/Save meshes (OBJ, PLY, STL, OFF, etc.)
    • Primitive generation (cube, sphere, plane)
    • Mesh analysis and statistics
    • Interactive 3D preview (Three.js & VTK.js)

    Remeshing

    • PyMeshLab isotropic remeshing
    • CGAL isotropic remeshing (optional)
    • Blender voxel & quadriflow remeshing

    UV Mapping

    • xAtlas UV unwrapping (fast, no dependencies)
    • libigl LSCM conformal mapping
    • Blender projections (cube, cylinder, sphere)

    Analysis

    • Boundary edge detection
    • Hausdorff & Chamfer distance
    • Signed distance fields (SDF)
    • Point cloud conversion

    Installation

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

    Automatic Blender Installation (Recommended):

    python install.py
    

    This will automatically download and install a portable version of Blender for UV unwrapping and remeshing nodes. No admin rights required!

    Restart ComfyUI. Nodes appear in the geompack/ category.

    Optional Dependencies:

    • Blender: Auto-installed via install.py, or install manually from blender.org
    • CGAL: Build tools for CGAL remeshing (see cgal_tools/README.md)

    Quick Start

    Basic workflow:

    Create Primitive → Mesh Info → Preview Mesh (3D)
    Load Mesh → PyMeshLab Remesh → Save Mesh
    

    Workflow Demonstrations

    Loading & Analysis

    Load Mesh (Blend/FBX) Load Blend or FBX

    Mesh Information Mesh Info

    Remeshing & Refinement

    Remeshing Remesh

    Batch Remeshing Batch Remesh

    Mesh Refinement Refine

    Mesh Repair

    Fill Holes Fill Holes

    Self-Intersection Removal Self Intersection Removal

    Self-Intersection Remesh Self Intersection Remesh

    Boolean Operations

    Boolean Operations Boolean Ops

    Distance & Analysis

    Hausdorff & Chamfer Distance Hausdorff or Chamfer Distance

    Signed Distance Function Signed Distance Function

    Advanced Features

    Skeleton Extraction Skeleton Extraction

    Normal Fields Visualization Normal Fields

    Transform Operations Transform Operations

    Texture & Conversion

    Preview with Texture Preview with Texture

    Depth Map to Mesh Depth Map to Mesh

    Demo Videos

    Coming soon - video demonstrations will be added here

    Architecture

    Codebase organized by function in nodes/ directory:

    • io.py - Load/Save
    • primitives.py - Shape generation
    • analysis.py - Mesh info, boundary detection
    • distance.py - Hausdorff, Chamfer, SDF
    • conversion.py - Mesh to point cloud
    • remeshing.py - PyMeshLab, CGAL, Blender
    • uv.py - UV unwrapping (xAtlas, libigl, Blender)
    • transforms.py - Positioning
    • visualization.py - 3D preview (Three.js, VTK.js)

    All nodes use trimesh.Trimesh objects for mesh data.

    Credits

    Built on trimesh, libigl, PyMeshLab, and CGAL.

    License

    GNU General Public License v3.0 or later (GPL-3.0-or-later)

    This project is licensed under the GPL-3.0-or-later license to ensure compatibility with the included dependencies:

    • Blender (GPL-2.0-or-later) - Used for advanced UV unwrapping and remeshing
    • CGAL (GPL-3.0-or-later) - Used for boolean operations and isotropic remeshing
    • PyMeshLab (GPL-3.0) - Used for mesh processing operations

    What This Means

    • ✅ You can use, modify, and distribute this software freely
    • ✅ You can use it for commercial purposes
    • ⚠️ If you distribute modified versions, you must also license them under GPL-3.0-or-later
    • ⚠️ You must share the source code of any modifications you distribute

    For more details, see:

    Questions?

    If you have questions about licensing, please open an issue on GitHub.