Remesh QuadWild (backend)
Turning messy scans into clean quad meshes
- trimesh
- remeshed_mesh
- info
Triangles are what every scanner and photogrammetry pipeline spits out, but they're often the wrong currency. If your mesh is heading to a CAD package, a sculpting app, or a subdivision pipeline, what you actually want is a clean quad mesh - and that's exactly what this node does. It's the QuadWild backend of the GeometryPack's Remesh node, exposed directly so you can call it without touching the backend dropdown. QuadWild is the same algorithm the open-source QuadWild tool uses: it runs an integer-grid map on your triangles and converts them into a quad-dominant mesh that's actually usable downstream.
Remesh QuadWild (backend) takes a TRIMESH and hands you back a remeshed_mesh plus an info string (useful if you're logging what happened). In the GeometryPack universe, that's the same TRIMESH type you get from Load Mesh or from any other geometry node, so it chains naturally - load a scan, clean it, quad-remesh it, save it.
The three knobs that actually matter:
qw_alpha- the regularity vs. isometry balance. Lower means more regular, grid-like quads; higher means the mesh clings closer to the original shape at the cost of tidier topology. The default of 0.02 is a sensible place to start.qw_scale_factor- quad size multiplier. Crank it up for fewer, bigger quads; drop it when you need detail. This is your one-stop "density" control.qw_sharp_angle- the dihedral angle (in degrees) that counts as a sharp feature. If your hard edges come out rounded, lower this so the algorithm recognizes creases and locks them in.
There are two booleans worth leaving alone at first: qw_remesh (pre-remesh the input so the quadrangulation has better triangles to work with) and qw_smooth (smooth the output topology after). Both default to true and both do the right thing. One gotcha: a dirty input - flipped normals, holes, self-intersections - will come back to haunt you. Fix the mesh before you quad-remesh it; GeometryPack's own Fix Normals nodes are right there for this.
Install
This is one of the hidden backend nodes of ComfyUI-GeometryPack (the repo README calls itself "ComfyUI libigl"). Install the pack once and you get all of them:
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
Or just search GeometryPack in ComfyUI Manager. Two caveats from the README: the pack uses an experimental comfy-env package and the pixi package manager for an isolated install, so the first run can download a lot (Blender, CGAL, VTK). It's fast-moving software - the author literally ships with "occasional breakage, testers very welcome" - so if a node misbehaves after an update, check the repo's Discussions before assuming you did something wrong.
Watch out
Quad remeshing is compute-hungry. On a dense scan, QuadWild can take a while - that's normal, not a hang. And because it's producing a different kind of topology, the result can be surprising at very low face counts: features you expected to survive just get absorbed into a quad. Start with qw_scale_factor at 1, check the result, then adjust. For the record, on very organic shapes where quad regularity matters less, the plain triangle remeshers in the same pack are faster and just fine - reach for QuadWild when the topology itself is the deliverable.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| trimesh | TRIMESH | — | |
| qw_sharp_angle | FLOAT | 350–180 | Dihedral angle threshold for sharp feature detection. |
| qw_alpha | FLOAT | 0.0200.005–0.1 | Balance between regularity and isometry. Lower = more regular quads. |
| qw_scale_factor | FLOAT | 1.00.1–10 | Quad size multiplier. Larger = bigger quads, fewer faces. |
| qw_remesh | COMBO | true | Pre-remesh input for better triangle quality. |
| qw_smooth | COMBO | true | Smooth output mesh topology after quadrangulation. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| remeshed_mesh | TRIMESH | — |
| info | STRING | — |