Point Cloud Toolkit™ logo

Engineering Dynamics Company

Point Cloud Toolkit™

Point Cloud Processing & Visualization for Blender

Point Cloud Toolkit — User Guide

Importing, filtering, and surfacing laser-scan point clouds in Blender.

This guide walks through installing the add-on, finding its panels, and completing the common tasks, with a reference for every control. For a terse feature list, see README.md.


Contents

  1. Overview
  2. Installation
  3. Quick start
  4. Import Point Cloud
  5. Filter Point Cloud
  6. Create Ground Surface
  7. Create 3D Surface
  8. Documentation & provenance report
  9. Optional dependencies
  10. Tips & troubleshooting
  11. License & support

A note on values: defaults are shown in parentheses. Distance controls follow the scene's unit system in Blender; their defaults are given here in metres, Blender's base unit (1 unit = 1 m).


Overview

Point Cloud Toolkit adds an EDC Toolkits tab to the 3D View sidebar (press the N key) with four tool sections that share one point-cloud selection:

Section What it does
Import Point CloudMulti-format import — PLY (ASCII or binary), PTX, E57, LAS/LAZ, and PCD — as a coloured mesh with a Geometry Nodes point display
Filter Point CloudVoxel subsampling and Statistical Outlier Removal, always to a new cloud (the original is never modified)
Create Ground SurfaceDrape a regular grid over the cloud: per-cell ground-percentile height sampling, spike rejection, hole filling, clip-to-object, and a colour texture baked from the cloud
Create 3D SurfaceFull 3D reconstruction via Open3D (Poisson / Ball Pivoting / Alpha Shape) for vertical and overhanging geometry, with automatic texture baking, tiling, and bulge trimming

The add-on targets Blender 4.x and is numpy-vectorized throughout, so it stays fast on million-point clouds.


Installation

  1. In Blender, open Edit → Preferences → Add-ons → Install… and select the PointCloudToolkit-<version>.zip file.
  2. Enable Point Cloud Toolkit in the add-ons list.
  3. Open the 3D View sidebar with the N key and select the EDC Toolkits tab.

The add-on's preferences let you rename the sidebar tab — set it to an existing tab's name to share a tab with other add-ons.

On Blender 4.2+ the same zip also installs as an extension (Preferences → Get Extensions → Install from Disk), and updates automatically when added from the EDC Software repository.


Quick start

  1. In Import Point Cloud, click Import Point Cloud and load a scan. The imported cloud is selected automatically as the source for the other sections.
  2. *(Optional)* Set Clip To Object to restrict surfacing to a boundary mesh.
  3. *(Optional)* In Filter Point Cloud, enable Subsample (Voxel) and/or Remove Outliers (SOR), then click Filter → Create New Point Cloud.
  4. For drivable ground, use Create Ground Surface; save the .blend first so the texture JPG can be written next to it.
  5. For vertical or overhanging geometry, use Create 3D Surface (Poisson is the all-rounder). Afterwards, Trim Bulges (To Cloud) removes invented geometry and Rebake Texture re-fits the texture.

Import Point Cloud

Imports PLY (ASCII or binary), PTX, E57, LAS/LAZ, and PCD files as a coloured mesh point cloud displayed through a Geometry Nodes modifier (also available on File → Import). The imported cloud is automatically selected as the Point Cloud source used by the other sections.


Filter Point Cloud

Cleans a cloud before surfacing. Filtering always creates a *new* cloud object — the original is never modified. The same filters also run automatically when creating a surface, and textures always bake from the full, unfiltered cloud.

Shared controls (Filter / Ground / 3D)


Create Ground Surface

Drapes a regular grid over the cloud to build a drivable ground surface. Distance controls are given in metres (1 unit = 1 m).

Aerial image (replace the point-cloud colour)

