Skip to content

Latest commit

 

History

History
189 lines (124 loc) · 5.34 KB

File metadata and controls

189 lines (124 loc) · 5.34 KB

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

normals_fix_30fps.mp4
uvwrapping_30fps.mp4
geomnode_sidebyside_30fps.mp4
geomnode_camelhead_selfintersection_30fps.mp4

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.