CloudCompare Update List Message: release of version 2.12.0 "Kyiv"

 
From: "CloudCompare Update List" <admin@PROTECTED>
Date: March 31st 2022
Dear CloudCompare enthusiasts,

A new version has been released! You'll find it here:


CloudCompare 2.12.0
installer version
CloudCompare 2.12.0
7z archive version
ccViewer 1.40
7z archive version
Windows icon Windows 64 bits Installer (64 bits) 7zip (64 bits) 7zip (64 bits)
Windows icon Windows 64 bits Stereo
(support for 3D stereo display devices)
Installer (64 bits) 7zip (64 bits) 7zip (64 bits)
Mac OS icon Mac OS 64 bits (Intel) Installer (64 bits)
Mac OS icon Mac OS 64 bits (Apple silicon) Installer (64 bits)
Linux icon Linux 64 bits snap and flathub packages are availble for Linux.
[Flathub] type "flatpak install flathub org.cloudcompare.CloudCompare"
[Snap] type "snap install cloudcompare"
Snaps are published in 3 channels: "stable", "beta", and "edge". You can switch at any time between these 3 channels by launching "sudo snap refresh --<channel name>" in your terminal.
Github iconSources git repository: https://github.com/CloudCompare/CloudCompare/releases/tag/v2.12.0
(for compilation instructions, refer to the BUILD.md file)

The wiki documentation is also the only reliable documentation and (almost) up-to-date!


Your support is greatly appreciated. Many thanks to all our supporters who made donations


