Nodes/RDAWG 3D Pack (CUDA 12.8 + PyTorch 2.9.0)/๐Ÿ”ท Transform Point Cloud (RDAWG)
ComfyUI Node

๐Ÿ”ท Transform Point Cloud (RDAWG)

Move a point cloud without rebuilding it

By rdawgemflยทCreated 11 months agoยทUpdated 11 months agoยท 0
๐Ÿ”ท Transform Point Cloud (RDAWG)
  • point_cloud
  • transformed_pcd
โ—„scale1.00โ–บ
โ—„rotation_x0.00โ–บ
โ—„rotation_y0.00โ–บ
โ—„rotation_z0.00โ–บ
โ—„translate_x0.00โ–บ
โ—„translate_y0.00โ–บ
โ—„translate_z0.00โ–บ

Sometimes a point cloud is just sitting in the wrong place - upside down, half a kilometer off in Z, scaled to the wrong size. RDAWG3DTransformPointCloud is the point-cloud sibling of the pack's Transform 3D Mesh node: it scales, rotates, and translates a POINT_CLOUD in place and hands you the transformed cloud back.

Why would you transform a cloud instead of re-exporting it? Alignment. If you're combining two scans of the same scene, or aligning a depth-map conversion to a mesh, you need to nudge one cloud relative to the other. That's this node's job, and it's the only transform node in the pack that works on point data.

How it works

It applies the transform through Open3D on the cloud's point positions - scale about the cloud's center, rotation about the center, then translation. One contrast worth noticing with the mesh version: the point-cloud transform rotates about the cloud's own center, while Transform 3D Mesh rotates about the world origin. So a point cloud spins in place here, which is what you want for alignment work.

Rotations are in degrees (rotation_x/y/z), scale is a uniform multiplier (1.0 = unchanged), and translation is along x/y/z. Normals and colors, if present, are carried along and normals are re-rotated with the points so lighting stays consistent.

The inputs that matter

  • scale - 1.0 unchanged; 0.5 halves the cloud.
  • rotation_x / rotation_y / rotation_z - degrees, applied about the cloud's center.
  • translate_x / translate_y / translate_z - position offset.

Output: a single transformed_pcd (POINT_CLOUD), ready for downsampling, outlier removal, or reconstruction.

A practical pattern: load two scans of the same object, transform one until it lines up with the other, then merge. It's crude registration by hand, but for two nearly-aligned clouds it beats pulling up a dedicated alignment tool.

Install

Part of the RDAWG 3D Pack. 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

Open3D 0.19.0+ required at import - the pack won't load without it (pip install open3d>=0.19.0). Python 3.11 recommended. Watch the installer's torch 2.9.0+cu128 pin if ComfyUI already works on your machine.

Where people get burned

  • Scale about the wrong point - scale is about the cloud's center, not the origin. If you're trying to match two clouds, scale one about its own center, then translate it into place.
  • Rotation order - rotations combine as Zโ†’Yโ†’X, so compound rotations on multiple axes can surprise you. Do one axis at a time.
  • Forgetting you can't undo - the transform is applied to a copy of the cloud, but once you've chained several transforms the intermediate states are gone. Keep a clean load upstream if you think you'll iterate.
CategoryRDAWG 3D/Point Cloud

Inputs (8)

NameTypeDefaultDescription
point_cloudPOINT_CLOUDโ€”
scaleFLOAT1.00โ€”
rotation_xFLOAT0.00โ€”
rotation_yFLOAT0.00โ€”
rotation_zFLOAT0.00โ€”
translate_xFLOAT0.00โ€”
translate_yFLOAT0.00โ€”
translate_zFLOAT0.00โ€”

Outputs (1)

NameTypeDescription
transformed_pcdPOINT_CLOUDโ€”