๐ท Remove Outliers (RDAWG)
Strip the junk points before they wreck your reconstruction
- point_cloud
- cleaned_pcd
- info
Real-world point clouds are full of garbage. Scanner noise, stray reflections, a few points floating in the void between the object and the wall - none of it is part of your object, and all of it will sabotage a reconstruction. RDAWG3DRemoveOutliers is the clean-up node: it finds points that don't belong and drops them, so the shape you're left with is the shape you actually wanted.
It's the middle step in the pack's point-cloud pipeline - Load โ Downsample โ Remove Outliers โ Reconstruct - and it's the difference between a Poisson surface that hugs your object and one that grows phantom blobs toward every stray point. If you're reconstructing from a noisy scan, don't skip it.
How it works
Two classic statistical methods, both from Open3D:
- statistical (default) - for each point, looks at its
nb_neighborsnearest neighbors and computes the average distance. Points whose average distance deviates more thanstd_ratiostandard deviations from the global mean get dropped. Works great on uniform-density clouds. - radius - counts how many neighbors fall within
radius; points with fewer thanmin_pointsneighbors get removed. Better for clouds with varying density, where a global threshold misbehaves.
Normals are re-estimated on the cleaned cloud if the source had them. The info output reports original count, cleaned count, removed count, and removal percentage - wire it to a text node if you want to see how aggressive you're being.
The inputs that matter
- method -
statisticalby default;radiusfor uneven density. - nb_neighbors - statistical; how many neighbors to check (default 20).
- std_ratio - statistical; higher = more tolerant, keeps more points (default 2.0).
- radius - radius method; neighborhood size (default 0.05).
- min_points - radius method; minimum neighbors to survive (default 10).
Outputs: cleaned_pcd (POINT_CLOUD) and info (STRING).
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 - no Open3D, no pack (pip install open3d>=0.19.0, or python download_open3d.py for a Windows wheel). Python 3.11 recommended. And don't blindly accept the installer's torch 2.9.0+cu128 pin over an existing working install.
Where people get burned
- Aggressive statistical removal eats real detail -
std_ratiotoo low (ornb_neighborstoo small) can classify thin real structures as outliers. Start at defaults and loosen if you're losing geometry. - Radius method with the wrong radius -
radiusset in the wrong units leaves everything or removes everything. Check your cloud's scale, same as voxel size. - Skipping it entirely - feeding a noisy cloud straight into Point Cloud to Mesh gives you a spiky, holey surface. The cleanup is cheap; the reconstruction isn't.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| point_cloud | POINT_CLOUD | โ | |
| method | COMBO | statistical | 2 options: statistical, radius |
| nb_neighbors | INT | 205โ100 | โ |
| std_ratio | FLOAT | 2.00.1โ5 | โ |
| radius | FLOAT | 0.0500.001โ1 | โ |
| min_points | INT | 102โ100 | โ |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| cleaned_pcd | POINT_CLOUD | โ |
| info | STRING | โ |