ComfyUI Extension: ComfyUI libigl

Authored by PozzettiAndrea

Created

Updated

80 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

    Alpha Wrapping uv_unwrapping

    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.

    Community

    Questions or feature requests? Open a Discussion on GitHub.

    Join the Comfy3D Discord for help, updates, and chat about 3D workflows in ComfyUI.

    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.