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

๐Ÿ”ท Point Cloud to Mesh (RDAWG)

Reconstruct a solid surface from a cloud of points

By rdawgemflยทCreated 11 months agoยทUpdated 11 months agoยท 0
๐Ÿ”ท Point Cloud to Mesh (RDAWG)
  • point_cloud
  • mesh
  • info
โ—„methodpoissonโ–บ
โ—„depth8โ–บ
โ—„alpha0.030โ–บ
โ—„radii0.005,0.01,0.02,0.04โ–บ

Point clouds are great for capturing, but they're just dots - you can't render a surface, measure a volume, or 3D-print a cloud. RDAWG3DPointCloudToMesh is where the pack turns those dots back into a proper triangle mesh, via Open3D's surface-reconstruction algorithms. It's the return trip from the point-cloud pipeline, and it's the node that makes the whole Load โ†’ Downsample โ†’ Clean โ†’ Reconstruct chain useful.

If your source is a mesh file, you don't need this. If your source is a scan or a depth conversion, this is where your object actually becomes an object again.

How it works

Three reconstruction methods, each with different strengths:

  • poisson (default) - builds a watertight surface by solving a Poisson equation over the point cloud. The go-to for clean, closed shapes. depth (1โ€“12, default 8) controls the octree resolution: higher = more detail and more triangles. The node also trims the lowest-density 1% of vertices, which kills most of the reconstruction artifacts around the cloud's edges.
  • alpha_shape - wraps the points with a surface controlled by alpha (smaller = tighter to the points, more holes; larger = looser, blob-like). Good for point-only shapes where you don't want watertight.
  • ball_pivoting - rolls a virtual ball of the given radii over the points to connect them. Great for dense, clean scans with even spacing; fragile on noisy data.

All three need normals - if your cloud lacks them, the node estimates and orients them automatically. Output is a standard MESH plus an info string with the original point count, mesh vertex/face counts, and the method's key parameter.

The inputs that matter

  • method - poisson is the default and usually right.
  • depth - poisson detail level. Start at 8; drop it if you're getting tens of millions of triangles.
  • alpha - for alpha_shape; smaller = tighter.
  • radii - for ball_pivoting; a comma-separated list like "0.005,0.01,0.02,0.04" (the default). The ball grows through these radii to bridge gaps.

Outputs: mesh (MESH) and info (STRING). The mesh plugs into smoothing, simplifying, analysis, or straight into the 3D-to-Image render.

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+ is a hard import-time requirement (pip install open3d>=0.19.0, or python download_open3d.py on Windows). Python 3.11 recommended. Mind the installer's torch 2.9.0+cu128 pin if you already have a working PyTorch.

Where people get burned

  • Huge triangle counts - Poisson at depth 8+ on a dense cloud can produce millions of triangles that slow everything downstream. Reconstruct at a lower depth, or run Simplify Mesh afterward.
  • Blobby, over-smoothed surface - depth too high on a noisy cloud, or you skipped Remove Outliers. Clean first, then reconstruct.
  • "Reconstruction failed" on sparse clouds - ball_pivoting especially needs dense, even points. Downsample less aggressively, or switch to Poisson.
  • Holes where they shouldn't be - alpha_shape too tight. Raise alpha a bit.
CategoryRDAWG 3D/Point Cloud

Inputs (5)

NameTypeDefaultDescription
point_cloudPOINT_CLOUDโ€”
methodCOMBOpoisson3 options: poisson, alpha_shape, ball_pivoting
depthINT81โ€“12โ€”
alphaFLOAT0.0300.001โ€“0.5โ€”
radiiSTRING0.005,0.01,0.02,0.04โ€”

Outputs (2)

NameTypeDescription
meshMESHโ€”
infoSTRINGโ€”