You can drape one or more aligned aerials / orthophotos over a created surface instead of the colour baked from the point cloud — useful when a recent aerial reads better than the scan colours. Both textures are kept, so you can switch back at any time. This works on ground and 3D surfaces.

  1. For each aerial, add a reference and align it over the surface in top view: the simplest is a Plane (Add → Mesh → Plane) given the aerial as an image-texture material, scaled and positioned to cover that aerial's area. (An Empty → Image reference also works.)
  2. Select every aerial plane, then the surface last so it is active. (For a single aerial you can instead set Aerial Reference to the one plane, and optionally Aerial Image to override the image.)
  3. Click Apply Aerial Image. Each surface face is textured by the aerial whose footprint covers it, with top-down planar UVs computed from that plane's world extent, so every orthophoto lands by geographic position. Because these are real textures (their own UV layer and one material per aerial), they export cleanly.
  4. Show Point-Cloud Texture / Show Aerial Image toggles the whole surface between the two — the original point-cloud texture (and, for a joined surface, each tile's own texture) is preserved.

If the cloud was recentered on import, aligning the aerials visually over the surface already puts them in the right (shifted) space — no coordinate math needed. Tip: if your aerials are just tiles of one orthomosaic, merging them into a single image first (e.g. QGIS / gdal_merge) lets you use one plane instead.

Tuning & troubleshooting (ground surface)

Adjust one setting at a time and re-create the surface to see its effect.

If you see… Try
Too many low points / the surface dips into potholes or drops below the roadwayLower Below-Grade Reject (e.g. 0.5 → 0.2 m) so stray below-ground returns are cut and refilled; if whole areas sag, raise Ground Percentile a little (e.g. 10 → 20) so it samples higher.
Spikes or bumps sticking up from trees, poles, walls, or parked carsLower Spike Reject (Above) (e.g. 1.0 → 0.5 m) so shorter spikes are caught; if wide vegetation strips remain, raise Spike Width (Max).
Real curbs, embankments, or hills being flattenedRaise Spike Reject (Above) (less aggressive) and/or lower Spike Width (Max) so only narrow objects are removed.
The road colour is tinted by vehicles or foliageLower Color Height Tolerance (e.g. 0.25 → 0.1 m) so only near-ground points contribute colour.
Gaps or holes in the surfaceEnable Fill Holes and raise Max Fill Distance to bridge farther.
Surface invented over a true void (e.g. across a ditch or off the road edge)Lower Max Fill Distance, or set Clip To Object to the area of interest.
Surface is too heavy / slow to work withRaise Resolution (Cell Size), enable Subsample (Voxel), or add a Decimate modifier.
Blurry textureRaise Texture Resolution, or use Texture Tiles for more total pixels.

Create 3D Surface

Full 3D reconstruction via Open3D (installed automatically on first run) for vertical and overhanging geometry — walls, embankments, vehicles, structures. For drivable ground, Create Ground Surface remains the better tool. Distance controls are given in metres (1 unit = 1 m).

Post-build tools (shown when a reconstructed surface is selected)

Tuning & troubleshooting (3D reconstruction)

Poisson is the usual starting point; change one control at a time and rebuild.

If you see… Try
Surface balloons out past the scan (Poisson invents geometry in empty areas)Raise Density Trim (e.g. 0.05 → 0.2), or run Trim Bulges (To Cloud) after the build; lowering Poisson Depth also helps.
Holes or gaps in the surfaceBall Pivoting: raise BPA Radius Multiplier to span wider gaps. Alpha Shape: raise Alpha. Poisson: lower the depth.
Surface is too smooth / fine detail lostRaise Poisson Depth (e.g. 9 → 10–11).
Surface is noisy or lumpyLower Poisson Depth, or raise Normal Neighbors (k) for smoother normals.
Walls or overhangs look inside-out or patchySet Normal Orientation to Consistent (the Up option can misorient vertical faces).
Reconstruction is very slowTurn on Use Existing Normals (if the cloud has them), use the Up orientation, and/or Subsample (Voxel) first. The first run also caches its normals, so later rebuilds skip the slow step.
Blurry textureRaise Texture Resolution or use Texture Tiles; for flat, top-down terrain, Planar UV is the sharpest.

Documentation & provenance report

The Documentation panel has an Open User Guide button (this guide) and a Provenance Report (Active) button. The report writes a self-contained HTML document for the active cloud or surface — the source file and its SHA-256 hash, point/geometry counts, coordinate extents in both Blender and original (georeferenced) space, the import scale and global shift, and the tool/Blender versions — for documentation and chain-of-custody. It's saved next to the .blend (or a temp folder if unsaved) and opened in your browser. The "Prepared by" field is left blank for you to fill in; it is not taken from the OS login.


Optional dependencies

Optional Python packages install themselves into Blender's Python when first needed — no manual pip work is required. An internet connection is needed the first time each feature is used.

Package Needed for When it installs
open3d3D reconstruction, compressed PCDFirst Reconstruct 3D Surface (large download; may need a Blender restart)
pye57E57 importFirst E57 file opened, or the install button in the panel
laspy[lazrs]LAZ importFirst LAZ file opened, or the install button in the panel

Tips & troubleshooting


License & support

Point Cloud Toolkit is © Engineering Dynamics Company, written by Anthony Cornetto, and is free software licensed under the GNU General Public License, version 2 or later — see the bundled LICENSE file. Official builds, updates, and support are provided by Engineering Dynamics Company; visit edccorp.com or contact EDC support.