Nodes/ComfyUI libigl/Remesh Blender Voxel (backend)
ComfyUI Node

Remesh Blender Voxel (backend)

Blender voxel remesh — the always-watertight backend for print and boolean prep

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
Remesh Blender Voxel (backend)
  • trimesh
  • remeshed_mesh
  • info
voxel_size1.00

Blender's voxel remesh is the fastest way to take a broken, messy, non-manifold mesh and get back a single clean watertight surface. This backend node runs exactly that modifier, headless, inside GeometryPack. "Output is always watertight" is in the pack's own tooltip, and it's the reason people reach for this node: for 3D printing, for boolean operations, for anything where a closed volume matters more than topology elegance.

You'll normally get here through the Remesh Blender dispatcher node by picking blender_voxel, or through the big Remesh node's blender_voxel option - this (backend) node is the hidden worker both of them spawn. It's marked dev-only in the schema, but if a workflow references it directly it runs just the same.

How it works

Voxel remeshing dices your mesh's bounding space into a grid of cubes, keeps the cubes the surface passes through, and turns that voxel shell into a closed surface. Because it works on a grid rather than the original triangles, it's extremely forgiving: self-intersections, holes, and flipped faces mostly get baked away. The cost is that the result is a uniform grid-surface - flat-ish faceting unless you make the voxels small - and the detail level is set by one number: voxel_size.

Inputs and outputs

  • trimesh (TRIMESH) - the mesh to remesh.
  • voxel_size (default 1) - the single real control, in the same units as the mesh. Smaller = smaller voxels = more detail and more faces, but also slower and heavier. There's no auto here; if your mesh is scaled oddly, this default of 1 can come out far too coarse or too fine, so expect to tune it to your model's scale.

Outputs: remeshed_mesh (TRIMESH) and info (STRING) with before/after counts. The watertight output drops straight into a print-prep or boolean pipeline.

Installing

Blender-backed nodes are the heavy end of this pack. Install via 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. The install.py step (the pack's comfy-env/pixi installer) downloads a real Blender build into an isolated environment - that's the big download, and the step that most often fails on install. The first time you run a Blender backend it can also take a while spinning that environment up.

Troubleshooting

  • Result looks chunky/blocky - voxel_size too big for your model's scale. Drop it by 10× and see.
  • Blender env errors on install or first run - re-run python install.py, check the repo Discussions. This is the pack's most common install failure.
  • Voxel size 1 produces a single cube - your mesh units are tiny relative to the grid. This one trips people up; normalize the mesh scale or drop voxel_size dramatically.
  • Stale-workflow validation errors are the pack-wide gotcha - if the dispatcher node throws could not convert string to float: 'true'-style errors, delete it and re-add, then re-pick blender_voxel.

If you only need one remesh for print prep, this is a genuinely good default. Just remember it's Blender under the hood, so the first run pays an environment-cost that the pure-Python backends don't.

Categorygeompack/remeshing

Inputs (2)

NameTypeDefaultDescription
trimeshTRIMESH
voxel_sizeFLOAT1.000.001–1Voxel size. Smaller = more detail, more faces. Output is always watertight.

Outputs (2)

NameTypeDescription
remeshed_meshTRIMESH
infoSTRING