# CloudCompare

CloudCompare is a 3D point cloud processing software (such as those obtained with a laser scanner). It can also handle triangular meshes and calibrated images.
Originally created during a collaboration between Telecom ParisTech and the R&D division of EDF, the CloudCompare project began in 2003 with the PhD of Daniel Girardeau-Montaut on Change detection on 3D geometric data. At that time, its main purpose was to quickly detect changes in 3D high density point clouds acquired with laser scanners in industrial facilities (such as power plants) or building sites. Afterwards it evolved towards a more general and advanced 3D data processing software. It is now an independent open source project and a free software.
CloudCompare provides a set of basic tools for manually editing and rendering 3D points clouds and triangular meshes. It also offers various advanced processing algorithms, among which methods for performing:
* projections (axis-based, cylinder or a cone unrolling, ...)
* registration (ICP, ...)
* distance computation (cloud-cloud or cloud-mesh the nearest neighbor distance, ...)
* statistics computation (spatial Chi-squared test, ...)
* segmentation (connected components labeling, front propagation based, ...)
* geometric features estimation (density, curvature, roughness, geological plane orientation, ...)
CloudCompare can handle unlimited scalar fields per point cloud on which various dedicated algorithms can be applied (smoothing, gradient evaluation, statistics, etc.). A dynamic color rendering system helps the user to visualize per-point scalar fields in an efficient way. Therefore, CloudCompare can also be used to visualize N-D data.
The user can interactively segment 3D entities (with a 2D polyline drawn on screen), interactively rotate/translate one or more entities relatively to the others, interactively pick single points or couples of points (to get the corresponding segment length) or triplets of points (to get the corresponding angle and plane normal). The latest version also supports the creation of 2D labels attached to points or rectangular areas annotations.
CloudCompare is available on Windows, Linux and Mac OS X platforms, for both 32 and 64 bits architectures. It is developed in C++ with Qt.

## Input/Output

CloudCompare supports read/write in the following formats:
* BIN (CloudCompare own binary format) and SBF (simple binary format)
* ASCII cloud (one point per line "X Y Z ...") [wizard]
* PLY cloud or mesh [wizard]
* OBJ mesh(es)
* VTK cloud or mesh
* STL mesh
* E57 (ASTM E2807 standard) clouds & calibrated images
* LAS and LAZ clouds
* Point Cloud Library PCD files
* FBX mesh
* SHP files
* OFF mesh (Geomview)
* PTX cloud (Leica)
* FLS/FWS cloud(s) (Faro)
* DP cloud(s) (DotProduct)
* RDB / RDBX / RDS cloud(s) (Riegl)
* PSZ projects (Photoscan)
* Various other polyline formats
Moreover, CloudCompare can also read (but not write) other formats. For example, thanks to a collaboration with Pr. Irwin Scollar (creator of AirPhoto SE, a program for the geometric rectification of aerial images & orthophotos from multiple images), CloudCompare can import Snavely's Bundler SfM software output file (.out) to generate orthorectified images (directly as image files or as 2D point clouds) and an approximated DTM (based on Bundler key-points) colored with images data. CloudCompare can also import various other formats: Aveva PDMS '.mac' scripts (supported primitives: cylinder, plane, cone, torus, dish, box, snout and profile extrusion), SOI (from old Mensi Soisic scanners), PN, PV, POV, ICM, etc.
Eventually, CloudCompare can also export Maya ASCII files (MA).

## Plugins

A plugin mechanism enables further extension of CloudCompare capabilities. Two kinds of plugins are available:
* standard plugins for algorithms coming either from the academic world (ShadeVis, HPR, Poisson reconstruction, Boolean operations on meshes, etc.) or from external libraries (PCL) or others (e.g. generation of animations with qAnimation)
* OpenGL plugins for advanced shaders (EyeDome Lighting, SSAO, etc.)