Preview Mesh Dual
Before and after, in one viewport, on the same colormap
- mesh_1
- mesh_2
The most common thing you want to do in any mesh-processing workflow is compare two versions: the scan and the reconstruction, the original and the remesh, before and after a repair. Preview Mesh Dual is built for exactly that. Two meshes in, one viewer out, and - the part that matters - when both meshes carry the same scalar field, it renders them on a shared colormap so you're comparing apples to apples instead of two self-scaled rainbows.
It's part of ComfyUI-GeometryPack ("ComfyUI libigl") by Andrea Pozzetti, and it's the sibling of Preview Mesh Multi (up to four meshes) and the plain Preview Mesh (just one). This is the one you want for a before/after.
How it works
You wire in mesh_1 and mesh_2 (both TRIMESH, both required). The layout combo picks how they're presented:
side_by_side(default) - two panes, clean comparison.overlay- both meshes stacked in the same space. The killer option for checking how well a reconstruction sits on its source; use the opacities to see through.slider- a drag-across wipe between the two. Great for before/after demos and spotting exactly where they diverge.
The mode combo selects fields (default) or texture. Fields mode is the scientific one: if both meshes have matching vertex/face attribute names - say both went through ParaView Filter and carry a curvature attribute - the viewer finds the common fields and shares the colormap, so equal colors mean equal values. That shared-scale behavior is the whole reason to use this node over two side-by-side plain viewers.
There are also opacity_1 and opacity_2 floats (default 1.0, range 0–1). In overlay layout these are how you actually see through one mesh to the other - drop mesh 1 to 0.5 and the two surfaces visually snap into place.
When you reach for it
- Reconstruction fidelity - scan vs. reconstruction in overlay, with shared distance or curvature fields, is the fastest "how good is this" read in the pack.
- Remesh before/after - original against the remeshed version; the slider layout makes the difference obvious to anyone, not just you.
- Repair validation - pre- and post-Merge Vertices or Fill Holes, side by side.
It has no outputs - it's an output node, a terminal. Wire your two meshes in and look.
Install and notes
Standard for the pack: 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 after. The pack installs via the experimental comfy-env + pixi setup with a heavy isolated environment; first launch is slow, and the dual viewers get copied into place at startup, so a blank pane after an update usually means "restart ComfyUI."
Two practical caveats. The shared colormap only exists when both meshes actually have the same field names - if one has curvature and the other doesn't, you get independent coloring and the comparison is visually misleading, so check your field names. And in overlay mode, make sure both meshes share a coordinate frame; overlaying a normalized mesh onto an un-normalized one will look broken in a way that's entirely your own doing.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh_1 | TRIMESH | — | |
| mesh_2 | TRIMESH | — | |
| layoutopt | COMBO | side_by_side | 3 options: side_by_side, overlay, slider |
| modeopt | COMBO | fields | 2 options: fields, texture |
| opacity_1opt | FLOAT | 1.00–1 | — |
| opacity_2opt | FLOAT | 1.00–1 | — |
Outputs (0)
No outputs