ComfyUI Node

Mesh Info

The one-line sanity check before you trust anything downstream

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
Mesh Info
  • trimesh
  • info

Before you remesh, decimate, unwrap, or sign any distance field, you want one thing: proof the mesh is what you think it is. Mesh Info is the "what am I actually holding" node. Feed it a TRIMESH and it spits back a readable report - vertex and face counts, whether it's watertight, winding-consistent, what its bounds and volume are, and so on. It's a debugging habit that saves you from the classic 3D workflow failure where you spend an hour polishing a mesh that was secretly a broken point cloud.

It's part of ComfyUI-GeometryPack ("ComfyUI libigl") by Andrea Pozzetti. Like every pack node it runs on the shared TRIMESH type, so you can tap it anywhere in the graph to inspect the pipeline.

How it works

The single input, trimesh, accepts a mesh - or a list of them, since the node runs in batch mode and concatenates a report for each item into one output, with a === Batch Item N === separator so you can tell them apart. The report itself is built from trimesh's geometry queries: counts, is_watertight, winding consistency, volume-mesh status, bounding box extents, surface area, and the metadata the loader recorded (including the source filename if one exists). It's the same numbers the author's own workflow-testing uses to verify nothing got mangled mid-pipeline.

The output is a single info STRING. It's marked as an output node, so its job is to show you things, not to feed more processing - though the string is still a perfectly good input for any text node if you want it in a report or a log.

The two ways people use it

Pre-flight. Right after loading, confirm the mesh has the vertex/face counts you expected and actually reads as watertight. A .glb that came out of a generator with a flipped winding will announce itself here, and it's ten seconds of work instead of a half hour of chasing weird remesh artifacts.

Diffing. Run it before and after a repair step - Merge Vertices, Fill Holes, Fix Normals - and the two reports show exactly what changed. "Removed 12,000 duplicate vertices" is reassuring; "still not watertight after filling" is an early warning that your holes weren't simple.

That's really it: one input, one string output, no knobs. The batch mode is the one feature worth remembering, because the report format is what makes it usable on a 40-mesh folder loaded by Load Mesh Batch.

Install and context

Standard pack install: search "GeometryPack" in ComfyUI Manager, 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 ComfyUI afterward. The pack uses the experimental comfy-env installer with pixi, and first launch downloads a heavy isolated environment (Blender, CGAL, libigl, VTK), so budget a slow first boot. It's GPL-3.0-or-later, fine for commercial use.

The honest gotcha: the report is only as good as the loader. If a mesh came in as a point cloud (no faces), trimesh's face-dependent queries quietly report zeros or False - which is exactly the information you needed, but read the output as a diagnostic, not a verdict on the file itself. And since the pack is WIP with fast iteration, if a report format changes between updates, that's the author shipping, not your graph rotting.

Categorygeompack/analysis

Inputs (1)

NameTypeDefaultDescription
trimeshTRIMESH

Outputs (1)

NameTypeDescription
infoSTRING