ComfyUI libigl
libigl geometry processing wrapper for ComfyUI - mesh manipulation and analysis nodes
Nodes (116)
Point clouds without normals are half a cloud
Turn a 3D mesh into a turnaround sheet — the 2D/3D bridge
Carve one mesh out of another, the exact way — no Blender window needed
Your mesh's normals are probably lying — this node proves it
Stitch up to four meshes into one — no re-exporting, no Blender
Merge an entire list of meshes in one node — the one that scales
Give a bare mesh its normals back so it renders like it's supposed to
One mesh file, many floating parts — this splits them apart
The fastest way to get a mesh into your graph
Slim down a million-face scan without wrecking the silhouette
Reduce by a fraction, not a target
Five ways to shrink a mesh's polygon count
Collapse edges, keep the shape honest
The brutal decimation option — and the one that survives broken meshes
Your mesh has invisible faces, and they're quietly breaking your tools
Turn a normal map into an actual 3D mesh, without leaving ComfyUI
Mesh fell apart into islands? Grab the main body and move on
Turn a mesh into its bones
Six hole-filling algorithms, one dropdown
Hole filling on the GPU — fast, and it knows when to leave a hole alone
Mesh in, patched mesh out
The industry default for hole filling, now a ComfyUI node
MeshLab's hole filler, wrapped for ComfyUI
The one-input hole filler that's already on your machine
One node, five ways to un-flip your normals — this is the wrapper you actually place
When half your mesh is inside-out, this fixes it
The raycast way to make every face point outward
The signed-distance normal fixer for meshes too messy for raycasts
The winding-number hammer
Invisible faces? Flipped normals are almost always the culprit
The blunt-force cure for self-intersecting meshes
The tiny node that keeps your batch files named properly
Getting a real mesh into ComfyUI
Load a whole folder of meshes in one go
Read .blend files without opening Blender
The FBX importer that goes through Blender to get there
Load a batch of meshes with one wildcard string
The loader that takes a path as a plain string
The cleanup step your watertight check quietly depends on
The one-click-ish mesh doctor for wrecked scans
Give a skeleton some flesh so you can see it
The one-line sanity check before you trust anything downstream
A numeric quality score you can actually wire into logic
How far off is your reconstruction? Now it's a number
When you want points, not polygons
The normalize step every 3D generation workflow quietly assumes
Find the holes in your mesh before they cost you a remesh
Scientific visualization filters on your meshes, without ParaView
Stamp a signed distance field onto your point cloud
Actually look at a gaussian splat before you build on it
The interactive 3D viewer every GeometryPack workflow ends in
A viewer with buttons that compute things on your mesh
Before and after, in one viewport, on the same colormap
Put up to four meshes in one viewport and actually compare them
The UV check you do before you paint anything
Actually see your mesh before you export it
Flip through a whole batch of meshes in one scientific viewer
Alpha-shape reconstruction — the dial that trades tight fit against holes
Ball pivoting reconstruction — the detail keeper that leaves holes
Convex hull reconstruction — the fastest way to wrap your points in plastic
The watertight one — Poisson reconstruction that turns noisy points into a printable surface
Point cloud to mesh in one dropdown — Poisson, ball pivoting, alpha shape, or hull
One remesh node, fifteen algorithms — stop juggling mesh tools
Remesh Blender — Blender's voxel and remesh modifiers, served through ComfyUI
Blender blocks remesh — the voxel chunky look, on purpose
Blender sharp remesh — uniform quad-ish topology that keeps its edges
Blender voxel remesh — the always-watertight backend for print and boolean prep
Geogram anisotropic remesh — triangles that stretch along the shape's curves
Geogram smooth remesh — the Lloyd-relaxed uniform triangulation
Remesh GPU — CuMesh dual contouring, the same engine TRELLIS2 uses
Field-aligned quad remeshing that actually respects your shape
Remesh MMG — the size-map adaptive remesher for engineering-grade control
Remesh PMP adaptive — small triangles where it's curvy, big where it's flat
Remesh PMP uniform — one target edge length, everywhere, done well
Remesh PyMeshLab — the default isotropic remesher you'll actually use
Quad-dominant remeshing without leaving ComfyUI
Turning messy scans into clean quad meshes
Remesh without losing the paint job
Remove Degenerate Faces — the invisible cleanup that keeps geometry libraries from exploding
Getting your processed mesh back out of ComfyUI
Get your meshes out of ComfyUI and onto disk, numbered
Sharpen Fast Effective — the cheap, fast way to crisp up a blobby mesh
Edge-preserving sharpen with actual dials
Flatten a mesh into clean CAD plates
Unsharp masking, except the image is a mesh
The one dropdown that picks your 3D sharpening backend
The one-pass sharpen for when you don't want to babysit iterations
The CAD-edge champ hiding in the dropdown
Sharpen a mesh the way you sharpen an image
Extracting a curve skeleton
The skeleton algorithm that loves trees and veins
The fast-and-rough route to a medial axis
Find the spine of a mesh by sending out waves
Zero knobs, fixed shrinkage, just smooth
The classic, and why your mesh shrinks
Smooth a mesh without watching it deflate
The anti-shrink fix for Laplacian's biggest flaw
The smoothing backend that quietly shrinks your mesh
Smoothing that doesn't shrink your model
Carve one mesh into many, using the labels it already has
Put your point cloud on a diet before it eats your RAM
Turn a depth map or mask into an actual mesh
Move, spin, mirror, and line your mesh up — without touching Blender
Fast, blocky UVs for hard-surface and rocks
The unwrap for everything round and vertical
Blender's general-purpose unwrap, in your graph
Globes, blobs, and the polar pinches
GPU UV unwrapping, because xatlas was getting old
The unwrap that actually cares about distortion
The clean parametrization that pins your boundary to a circle
The angle-preserving UV unwrap hiding behind GeometryPack's dropdown
Nine UV unwrappers behind one dropdown
The automatic UV unwrap that game engines trust
See which way your normals point before they bite you
One node to decimate, subdivide, and smooth any mesh
Make segmentation colors actually readable
[!WARNING] Warning, uses experimental package
comfy-envto attempt a one click isolated install. Will download and use pixi package manager.
ComfyUI-GeometryPack
Installation
Three options, in order of speed → reliability:
- ComfyUI Manager (recommended) — search for
GeometryPackin the Manager and click Install from the highest version displayed. If that doesn't work, try nightly. - Manager via Git URL — in ComfyUI Manager: "Install via Git URL" with
https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git. - Manual (most reliable):
cd ComfyUI/custom_nodes git clone https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git cd ComfyUI-GeometryPack pip install -r requirements.txt --upgrade python install.py
Please report any problems you hit during installation or use of my nodes — open a Discussion or Issue. Very grateful for your help! 🙏
Professional geometry processing nodes for ComfyUI. Load, analyze, remesh, unwrap, and visualize 3D meshes directly in your workflows.
<div align="center"> <a href="https://pozzettiandrea.github.io/ComfyUI-GeometryPack/"> <img src="https://pozzettiandrea.github.io/ComfyUI-GeometryPack/gallery-preview.png" alt="Workflow Test Gallery" width="800"> </a> <br> <b><a href="https://pozzettiandrea.github.io/ComfyUI-GeometryPack/">View Live Test Gallery →</a></b> </div>Some previews
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
Community
Questions or feature requests? Open a Discussion on GitHub.
Join the Comfy3D Discord for help, updates, and chat about 3D workflows in ComfyUI.
Multi-Backend Nodes
Each of these nodes presents a single UI with a backend selector dropdown. Under the hood, ComfyUI's GraphBuilder dispatches to hidden backend-specific nodes, enabling cross-environment execution (main, Blender, GPU, CGAL).
| Node | Backends | |------|----------| | Remesh | pymeshlab_isotropic, instant_meshes, quadriflow, mmg_adaptive, geogram_smooth, geogram_anisotropic, pmp_uniform, pmp_adaptive, quadwild, cgal_isotropic, blender_voxel, blender_smooth, blender_sharp, blender_blocks, gpu_cumesh | | Decimate Mesh | quadric_edge_collapse, fast_simplification, vertex_clustering, cgal_edge_collapse, decimate_pro | | Fill Holes | trimesh, pymeshlab, pymeshfix, igl_fan, cgal, gpu_cumesh | | Smooth Mesh | taubin, laplacian, hc_laplacian, trimesh_laplacian, trimesh_taubin | | Sharpen Mesh | two_step, unsharp_mask, libigl_unsharp, l0_minimize, guided_normal, vsa_snap, fast_effective, non_iterative | | Fix Normals | trimesh, igl_bfs, igl_winding, igl_raycast, igl_signed_dist | | Reconstruct Surface | poisson, ball_pivoting, alpha_shape, convex_hull, delaunay_2d, alpha_wrap (CGAL) | | UV Unwrap | xatlas, cumesh (GPU), libigl_lscm, libigl_harmonic, libigl_arap, blender_smart, blender_cube, blender_cylinder, blender_sphere | | Extract Skeleton | wavefront, vertex_clusters, edge_collapse, teasar | | Boolean | libigl_cgal, blender_exact |
Workflow Screenshots
Boolean Operations

Decimation

Fill Holes

Fix Normals

Surface Reconstruction

Remeshing

Sharpening

Skeleton Extraction

Smoothing

UV Unwrap

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:
- LICENSE - Full GPL-3.0 license text
- THIRD-PARTY-NOTICES.md - Detailed third-party license information
Questions?
If you have questions about licensing, please open an issue on GitHub.