Nodes/ComfyUI libigl/UV Blender Cube (backend)
ComfyUI Node

UV Blender Cube (backend)

Fast, blocky UVs for hard-surface and rocks

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
UV Blender Cube (backend)
  • trimesh
  • unwrapped_mesh
  • info
cube_size1.0
scale_to_boundstrue

Sometimes you don't need a clever unwrap. You need UVs that exist, look predictable, and didn't cost you any time to think about. UV Blender Cube projects your mesh from a cube - imagine wrapping the model in a six-sided box and stamping each side's surface onto its own face of the box. That's cube mapping, and for hard-surface props, rocks, buildings, and anything where seams don't matter much, it's the fast, boring, dependable option.

It's the blender_cube backend in the UV Unwrap dropdown, or searchable directly as "UV Blender Cube (backend)".

How it works

Cube projection assigns UV coordinates by direction: any surface whose dominant normal points along +X gets UVs from the cube's +X face, and so on for all six directions. The result is six "islands" (one per cube face), each a clean planar projection of the surfaces facing that way. It's not low-distortion - surfaces that are diagonal to the projection axes will stretch - but it's extremely predictable, and predictability is what you want when a texture is going to be tiled or procedural rather than hand-painted.

Two inputs:

  • cube_size (default 1, 0.1–10) - the size of the projection cube. It effectively scales the UV island layout; adjust if your texture resolution per face feels too cramped or too stretched.
  • scale_to_bounds (default true) - whether to rescale the islands to fill the 0–1 UV bounds. Keep it on unless you have a specific reason to preserve raw projection scale.

Outputs

unwrapped_mesh (TRIMESH with UVs) and info (STRING). Wire it to a UV preview or texture bake step.

When to use it

Reach for cube projection on geometry where orientation is basically flat or blocky: rocks, terrain, crates, building exteriors, anything tiled with a seamless texture. On rounded or complex organic shapes it will show visible seams and stretching - that's what blender_smart or libigl_arap are for. One real gotcha with the whole blender_* UV family: these backends run Blender's code under the hood, so you need a working Blender install configured for the pack. If the node errors with something Blender-related, that's the first thing to check - it's not your mesh.

Install is pack-standard: ComfyUI Manager search "GeometryPack", or clone https://github.com/PozzettiAndrea/ComfyUI-GeometryPack into custom_nodes/ plus pip install -r requirements.txt --upgrade and python install.py, then restart. The pack is GPL-3.0-or-later, young, and actively developed - the author genuinely wants bug reports.

Categorygeompack/uv

Inputs (3)

NameTypeDefaultDescription
trimeshTRIMESH
cube_sizeFLOAT1.00.1–10
scale_to_boundsCOMBOtrue2 options: true, false

Outputs (2)

NameTypeDescription
unwrapped_meshTRIMESH
infoSTRING