The 2.12.0 Kyiv version is finally ready!
(hopefully I don't need to explain why this version is named Kyiv... As a Free project, we can only whish for people to live freely, and we fully support those who have to fight for their freedom)

Despite COVID and other fun little projects that reduced my free time quite a bit, this 2.12 version has a huge list of improvements, new features and 7 new plugins! It should also prove to be quite stable (hopefully).

And let me thank all our backers once again! Your support is really appreciated! CloudCompare is not "free". Downloading and using CloudCompare can be done freely and free of charge... but developping and maintaining it is certainly not free! Open source projects can't live without active support from the community.


Here are the new menu entries:

  • 'Edit > Cloud > Create single point cloud'
    • to create a cloud with a single point (set by the user)
  • 'Edit > Cloud > Paste from clipboard' (shortcut: CTRL+P)
    • to create a cloud from ASCII/text data stored in the clipboard
  • 'Edit > Scalar fields > Split clouds (integer values)'
    • will split the cloud in multiple sub-clouds based on the (integer) values of its active scalar field.
    • to be used with a classification SF typically.
  • 'Edit > Scalar fields > Add classification SF'
    • shortcut to the 'Edit > Scalar fields > Add constant SF' method.
    • creates a 'Classification' SF with a constant (integer) value.

Here are the new plugins:

  • Cloud Layers
    • manual classification of point clouds (with ASPRS classes by default, but can be customized / extended to any class values)
    • brought by Wiggins Tech to the community
    • developed by Neurodat (a company of talented Ukrainian devs, that deserve all our praises for delivering the final version of this plugin despite the ongoing madness in their country! If you wish to have a plugin developed and/or support them, don't hesitate to contact them)
    • a video capture of an old version can be seen here (the wiki documentation will be updated as soon as possible)
Cloud Layers plugin
  • Fast Global Registration
    • automatic registration of point clouds (with normals) with no initial/rough alignment
    • based on: Q.-Y. Zhou, J. Park, and V. Koltun, "Fast Global Registration", ECCV, 2016
    • see the wiki documentation
MPlane plugin
Colorimetric Segmenter plugin
  • Masonry Segmentation
    • Segmentation of dense point clouds of masonry structures into their individual stones
    • By the Historic Digital Survey project (see their website for a nice video)
    • see the wiki documentation
Masonry plugin
  • Mesh Boolean
    • Boolean operations on meshes, based on libigl
    • Slower, but supposedly more robust than Cork
    • see the wiki documentation
Mesh Boolean plugin

We support 2 new file formats:

  • STEP (.step)
    • CAD geometries will be automatically tesselated
    • new I/O plugin based on Open Casacade
    • by Raphael Marc, EDF R&D
  • Draco(.drc)
    • Google compressed format
    • for now, it mainly allows to save the geometry of clouds and meshes (as well as normals or RGB colors, but not the texture, etc.) with a configurable compression ratio
Draco logo    Draco save dialog

Here is the long list of improvements:

  • 'X', 'Y' and 'Z' labels are now displayed next to the trihedron axes (in the bottom right corner)
new trihedron
  • New Display options:
    • option to select the application style (Windows Vista, Windows, Fusion, etc.)
    • single click picking can be disabled (can be very slow for very large point clouds)
  • Better management of filenames with non latin characters
    • for raster files, STL files, PDMS scripts, and Point List picking exported files
  • Graphical Segmentation Tool (scissors)
    • the tool can now segment polylines (it will only keep segments with both vertices visible)
    • various improvements (visibility of segmented entities is forced for more clarity, etc.)
    • new option to flag the points inside the polygon with a given class value (instead of segmenting the points).
      • a 'Classification' SF will be added to the cloud if none already (otherwise the 'Classification' SF will be updated)
      • shortcut: 'C'
Segment classification
  • Rasterize tool
    • RGB and scalar field based layers can now be exported to standard image formats
    • improved interpolation scheme on the raster borders
    • new 'max edge length' option when interpolating grid cells, to avoid using large triangles
    • the rasterize tool grid is 'centered' on the raster (image) boundary pixels (the grid min corner coordinates correspond to the lower left raster cell center, and the grid max corner coordinates correspond to the upper right raster cell center). This has been made more explicit in the 'Edit grid' sub-dialog.
Rasterize grid dialog
  • Section extraction tool
    • polylines (imported or drawn) can now be unselected when not in 'edition' mode. Just click anywhere else.
    • the 'unfold' option can now be used on all the polylines at once if no polyline is selected.
  • RANSAC plugin
    • can save all leftover points into a new cloud (leftovers were points not assigned to a shape)
    • can select whether to use Least Squares fitting on found shapes (some shapes take a very long time to process this step specifically Cones)
    • can select whether to attemt to simplify shapes (torus->cone/cylinder/sphere/planes cone->cylinder/sphere/plane cylinder->sphere/plane, sphere->plane)
    • can choose whether or not to have a random color assigned to each shape found.
    • ability to select min and max radii for various shapes (helps prevent giant spheres and cylinders from beating out the more likely plane feature)
  • ICP registration
    • new option to take the normals into account (if both entites have normals)
      • several matching modes are available: same side, opposite side, or double-sided
    • new 'research' option to use signed distances when registering a cloud with a (reference) mesh
      • helfpul to prevent the cloud from sinking below the mesh surface if used in conjunction of a small overlap percentage
ICP normals
  • Clipping box tool
    • former 'contours' renamed 'envelopes' for the sake of clarity
    • ability to extract the real contours of the points inside each slice (for both the single slice mode and the 'repeat' mode)
      • CC will rasterize the points inside the slice and apply the same 'contour plot' extraction algorithm as the Rasterize tool
    • see the updated wiki documentation
Contour extraction (cross section)
  • Compass plugin
    • planes fitted with the 'Plane tool' should now always have the normal pointing towards the user instead of a random orientation
  • Animation plugin
    • option to smooth the trajectory
    • option to choose the video output codec/format
  • M3C2 plugin
    • new options to orient normals:
      • with the previous normal (if any)
      • or with the associated sensor origin
  • Normal computation
    • new preferred orientation: 'sensor origin' (requires a 'sensor' entity to be associated to the point cloud)
  • ATI cards
    • the display should now be faster with ATI cards thanks to a smarter way to manage (2D text) textures
  • Localization
    • Korean is now supported (thanks to Yun-Ho Chung)
    • Russian translation has been updated (thanks to Gene Kalabin)
    • Chinese is now supported (thanks to https://github.com/jindili)
  • The option 'Edit > Normals > Invert' can now be used on meshes
  • Roughness computation:
    • new option to set a 'up direction' to compute signed roughness values
  • File formats
    • PCD
      • CC can now load PCL files (.pcd) with integer xyz coordinates (16 and 32 bits) as well as double (64 bits) coordinates
      • CC can now load 'scan grids' corresponding to structured clouds (so as to compute robust normals for instance)
      • the (standard ?) 16 bytes alignment for the various fields has been removed, so as to drastically reduce the memory consumption and the output file size!
    • STL
      • loading speed should be greatly improved (compared to v2.10 and v2.11)
    • LAS
      • the Global Shift, if defined, will now be used as LAS offset if no offset was previously set
      • the PDAL LAS I/O filter and the libLAS I/O filter should now both handle LAS offset and scale the same way at export time.
      • the 'LAS 1.3 or 1.4' filter (based on libLAS) will now preserve the Coordinate Reference System (if the LAS file is loaded and saved with this filter)
    • OBJ
      • support of the 'Ke' (emission) option in MTL files
  • Global Shift & Scale:
    • the Ransac Shape Detection plugin can now transfer the Global Shift & Scale info to the created primitives
    • the primitive fitting functions (Fit shpere, Fit plane, Fit facet and Fit quadric) as well
    • the 2.5D Volume calculation tool now transfers the Global Shift & Scale info to the exported difference map/cloud
  • Align tool (Point-pair based registration)
    • labels associated to a point cloud will now remain visible and the user can pick them
    • the tool will display the corresponding label title in the registration summary tables
GCP labels

Here are the Command line improvements:

  • CSF plugin
    • added support for command line mode with all available options, except cloth export
    • use -CSF to run the plugin with the next optional settings:
    • -SCENES [scene]: name of the scene (SLOPE|RELIEF|FLAT)
    • -PROC_SLOPE: turn on slope post processing for disconnected terrain
    • -CLOTH_RESOLUTION [value]: double value of cloth resolution (ex. 0.5)
    • -MAX_ITERATION [value]: integer value of max iterations (ex. 500)
    • -CLASS_THRESHOLD [value]: double value of classification threshold (ex. 0.5)
    • -EXPORT_GROUND: exports the ground as a .bin file
    • -EXPORT_OFFGROUND: exports the off-ground as a .bin file
  • Command 'Rasterize'
    • New output option '-OUTPUT_RASTER_Z_AND_SF' to explicitly export altitudes AND scalar fields.
    • The former '-OUTPUT_RASTER_Z' option will now only export the altitudes as its name implies.
    • New option '-MAX_EDGE_LENGTH' to set a maximum edge length when interpolating values
      • to be used with the '-EMPTY_FILL INTERP'
  • New sub-option for the RANSAC plugin command line option (-RANSAC)
    • OUT_RANDOM_COLOR = generate random colors for the output clouds (false by default now)
  • New sub-option for the 'FILTER_SF' command:
    • N_SIGMA_MIN and N_SIGMA_MAX: specify the option followed by a numeric value to filter by N * standardDeviation around the mean.
  • new option '-INVERT_NORMALS':
    • Inverts the normals of the loaded entities (cloud or mesh, and per-triangle or per-vertex for meshes)
  • new option '-RENAME_SF' {scalar field index} {name}:
    • To rename a scalar field
  • new option '-REMOVE_SF' {scalar field index}:
    • To remove a specific scalar field
  • new option '-NOISE KNN/RADIUS {value 1} REL/ABS {value 2} {RIP}':
    • To apply the Noise filter to the loaded point clouds
    • value 1: number of neighbors if KNN, radius if RADIUS
    • value 2: relative error (standard deviation multiplier) if REL, absolute error if ABS
    • RIP: remove isolated poins (optional)
  • the 'OCTREE_NORMALS' option has been updated:
    • MINUS_ZERO and PLUS_ZERO can now also be written MINUS_ORIGIN and PLUS_ORIGIN
    • new sub-options '-ORIENT PLUS_SENSOR_ORIGIN' and '-ORIENT MINUS_SENSOR_ORIGIN' (to use the sensor origin to orient the normals - a sensor must be associated to the cloud of course ;)
  • new sub-option for the 'ROUGH' command (Roughness):
    • '-UP_DIR X Y Z' to specify a 'up direction' to compute signed roughness values.

Here are the bug fixes:

  • Virtual Broom plugin: the broom was not working properly on a non horizontal surfaces!
  • M3C2 plugin: M3C2 dialog parameters were not properly restored in command line mode
  • Command line:
    • using the "-FBX" option would lead to an infinite loop
    • filenames local ('foreign') characters were not preserved
    • the '-GLOBA_SHIFT FIRST' option was not working properly
  • Trace polyline: the exported polylines had a wrong unique ID. Saving multiple polylines created this way in the same BIN file could lead to a corrupted file.
  • Scissors tool: points were segmented only inside the frustum (screen) even if some segmentation polygon vertices were outside
  • E57:  "invalid data" flags were wrongly interpreted
  • the 'Clean > Noise' tool was mixing the number of neighbors (knn) and the 'kernel radius' parameters
  • PLY filter was exporting large coordinates with a limited accuracy when creating ASCII files
  • the 'flip normals' checkbox of the C2M comparison dialog was not accessible anymore
  • minimal LAS scale suggested by CC was sometimes too small, potentially triggering a PDAL exception
  • when loading raster files, GDAL can sometimes report wrong min and max altitudes. This would then let CC think that invalid pixels were present. And when telling CC to keep these invalid points, their altitude would be replaced by a weird/random value...
  • CloudCompare was reporting truncated (integer) dip and dip direction values instead of rounded values
  • Shapefile (.shp)
    • CloudCompare was not able to read shapefiles with missing measurements (while this field is generaly optional for polylines, polygons and point clouds)
    • the SHP I/O filter was writing the local bounding-box in the file header instead of the global one (if the saved entities were shifted)
  • PLY files with point elements containing a 'list' property would be considered as face elements (preventing the user from loading the cloud)
    • It is now possible to load such PLY files if the 'list' is composed of floating point values
  • when merging two clouds, CC could crash is the LoD structure was currently being built at the same time on one of the clouds
  • the 'Guess parameters' option of the M3C2 plugin was suggesting radii while M3C2 scales are diameters (i.e. ideal values should have been twice as big)
  • ASCII file load dialog: CC would assign an 'Intensity' column to the 'Grey' color role, which is rarely a good idea. It will now assign it to 'Scalar field' by default.
  • trying to merge several clouds, some being ancestors of the others, could lead to a crash
  • calling the 'Mesh > Smooth (Laplacian)' tool on a mesh with the database tree unfloded could make CC crash
  • cloning the 'contour' part of a Facet would result in a locked polyline (that cannot be deleted or moved)
  • when rendering the screen with a zoom > 1, the scale label was wrongly scaled as well
  • Graphical segmentation: when using the shortcuts 'i' and 'o' to segment points inside or outside a polyline not yet closed (with a right click), the overlay buttons would become transparent to clicks, and the not yet confirmed vertex of the polyline was not taken into account
  • Rasterize tool: the exported geotiff files were (once again?!) shifted of half the cell size

And last, some other remarkable things that happened:

  • the CloudCompy project (to use CloudCompare capabilities in a Python environment) is growing fast, thanks to the support of Paul Rascle
  • Veesus, which develops Arena4D and other solutions, provides a plugin for CloudCompare 2.11.3 (for now) to allow loading their file format in CloudCompare (see their download page)
  • we have lost Martin Isenburg, the creator of the LAStools suite ... RIP Martin :(

Daniel
CloudCompare admin

PS: if you can't read properly this message, you can read it here: http://www.cloudcompare.org/release/notes/20220330/index.html

  • This mailing list is a public mailing list - anyone may join or leave, at any time.
  • This mailing list is announce-only.

To be informed of the last CloudCompare official release

Privacy Policy:

This mailing list is used to keep you and others informed about the last CloudCompare updates. We do not share or sell your information to any third parties.

If you have any question or concerns, please contact us at admin@cloudcompare.org.