LAS / PLY / E57Mesh (OBJ / glTF)
Point cloud to mesh: from scans to usable surfaces
How to turn large point clouds into clean, lightweight surface meshes for analysis, CAD and the web.
The problem
Why this conversion is hard
- Point clouds have millions of points but no surfaces, so engineers cannot measure or model on them directly.
- Raw scans contain noise, outliers and holes.
- A naive reconstruction produces meshes far too heavy for a browser.
Our approach
How we do it
- 01
Clean
Downsample to an even density and remove statistical outliers.
- 02
Estimate normals
Each point gets a consistently oriented normal, which surface reconstruction depends on.
- 03
Reconstruct
Poisson surface reconstruction builds a watertight surface. Low-density areas, which are usually invented surface, are trimmed.
- 04
Simplify
Quadric decimation reduces the triangle count while keeping the shape that matters.
Example
A short working example
A starting point to show the idea. Production pipelines add validation, tiling and error handling around it.
import numpy as np
import open3d as o3d
pcd = o3d.io.read_point_cloud("scan.ply")
pcd = pcd.voxel_down_sample(voxel_size=0.02)
pcd, _ = pcd.remove_statistical_outlier(nb_neighbors=20, std_ratio=2.0)
pcd.estimate_normals(o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))
pcd.orient_normals_consistent_tangent_plane(30)
mesh, densities = o3d.geometry.TriangleMesh.create_from_point_cloud_poisson(pcd, depth=9)
densities = np.asarray(densities)
mesh.remove_vertices_by_mask(densities < np.quantile(densities, 0.05))
mesh = mesh.simplify_quadric_decimation(target_number_of_triangles=100_000)
o3d.io.write_triangle_mesh("surface.obj", mesh)Pitfalls
What usually goes wrong
- Poisson depth controls detail and memory: raise it step by step.
- Wrongly oriented normals create inside-out surfaces.
- For very large scans, tile the cloud spatially and reconstruct tile by tile.
Case studies
Where we have done this

AEC / Construction
Surface Mesh Optimization
High-quality, low-polygon surface meshes created from point cloud data for fast web rendering.
Read case study
Reality capture / Survey
3D Mesh Reconstruction with ML Segmentation and Adaptive Point Clouds
Segmented, semantically classified 3D meshes reconstructed from images, using ML segmentation and adaptive point clouds.
Read case study
Reality capture / Survey
Streaming Large Point Clouds to the Web
An automated 3D Tiles pipeline and streaming service that renders point clouds several GB in size in the browser.
Read case study
Need this in your product?
Tell us about your data and your product. You will talk to an engineer from the first call.
