Transform Mesh
Move, spin, mirror, and line your mesh up — without touching Blender
- trimesh
- transformed_mesh
- info
Sometimes the mesh is fine and the problem is where it's sitting. Off-center, rotated the wrong way, mirror-flipped, or a unit scale that doesn't match the rest of your scene - the fix is a transform, and this is the node that does it inside the graph instead of forcing a round-trip through Blender. Transform Mesh is the pack's Swiss Army knife for placement, and because its parameters are backend-scoped, the widgets you see depend on the operation you pick.
You put a TRIMESH in, pick an operation, and get transformed_mesh plus an info string. The operations and their controls:
- Translate -
translate_x/y/zin whatever units your mesh lives in. Getting a mesh onto the ground plane or into the center of a scene is the classic use. - Rotate -
rotate_x/y/zin degrees. The escape-hatch for "the scanner had a different idea of up." - Scale -
scale_uniformfor a consistent size bump, orscale_x/y/zfor per-axis stretching (the non-uniform kind that technically distorts geometry, so don't overuse it). - Mirror -
mirror_axis(x/y/z) for flipping. Standard fix for left/right or front/back orientation problems. - Center -
center_x/y/ztoggles that snap the mesh to the origin on each axis. Almost always what you want before further processing, because a lot of downstream algorithms assume centered input. - Matrix -
matrix_string, a raw 4x4 transform as comma-separated values. For people who know exactly what they want and don't want six widgets arguing about it.
Where it fits
Transform is the plumbing of a pipeline - the step you put in front of everything that cares about position and scale. Remeshing and decimation usually don't care, but anything that uses absolute coordinates does: combining two meshes (do it after transforming them to match), baking, or exporting to an engine with a defined world. Centering before you process is the one move that pays off almost every time.
Install
It's part of the pack, so:
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
Or ComfyUI Manager → GeometryPack. The README's standing caveats apply: the experimental comfy-env/pixi install can pull a big environment on first run, and it's a fast-moving repo with the author collecting reports in Discussions.
Watch out
Order of operations is real: rotate and scale are applied around the mesh's current origin, so if you rotate first and then center, the centering math uses the rotated frame. Do center → transform, or keep the order in your head. Also, matrix_string is a raw 4x4 - a mistyped matrix produces a mesh that's been warped in ways no slider would ever allow. If you don't understand every entry, use the sliders; that's what they're for.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| trimesh | TRIMESH | — | |
| operation | COMBO | 7 options: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], +1 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| transformed_mesh | TRIMESH | — |
| info | STRING | — |