Remesh Geogram Smooth (backend)
Geogram smooth remesh — the Lloyd-relaxed uniform triangulation
- trimesh
- remeshed_mesh
- info
Geogram (the library behind the Vorpaline remesher in MeshLab) is a serious piece of remeshing machinery, and the "smooth" flavor is its uniform-workhorse mode. Give it a mesh and a target vertex count and it produces a beautifully regular, evenly spaced triangulation - the kind of clean uniform mesh that's a pleasure to sculpt on, subdivide, or throw into a UV unwrapper. It's the backend you pick when you want "same surface, nicer topology, predictable vertex budget" rather than any particular style.
It's the geogram_smooth backend of the main Remesh dispatcher node, dev-only in the schema like all the backends. You'll normally reach it from the dropdown.
How it works
Geogram's approach is elegant: it drops a set of sample points on the surface - nb_points of them - then runs a Lloyd relaxation (iteratively moving each sample to the centroid of its Voronoi cell, which spreads the points out evenly) followed by Newton optimization to minimize a quality energy while keeping samples glued to the surface. The mesh is then re-triangulated from those relaxed points. The result is uniform by construction: even edge lengths, good angles, no slivers. The parameters are the point budget and how hard the relaxation/optimization works.
Inputs and outputs
- trimesh (TRIMESH) - the mesh to remesh.
- nb_points (default 5000) - target vertex count. 0 means "same count as the input," which is a handy trick: you keep your current density but get it rebuilt uniformly. Otherwise, this is the number you actually set - it's your resolution budget.
- nb_lloyd_iter (default 5) - Lloyd relaxation iterations. More = more even point distribution.
- nb_newton_iter (default 30) - Newton optimization iterations refining point placement. The default is already high.
- newton_m (default 7) - L-BFGS Hessian evaluations. Leave it.
Outputs: remeshed_mesh (TRIMESH) and info (STRING) with the report.
Installing
Same pack, same drill: ComfyUI Manager → GeometryPack, or
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
Restart after. Geogram runs inside the pack's isolated comfy-env environment, which install.py (the pixi-backed installer) builds.
When to reach for it vs. its sibling
GeogramSmooth is the uniform one; GeogramAniso is the anisotropic one (stretches triangles to follow curvature). If you want regular, even triangles regardless of shape, use smooth. If you want long thin triangles along creases and flat round ones elsewhere - a more efficient use of your polygon budget on organic shapes - use aniso. The smooth mode is also the more forgiving of the two: fewer parameters, harder to break.
Troubleshooting
- Too many/few vertices - that's
nb_points, plain and simple. It's a budget, not a promise: complex topology can make the final count land nearby but not exact. - Slow - Newton iterations cost. Dropping
nb_newton_iterspeeds it up noticeably; the defaults are already quite thorough. - Stale-workflow validation errors are the pack-wide gotcha - if a saved graph with the Remesh node throws, delete and re-add it, then re-pick
geogram_smooth.
The one real caveat: Geogram re-samples, so the output is a re-triangulation, not a refinement. Fine detail can soften on high-iteration settings. For pure uniform topology it's hard to beat.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| trimesh | TRIMESH | — | |
| nb_points | INT | 50000–1000000 | Target number of output vertices. 0 = same count as input. |
| nb_lloyd_iter | INT | 51–50 | Lloyd relaxation iterations (initial uniform distribution). |
| nb_newton_iter | INT | 301–100 | Newton optimization iterations (refines point placement). |
| newton_m | INT | 71–20 | Number of L-BFGS Hessian evaluations. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| remeshed_mesh | TRIMESH | — |
| info | STRING | — |