You just finished a handheld LiDAR scan of a building interior. The SLAM algorithm spit out a point cloud file — maybe E57, maybe LAS — and now you're staring at it thinking, "What do I do with this?" The scan has noise, ghost points from reflective surfaces, and areas where multiple scan passes overlap. You need a floor plan for the architect, a 3D mesh for the client, and a volume calculation for the contractor. And you need it by Friday.

CloudCompare handles all of that. It's free, open-source, runs on Windows/macOS/Linux, and processes point clouds in the hundreds of millions without choking. This guide walks through the complete workflow: importing raw handheld scan data, cleaning it up, registering multiple scan positions, generating deliverables, and a few advanced tricks that save real time on the job.

Why CloudCompare for Handheld LiDAR Data

Most handheld LiDAR scanners — Livox Mid-360, Livox M360, SLAM-based scanners like the RS10, or DIY rigs using Raspberry Pi and a 3D LiDAR — output data in standard formats like E57, LAS, or PLY. That data needs cleaning before it's useful. CloudCompare reads all these formats natively, runs on standard hardware (a mid-range laptop with a discrete GPU is fine), and has a plugin ecosystem covering everything from ground segmentation to automatic classification.

A few things that matter specifically for handheld LiDAR:

Download it from cloudcompare.org. The installer includes all core functionality; plugins install separately through the built-in plugin manager.

Importing Your Handheld Scan Data

Supported Formats

The format your scanner outputs depends on the software you used during capture:

FormatStrengthsBest For
E57Stores intensity, color, and metadata; handles multiple scan positionsSurvey-grade deliverables
LAS/LAZIndustry standard for airborne and terrestrial LiDAR; compressed LAZ saves ~50% diskGIS workflows
PLYSimple, universal; no metadata overheadQuick visualization
PTXLeica-specific but widely compatibleLeica scanner interop

For most handheld SLAM workflows, E57 is the go-to — it preserves scan metadata and handles the dense point clouds these systems produce.

Step-by-Step Import

  1. File → Open (or drag and drop the file into the viewer)
  2. CloudCompare auto-detects the format and loads the point cloud
  3. Check the DB Tree panel (left side) — your cloud appears there with a point count

For large files (500MB+), CloudCompare may take 30–60 seconds to build the octree on first load. This only happens once per session. If your system is struggling:

Handling Multiple Scan Positions

Handheld scanners sometimes save multiple scan "stations" in a single E57 file. CloudCompare loads each as a separate entity in the DB Tree. If your SLAM software already aligned everything into one global coordinate frame (which is typical for FAST-LIO2, R3LIVE, or Point-LIO), these stations should already overlap correctly. If not, you'll align them manually in a later step.

Cleaning Up the Point Cloud

This is where most of your time goes. Raw handheld scan data almost always needs three things: noise removal, ghost point elimination, and unwanted-area clipping.

Noise Filtering

Two filters matter here, and they solve different problems:

Statistical Outlier Removal (SOR) removes isolated points that don't have enough neighbors within a given radius. It's the first filter to run on any raw scan.

Run SOR once. If ghost points remain, run it again with tighter parameters (fewer neighbors, lower multiplier).

Radius Outlier Removal removes points that have fewer than X neighbors within a fixed distance. It's useful when SOR leaves behind small clusters of noise (common near reflective glass or metal surfaces).

Clipping Unwanted Regions

You almost never want the entire point cloud. You need to crop out:

Manual clipping box: Edit → Segment → Clip Box. Draw a box around the area you want to keep. The Clipping Box tool lets you adjust each face independently with the visible constraint handles.

Interactive segment: Edit → Segment → Segment (manual). Draw a polygon on the screen to select points. This is slower but more precise for irregular boundaries.

Ground Segmentation (CSF Filter)

The Cloth Simulation Filter (CSF) separates ground points from non-ground points by simulating a cloth draped over the point cloud. It works well for outdoor scans and large interior spaces.

CSF creates two output clouds: ground points and non-ground points. Export them separately if you need both.

Ghost Point Removal

