Nodes/ComfyUI libigl/Remesh Geogram Anisotropic (backend)
ComfyUI Node

Remesh Geogram Anisotropic (backend)

Geogram anisotropic remesh — triangles that stretch along the shape's curves

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
Remesh Geogram Anisotropic (backend)
  • trimesh
  • remeshed_mesh
  • info
nb_points_aniso5000
anisotropy0.040

Uniform remeshing gives you the same triangle everywhere. Anisotropic remeshing does the smart thing instead: it stretches triangles to match the surface's own curvature - long, thin triangles along creases and ridges, round fat ones across flat regions. The payoff is efficiency: the same number of triangles captures the shape far more faithfully, because they're spent where the shape actually changes. If you're optimizing a mesh for a render or a sculpt where polygon budget matters, this is the Geogram mode you want.

It's the geogram_anisotropic backend of the main Remesh node, dev-only in the schema like all of them - you pick it from the dropdown.

How it works

Same machinery as GeogramSmooth - sample points on the surface, Lloyd-relax them, Newton-optimize, re-triangulate - but the relaxation works on a metric instead of plain Euclidean distance. The metric is built from the surface's principal curvature directions: along a sharp crease, distances shrink (so samples pack tightly and triangles go long); across a flat area, distances stay normal. That single metric change is the whole trick, and it's controlled by exactly one meaningful number.

Inputs and outputs

  • trimesh (TRIMESH) - the mesh to remesh.
  • nb_points_aniso (default 5000) - target vertex count. Your resolution budget; 0 keeps the input count.
  • anisotropy (default 0.04) - the strength of the anisotropy, and the knob you'll actually tune. Lower = more stretched, more directionally efficient triangles; higher = closer to uniform. The tooltip's "typical 0.02–0.1" range is right - start at 0.04 and go down if the result feels under-spent on detail.

Outputs: remeshed_mesh (TRIMESH) and info (STRING) with counts.

Installing

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 lives in the pack's isolated comfy-env environment, built by install.py.

Troubleshooting

  • Looks almost uniform - anisotropy is too high (too close to 1.0-ish behavior). Drop it into the 0.02–0.04 band.
  • Spiky/artifacting along creases - anisotropy too aggressive for the input's noise. Nudge it back up.
  • Vertex budget spent wrong - anisotropic methods are only as good as the curvature estimate. Noisy meshes produce noisy curvature; smooth the input first.
  • Stale-workflow validation errors are the pack-wide gotcha - if the Remesh node throws on a saved graph, delete and re-add it, re-pick geogram_anisotropic.

Worth knowing before you commit: anisotropic outputs are a little less friendly to naive UV unwraps (long thin triangles can make a texture-stretch mess), so if the mesh is headed to texturing, weigh that against the vertex savings. For sculpting and displacement work it's genuinely the better spend.

Categorygeompack/remeshing

Inputs (3)

NameTypeDefaultDescription
trimeshTRIMESH
nb_points_anisoINT50000–1000000Target number of output vertices.
anisotropyFLOAT0.0400.005–0.5Anisotropy factor. Lower = more anisotropic. Typical: 0.02-0.1.

Outputs (2)

NameTypeDescription
remeshed_meshTRIMESH
infoSTRING