UV CuMesh (backend)
GPU UV unwrapping, because xatlas was getting old
- trimesh
- unwrapped_mesh
- info
UV unwrapping is the chore of 3D: it never gets easier, it just gets faster. This node is the CuMesh backend of GeometryPack's UV Unwrap family - NVIDIA's GPU-accelerated unwrapper, exposed directly instead of through the dropdown. If you're baking textures, painting, or feeding a mesh into a texturing tool, CuMesh is the fast lane: it runs on your GPU, which is a genuine difference from the CPU xatlas and libigl backends in the same pack. It's also the fiddliest of the bunch, because chart quality is where UV algorithms earn their keep.
You feed it a TRIMESH and get back unwrapped_mesh (a mesh whose vertices now carry UV coordinates - the geometry itself doesn't move) plus an info string. From there you wire it into Save Mesh or into any downstream node that respects UVs.
The four inputs are all about charting, which is how an unwrapper cuts your mesh into flat, non-overlapping islands:
chart_cone_angle- the cone angle threshold that drives where the algorithm places seams. Lower values mean more, smaller charts; 90° is a sane default. If your texture looks smeared, this is the first thing to move.chart_refine_iterations- refinement passes on the chart layout. Zero is fine to start.chart_global_iterations- global optimization passes, the ones that fight distortion across the whole UV layout.chart_smooth_strength- how hard the optimizer pushes for smooth, low-distortion charts. Crank it when your islands come out squashed.
That's the whole surface area: no texture-size or padding controls here, because CuMesh is a charting engine - the packing into a texture atlas happens elsewhere.
Install
It's part of ComfyUI-GeometryPack; install the pack once and every node comes with it:
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
ComfyUI Manager search for GeometryPack works too. Two realities to set expectations: the README calls the install path experimental (it uses comfy-env + pixi and can pull down a serious chunk of dependencies on first run), and the pack is under fast development with occasional breakage - the author asks for reports in the repo's Discussions. For this specific backend, you also need a working CUDA GPU; the plain CPU backends (xatlas, libigl LSCM) don't care.
Watch out
CuMesh wants a clean, manifold mesh the way most GPU geometry tools do - self-intersections and inconsistent winding are a great way to get weird charts or a silently slow run. If your UVs come out of it looking chaotic, run the pack's Fix Normals and a fill-holes pass first, then retry. And don't expect CuMesh to be magical on hard cases: it's fast, but "fast" and "artifact-free" are different words. When it fights you on a tricky shape, the xatlas backend is the pragmatic fallback - it's slower but boringly reliable.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| trimesh | TRIMESH | — | |
| chart_cone_angle | FLOAT | 900–359.9 | — |
| chart_refine_iterations | INT | 00–10 | — |
| chart_global_iterations | INT | 10–10 | — |
| chart_smooth_strength | INT | 10–10 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| unwrapped_mesh | TRIMESH | — |
| info | STRING | — |