Handheld LiDAR near glass windows, polished floors, or mirrors produces "ghost" points — reflections that appear behind the reflective surface. These show up as thin duplicate surfaces slightly offset from the real surface.

There's no automatic fix for this. The manual approach:

  1. Use the "pick point" tool to identify ghost surfaces
  2. Use Segment → Manual to select and delete the ghost layer
  3. For large reflective areas, consider applying a clip box that excludes the ghost region, then manually patching with points from adjacent scans

Registering Multiple Scan Positions

If your SLAM software didn't merge everything into one coordinate frame, or if you ran multiple independent scan passes, CloudCompare's registration tools align them.

Rough Alignment

Start by roughly positioning the clouds so they overlap visually. Use:

Fine Registration (ICP)

Iterative Closest Point (ICP) refines the alignment by minimizing the distance between overlapping points.

  1. Select both clouds in the DB Tree (Ctrl+click)
  2. Edit → Align → Register (ICP)
  3. Set the parameters:
    • Overlap percentage: 20–50% (how much the two scans overlap)
    • Number of iterations: 10,000+ (more iterations = finer result)
    • Random sampling limit: 50,000 points per iteration (balances speed and accuracy)
  4. Click Register

ICP works best when the clouds are already close. If the initial alignment is poor, ICP can get stuck in a local minimum and produce a bad result. Always rough-align first.

Checking Registration Quality

After ICP, check the overlap:

Once satisfied, merge the clouds: Edit → Merge

Generating Deliverables

Floor Plans and 2D Projections

Architects and contractors often need a 2D floor plan. CloudCompare generates these by projecting the point cloud onto a horizontal plane:

  1. Select your cleaned cloud
  2. Edit → Segments → Rasterize
  3. Set the projection direction (Z-axis for a horizontal floor plan)
  4. Choose output: grid, image, or ASCII
  5. Export the rasterized result

For a cleaner floor plan, first crop the cloud to wall height only (e.g., 0.5m to 2.5m above floor level) using a Clip Box before rasterizing. This removes ceiling and floor clutter.

3D Mesh Generation

Converting a point cloud to a mesh is necessary for visualization in tools like Blender, Unity, or Unreal Engine, and for export to OBJ/FBX formats.

Poisson Reconstruction produces smooth, watertight meshes but can oversmooth sharp edges:

  1. Edit → Mesh → Poisson Reconstruction
  2. Set the octree depth (higher = more detail, but slower and more memory). Depth 9–11 is typical for handheld scans
  3. The output mesh appears in the DB Tree

Greedy Projection Triangulation preserves sharp edges better but requires clean, noise-free input:

  1. Compute normals first: Edit → Normals → Compute Normals
  2. Edit → Mesh → Greedy Projection Triangulation

For architectural scans with lots of sharp corners, Greedy Projection usually produces better results. For organic or curved surfaces (rock faces, terrain), Poisson works better.

Run mesh smoothing afterward (Edit → Mesh → Smooth) to remove triangle artifacts — but don't over-smooth or you'll lose detail.

Volume Calculations

For excavation, stockpile, or fill/dirt work:

  1. Load two clouds (before and after, or the cloud and a reference plane)
  2. Edit → Compute Cloud/Cloud Distances → or use Edit → Volume → 2.5D Volume Calculation
  3. Set the projection plane and grid step
  4. CloudCompare outputs cut/fill volumes and a color-coded height difference map

Measurement Tools

CloudCompare has built-in tools for measuring distances, areas, and cross-sections directly on the point cloud:

Exporting

Choose the right export format for your downstream workflow:

DeliverableBest Export Format
Architectural floor planDXF, SVG, or rasterized PNG
3D visualizationOBJ or FBX (with textures)
GIS / SurveyingE57 or LAS (preserves coordinates)
Web sharing3D Tiles or Potree format (via plugins)
General-purposePLY (binary, uncompressed)

Advanced Techniques Worth Knowing

Color and Scalar Field Visualization

