DA3_ToPointCloud
Build a point cloud from Depth Anything 3
- depth_raw
- confidence
- sky_mask
- source_image
- pointcloud
This is the node that turns a single image's depth into a 3D point cloud - a spray of colored dots floating in space that trace out the geometry of your scene. It's the heart of the "photo to 3D" half of this pack. Feed it depth, get back a POINTCLOUD you can preview, save as a .ply, and drop into Blender.
Depth Anything 3's whole selling point over v2 is that it doesn't just guess relative depth - it reconstructs the visual space with enough camera awareness that you can unproject pixels into real 3D positions. DA3_ToPointCloud is where that promise cashes out for a single image. (For multiple views fused together, that's DA3_MultiViewPointCloud.)
How it works
Each pixel has a depth value and a color. Using the camera intrinsics, the node projects every kept pixel out along its viewing ray to its depth, plants a colored point there, and collects them into a point cloud. The result is one pointcloud output.
The two required inputs are depth_raw and confidence from DepthAnything_V3. Same rule as every 3D node in this pack, and worth repeating because it's the thing people get stuck on: the depth must be Raw, not V2-Style. Set normalization_mode to Raw on the depth node. This node checks and will error on normalized depth, because a normalized map produces a geometrically nonsense cloud.
The optional inputs that earn their keep:
sky_mask- connect it (from a Mono/Metric/Nested model) and sky pixels get dropped. Without it, sky pixels land somewhere far away and pollute the cloud with a floating haze. Connect it.confidence_threshold(default 0.1) - cull points the model wasn't sure about. Raise it to clean up noise at object edges.downsample(default 5) - this one defaults high on purpose. A full-res cloud is millions of points and chokes the preview; 5 keeps it snappy. Lower it toward 1 for a denser final export, raise it for a lighter preview.filter_outliers(default off) plusoutlier_percentage(default 5) - statistical outlier removal for the stray floaters that survive everything else. Turn it on when your cloud has speckle drifting in empty space.source_image- pass the RGB in so points get their real color instead of a flat shade.
allow_around_1 is a validation bypass you can leave alone.
Where it wires
The pointcloud output goes to one of three places: DA3_PreviewPointCloud to eyeball it in the browser, DA3_SavePointCloud to write a .ply for Blender/MeshLab/CloudCompare, or nowhere yet if you're chaining more processing. Most workflows split it to both preview and save.
Common issues
The recurring error is normalized-depth rejection - fix it by setting the depth node to Raw. If the cloud looks hazy or has a cloud of junk where the sky should be, you skipped the sky_mask (or loaded a plain model that doesn't produce one - switch to Mono/Metric). Preview looks sparse and blocky? That's the downsample default of 5 doing its job for speed; lower it before your final save, not during iteration. And if there's speckle floating in the void, flip on filter_outliers and nudge outlier_percentage up a couple points. Start loose, tighten only as needed - over-filtering eats real geometry.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| depth_raw | IMAGE | — | |
| confidence | IMAGE | — | |
| intrinsicsopt | STRING | — | |
| sky_maskopt | MASK | — | |
| source_imageopt | IMAGE | — | |
| confidence_thresholdopt | FLOAT | 0.100–1 | Filter out points with confidence below this threshold (0-1) |
| downsampleopt | INT | 51–16 | Take every Nth pixel to reduce point cloud density. Higher = fewer points, faster processing. 1 = no downsampling (slowest, most detail) |
| allow_around_1opt | BOOLEAN | false | If your depth values have a max close to 1, you are likely feeding normalized depth instead of real/metric depth. This node requires raw metric depth (typical values 0.1–200+). Disable this check only if your scene truly has max depth ~1 meter. |
| filter_outliersopt | BOOLEAN | false | Remove points far from point cloud center (reduces noise) |
| outlier_percentageopt | FLOAT | 5.00–50 | Percent of furthest points to remove from center |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pointcloud | POINTCLOUD | — |