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

๐Ÿ”ท Mesh to Point Cloud (RDAWG)

Shatter a mesh into points โ€” the fastest way into point-cloud town

By rdawgemflยทCreated 11 months agoยทUpdated 11 months agoยท 0
๐Ÿ”ท Mesh to Point Cloud (RDAWG)
  • mesh
  • point_cloud
  • info
โ—„num_points10000โ–บ
โ—„include_normalstrueโ–บ
โ—„include_colorsfalseโ–บ
โ—„methoduniformโ–บ

Point clouds are how a lot of the interesting 3D work starts - photogrammetry, LiDAR, depth-map conversions all land as point clouds. But most ComfyUI 3D pipelines start with a mesh. RDAWG3DMeshToPointCloud is the conversion node that bridges them: it samples points off the surface of a mesh and hands you a POINT_CLOUD that the rest of the pack's point-cloud nodes can chew on.

You'd reach for it when you want to run point-cloud operations (downsampling, outlier removal, reconstruction) on geometry you got from a file, or when you want a point-based representation for downstream analysis. It's also the natural way to build the "sample the surface โ†’ reconstruct" round-trip that's handy for testing.

How it works

The node uses Open3D's surface sampling: sample_points_uniformly() picks points across the mesh surface weighted by triangle area, and sample_points_poisson_disk() does the same but with the Poisson-disk guarantee of even spacing - nicer if you want uniform density without clusters. Then, if you ask, it estimates normals for the sample.

Outputs are a POINT_CLOUD (with points, optional normals, optional colors) plus an info string reporting the method, point count, and whether normals/colors survived.

The inputs that matter

  • num_points - how many points to sample, default 10,000, up to 100,000. Bigger is denser and slower.
  • method - uniform or poisson. Poisson looks more even; uniform is faster.
  • include_normals - on by default; keep it on unless you know you don't need them, because the reconstruction node downstream needs normals.
  • include_colors - off by default. Turn it on if the source mesh has vertex colors you want to keep in the cloud.

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

Typical flow: Load Model โ†’ Mesh to Point Cloud โ†’ Downsample โ†’ Remove Outliers โ†’ Point Cloud to Mesh. It sounds silly to go meshโ†’pointsโ†’mesh, but it's a real cleanup technique: sample, strip noise, rebuild with Poisson.

Install

Part of the RDAWG 3D Pack - install once, all 19 nodes appear. ComfyUI Manager (search "RDAWG 3D Pack (CUDA 12.8 + PyTorch 2.9.0)") or manual:

cd ComfyUI/custom_nodes
git clone https://github.com/rdawgemfl/rdawg_3D_pack
cd rdawg_3D_pack
python install.py

The pack hard-requires Open3D 0.19.0+ at import - no Open3D, no nodes. pip install open3d>=0.19.0 if it's missing, and use python download_open3d.py on Windows for a matching wheel. Python 3.11 recommended. The installer pins torch 2.9.0+cu128, so if ComfyUI already works on your machine, don't blindly accept a torch reinstall.

Where people get burned

  • Downstream reconstruction fails - you turned include_normals off and Poisson reconstruction needs normals. Keep them on.
  • The cloud is too sparse - 10,000 points on a detailed model can look empty. Raise num_points.
  • Colors vanished - include_colors defaults to false. If the source mesh has vertex colors, flip it on before sampling.
CategoryRDAWG 3D/Point Cloud

Inputs (5)

NameTypeDefaultDescription
meshMESHโ€”
num_pointsINT10000100โ€“100000โ€”
include_normalsBOOLEANtrueโ€”
include_colorsBOOLEANfalseโ€”
methodCOMBOuniform2 options: uniform, poisson

Outputs (2)

NameTypeDescription
point_cloudPOINT_CLOUDโ€”
infoSTRINGโ€”