Preview Point Cloud
The node for raw dots, when you need raw dots
- model_3d
- viewport_state
- model_3d_info
- camera_info
- model_3d
- model_3d_info
- camera_info
- width
- height
Preview Point Cloud is the most specialized node in the 3D family, and it's honest about it. It takes a point cloud - a .ply file of raw 3D points, no surfaces, no gaussians - opens it in the interactive viewer, and passes it through to the rest of your graph. If you're working with scanner output, lidar data, or photogrammetry point clouds, this is the one. If you're not, you'll probably never touch it, and that's fine.
It's ComfyUI core, "3d" category, nothing to install. Like the rest of the advanced preview family it landed around June 2026, so it's new but it does exactly one thing and does it simply.
What a point cloud is, and isn't
A point cloud is the most primitive possible 3D representation: a bunch of XYZ coordinates, often with color, representing where surfaces are - but with no connections between them. You get a cloud of dots that reads as a shape when you zoom out. Gaussian splats are similar-looking but fundamentally different: each splat carries a size and opacity and fills space, so it renders as a solid scene. A point cloud renders as... points. That's the difference, and it's the whole reason this node exists separately from Preview Splat.
This node accepts .ply point-cloud files (and generic 3D files) - same shape as its sibling, same passthrough outputs: model_3d, model_3d_info, camera_info, width, height. Feed it a file, look at it, it comes back out. The viewport_state widget and optional camera_info give you the viewing angle; width/height default to 1024 and pass through.
The one real confusion: PLY again
Here's the thing that trips people up, and it's worth saying slowly: both Preview Point Cloud and Preview Splat accept .ply. A PLY file doesn't tell you what kind of data it holds - it's just a container. So if you wire a splat-format PLY into this node, you'll see a hollow cloud of dots where the model should be. Not broken. Wrong node.
The rule of thumb: if the file came from an image-to-3D model like TripoSplat or from a 3DGS toolchain, it's a splat - use Preview Splat. If it came from a scanner, a drone survey, or a photogrammetry export, it's genuinely a point cloud - use this node. When in doubt, try both; the viewer will make the answer obvious in one second.
When you'd actually use it
Point clouds in ComfyUI workflows are still niche, which is why this node has near-zero mindshare. The realistic uses: you're doing photogrammetry, you're validating a point-cloud export before meshing it, or you're working with a pipeline that produces point clouds (some depth-to-3D paths do). For those cases this is exactly the right tool - a direct, format-appropriate preview that doesn't try to interpret your data as something it isn't.
If that's not your world, remember it exists, then move on. The 3D family's other previews will cover 99% of what you do.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model_3d | FILE_3D_POINT_CLOUD_ANY,FILE_3D_PLY | Point cloud file (.ply) | |
| viewport_state | LOAD_3D | — | |
| width | INT | 10241–4096 | — |
| height | INT | 10241–4096 | — |
| model_3d_infoopt | LOAD3D_MODEL_INFO | — | |
| camera_infoopt | LOAD3D_CAMERA | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model_3d | FILE_3D_POINT_CLOUD_ANY | — |
| model_3d_info | LOAD3D_MODEL_INFO | — |
| camera_info | LOAD3D_CAMERA | — |
| width | INT | — |
| height | INT | — |