Raw handheld LiDAR data typically includes an intensity channel (how much laser energy reflected back). CloudCompare can visualize this, or you can apply color by:

These visualizations help you spot issues (alignment errors, noise, missing areas) that are hard to see in the default white-point display.

Automatic Point Cloud Classification

The 3DMASC plugin (3D Machine Learning for Automatic Semantic Classification) classifies points into categories: ground, vegetation, buildings, vehicles, etc.

  1. Install 3DMASC via Plugins → Browse plugins
  2. You'll need training data — the plugin includes sample datasets
  3. Select your cloud, run the classifier, and it labels each point

This is useful for outdoor scans where you need to separate ground from vegetation from structures. For indoor handheld scans, the CSF filter for ground segmentation is usually sufficient.

Change Detection (Cloud vs. Cloud Comparison)

If you have two scans of the same area taken at different times (e.g., monitoring crack propagation in a structure, or tracking construction progress):

  1. Register both clouds (ICP)
  2. Select both → Edit → Compute Cloud/Cloud Distances
  3. The resulting scalar field colors each point by its distance to the nearest point in the other cloud
  4. Use the scalar field histogram to set thresholds — points beyond a threshold are flagged as "changed"

This is a fast way to generate deformation reports without third-party software.

Batch Processing with Python Plugin

CloudCompare has a Python plugin that lets you script repetitive tasks. If you're processing 50 scans from a survey project with the same cleaning pipeline (SOR filter → clip box → mesh generation → export), scripting it saves hours:

  1. Install the Python plugin (Plugins → Browse plugins → "Python")
  2. Open the Python console (Plugins → Python Console)
  3. Write a script that loads each file, applies your pipeline, and exports the result

The CloudCompare wiki has sample Python scripts for common workflows.

Quick Reference: CloudCompare Workflow for Handheld LiDAR

StepTool/MenuWhat It Does
ImportFile → OpenLoad E57, LAS, PLY, or other formats
Noise removalEdit → Scalars → Noise filter (SOR)Remove isolated outliers
Ghost cleanupEdit → Segment → ManualDelete ghost points from reflections
Area clippingEdit → Segment → Clip BoxKeep only the region of interest
Ground separationPlugins → CSF FilterSplit ground from non-ground
RegistrationEdit → Align → Register (ICP)Align multiple scan positions
MergeEdit → MergeCombine aligned clouds
Mesh generationEdit → Mesh → Poisson / Greedy ProjectionConvert points to triangles
Volume calculationEdit → Volume → 2.5D VolumeCalculate cut/fill volumes
MeasureEdit → Measure → Point-to-Point / DistanceDistance, area, profiles
ExportFile → SaveOutput to target format

What CloudCompare Doesn't Do

A few common tasks require other tools:

CloudCompare handles the point cloud processing. For the next step in your workflow — Scan-to-BIM conversion or accuracy assessment — you'll combine it with other tools in the chain.

Getting Started

Download CloudCompare from cloudcompare.org. The latest stable version (2.13.x as of mid-2026) includes GPU-accelerated rendering and improved plugin support. It runs on any modern laptop with 8GB+ RAM; 16GB is comfortable for files over 50M points.

Grab a sample handheld LiDAR scan (many are available on OpenTopography or the CloudCompare forum), load it up, and walk through the SOR → Clip → Mesh pipeline. The interface takes about an hour to feel comfortable. The workflow becomes muscle memory after two or three projects.

📖 Related Reading

Need a Handheld LiDAR Scanner?

Check the M360 3D LiDAR — 5cm blind zone, 70°×360° FOV, IP67, ideal for handheld SLAM scanning.

View M360 Specs → Contact Us →

🛒 M360 3D LiDAR: 5cm blind zone | 70°×360° FOV | IP67 | <4.5W | Dual echo optional
View full parameter comparison →


© 2026 SmartBotParts. All rights reserved.

CloudCompare is free, open-source software available at cloudcompare.org. Version references in this article are based on CloudCompare 2.13.x. Feature availability may vary with newer versions. Always verify plugin compatibility with your specific CloudCompare build.