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

๐Ÿ”ท Downsample Point Cloud (RDAWG)

Shrink a million-point cloud before it kills your graph

By rdawgemflยทCreated 11 months agoยทUpdated 11 months agoยท 0
๐Ÿ”ท Downsample Point Cloud (RDAWG)
  • point_cloud
  • downsampled_pcd
  • info
โ—„methodvoxelโ–บ
โ—„voxel_size0.010โ–บ
โ—„target_points1000โ–บ

Raw point clouds are stupidly big. A LiDAR sweep or dense photogrammetry export can be millions of points, and every operation downstream - outlier removal, normal estimation, Poisson reconstruction - gets slower the more points you give it. RDAWG3DDownsamplePointCloud is the node that makes that manageable: it thins a cloud down to something your graph can actually chew on without destroying the shape.

It's the first step in the pack's canonical point-cloud pipeline: Load โ†’ Downsample โ†’ Remove Outliers โ†’ Reconstruct. You almost always want to downsample early, because reconstruction time scales brutally with point count and there's rarely a visible difference between 100k and 10k points on a smooth surface.

How it works

Three strategies, all from Open3D:

  • voxel (default) - buckets points into a grid of voxel_size and keeps one point per cell. Even, structure-preserving, and the one you should usually pick. voxel_size of 0.01 means cells of 0.01 units.
  • uniform - keeps every k-th point, where k is derived from target_points. Fast and dumb; can strip detail unevenly on dense regions.
  • random - randomly selects target_points points. Dumbest, fastest, fine for quick previews.

The node re-estimates normals if the source had them, so downstream nodes that need normals still get them. The info output tells you the original count, the new count, and the reduction percentage.

The inputs that matter

  • method - voxel is the sane default.
  • voxel_size - only matters for voxel; 0.001โ€“1.0. Smaller = denser output. Tune relative to your model's scale.
  • target_points - only for uniform/random; default 1,000. If your model needs more detail, raise it.

Outputs: downsampled_pcd (POINT_CLOUD) and info (STRING).

Install

Same pack, same story. 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+ is a hard requirement (the whole pack fails to import without it). pip install open3d>=0.19.0, or python download_open3d.py on Windows for a matching wheel. Python 3.11 recommended. And be cautious with the installer's torch 2.9.0+cu128 pin if your ComfyUI already has a working PyTorch.

Where people get burned

  • Over-thinning - voxel_size too large eats fine detail (text, thin structures). If the reconstruction comes back blobby, shrink it.
  • Wrong units - voxel_size is in model units. A cloud in centimeters vs. meters needs wildly different voxel sizes; check your file's scale first.
  • Normals gone after downsampling - rare in the current code (it re-estimates), but if a downstream node complains, re-run with a load node's estimate_normals on.
CategoryRDAWG 3D/Point Cloud

Inputs (4)

NameTypeDefaultDescription
point_cloudPOINT_CLOUDโ€”
methodCOMBOvoxel3 options: voxel, uniform, random
voxel_sizeFLOAT0.0100.001โ€“1โ€”
target_pointsINT100010โ€“100000โ€”

Outputs (2)

NameTypeDescription
downsampled_pcdPOINT_CLOUDโ€”
infoSTRINGโ€”