🔷 Transform 3D Mesh (RDAWG)
Scale, spin, and slide a mesh — the pack's workhorse node
- mesh
- transformed_mesh
RDAWG3DTransform is the node you'll actually reach for constantly. It takes any mesh in the pack and scales, rotates, and slides it - then hands you back a mesh that everything else still understands. It's the "position the object" step in basically every RDAWG workflow, and it's where you compose the shot before rendering to image.
The pack's own example chain sums it up: Load 3D Model → Transform 3D Mesh → 3D to Image. Load gets you geometry, Transform makes it look the way you want, and the render node turns it into a picture. Simple, but it's the difference between a mesh that renders as a floating lump and one that's framed correctly.
How it works
The node operates on the vertex tensor in torch, then syncs the result back into the Open3D mesh object (recomputing normals so lighting stays correct). Rotations are in degrees - the three rotation_x/y/z fields each take an angle from 0–360, converted to radians internally and combined as Rz @ Ry @ Rx.
One thing to know before you start spinning things: the transform happens about the origin, not about the mesh's center. Scale and rotation apply around the world origin, translation moves along x/y/z after. So a mesh that isn't centered - say a scanned model sitting 5 meters up the Z axis - will rotate around that distant point and appear to orbit wildly. If that happens, either run it through a loader with normalize enabled, or feed it a centered mesh first. It's not a bug; it's just how rigid transforms work, and the pack lets you feel it.
The inputs that matter
- scale - uniform multiplier, 1.0 is unchanged. 0.5 halves the model.
- rotation_x / rotation_y / rotation_z - degrees around each axis.
- translate_x / translate_y / translate_z - position offset after rotation.
Output: a single transformed_mesh (MESH), which feeds the render node, the mesh processing nodes, or a Mesh to Point Cloud conversion.
Install
Part of the RDAWG 3D Pack - install once and this node comes with it. Via ComfyUI Manager, search "RDAWG 3D Pack (CUDA 12.8 + PyTorch 2.9.0)", or:
cd ComfyUI/custom_nodes
git clone https://github.com/rdawgemfl/rdawg_3D_pack
cd rdawg_3D_pack
python install.py
Hard requirement: Open3D 0.19.0+. If the pack fails to import at startup, that's the missing piece (pip install open3d>=0.19.0). The installer also wants torch 2.9.0+cu128; if your ComfyUI already works, treat that part with care and don't let it downgrade you into dependency hell.
Where people get burned
- Orbiting instead of rotating - the mesh isn't centered. Normalize on load, or translate it to the origin first.
- Rotation order surprises - rotations are applied as Z-then-Y-then-X, so rotating on two axes at once can look unintuitive. Do one axis at a time and iterate.
- Scale vs. distance confusion - if the object is far from the origin, a scale change can look like it's moving. It's not; the origin is just elsewhere.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh | MESH | — | |
| scale | FLOAT | 1.00 | — |
| rotation_x | FLOAT | 0.00 | — |
| rotation_y | FLOAT | 0.00 | — |
| rotation_z | FLOAT | 0.00 | — |
| translate_x | FLOAT | 0.00 | — |
| translate_y | FLOAT | 0.00 | — |
| translate_z | FLOAT | 0.00 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| transformed_mesh | MESH | — |