Skip to content

Releases: CloudCompare/CloudCompare

v2.13.1

20 Mar 21:50
Compare
Choose a tag to compare

v2.13.1 (Kharkiv) - (03/20/2024)

Improvements:
- the Facets plugin will now retain the Global Shift information when extracting facets, and the 'Global center' will
also be exported when exporting facets info to CSV or SHP files
- the Compass plugin will now warn the user if a wrong entity is picked
- the 'Edit > Tools > Apply transformation' dialog accuracy has been improved (so as to properly handle small rotation angles)
- It is now possible to save clouds (points and normals) as an OBJ file
- the 'Tools > Distances > Cloud/Mesh distances' tool will now use a smarter algorithm to avoid edge cases
when determining the sign of the distance.
- the dialog has a new 'robust' option (enabled by default) to control whether this new algorithm should be used,
or if the old algorithm should be used.
- the ICP tool dialog also has a 'robust' option (Research tab) to control this behavior when using C2M distances
- new command line option -NON_ROBUST to force the old behavior for both the C2M distances computation and the ICP
tools (see below)
- Command line options
- New suboption for the -C2M_DIST command line option:
- -NON_ROBUST to disable the robust signed C2M distances computation algorithm (old behavior)
- New suboptions for the -ICP command line option:
- -USE_C2M_DIST to force the computation of Cloud/Mesh distances (only if the reference entity is a mesh)
- -NON_ROBUST to disable the robust signed C2M distances computation algorithm (old behavior)
- -NORMAL_MATCH {OPTION} to specify the normals matching mode (no normal matching is used by default).
{OPTION} can be OPPOSITE, SAME_SIDE or DOUBLE_SIDED
- The 3DFin plugin version has been bumped to 0.3.3

Bug fixes:
- CSF: the multi-threading strategy could cause artefacts in the cloth simulation, leading to suboptimal results
- CSF: the acceleration component was wrongly multiplied twice by the square time increment, requiring much more
iterations for the algorithm to converge
- 3DMASC: when using a test cloud, the process was automatically terminated as if the user had clicked on the
'cancel' button
- The DotPorduct (DP) file I/O filter was not able to load files with non latin characters. It was also wrongly
reporting its ability to export files while it is no longer the case.
- Upgrading the DotProduct SDK to version 5.2 to avoid crashes when loading some DP files
- The -EXTRACT_CC command line option could overwrite the automatically saved component clouds if multiple clouds were
originating from the same file. Now the component filenames will contain the cloud name and index in the file to
make sure they are unique.
- The Global Shift information was not always saved when exporting to the PCD format
- When refusing to change the Global Shift & Scale information after applying a transformation, the Global Shift & Scale
information could be reset
- When changing values in the Apply Transformation tool, a chain of events/updates could lead to a strange behavior
of the dialog

v2.13.0

14 Feb 20:34
1c1f67b
Compare
Choose a tag to compare

v2.13.0 (Kharkiv) - (02/14/2024)

  • New features:

    • New menu entry: Save project

      • File > Save project (or CTRL+SHIFT+S)
      • Saves all entities in the DB as a bin file
    • Tools > Fit > circle

    • Edit > Normals > Set SF(s) as normal (or Edit > Scalar fields > Set SF(s) as normal)

      • allows to set normals from one or several scalar fields (or 0 or 1,
        or a pass-through option if the cloud already had normals)
    • New section in the Properties when a cloud is selected: "Draw normals as lines"

      • one check box to toggle the display
      • one double spin box to choose the length of the normals (1 by default)
      • one combo box to choose the color of the normals
    • Edit > Normals > Shift points along normals

      • to shift the points of a given quantity along their associated normal
    • New display feature: near and far clipping planes in 3D views

      • extension of the previously existing feature to set a near clipping plane
      • can be enabled and modified in the Camera Parameters dialog or via
        CTRL + mouse wheel (near) or CTRL + SHIFT + mouse wheel (far)
      • the user shall now input actual distances and not percentages
      • works for all projection modes (orthographic and perspective)
      • does not modify the rendering quality of the EDL or SSAO shaders
      • taken into account when using interactive segmentation or point picking
      • not compatible with the Cross Section tool
    • New 'Display > Display settings' options:

      • Restore window geometry on startup
        • option to control whether the previous window geometry (size and position) should be restored or not
      • Picking cursor ('Cross' or 'Pointing hand')
        • default mouse cursor for picking points will now be a cross
    • New default color ramp: Cividis

  • New plugins

    • New unified plugin to load LAS files (by Thomas Montaigu)

      • based on LASzip
      • should work on all platforms (Windows, Linux, macOS)
      • manages all versions of LAS files (1.0 to 1.4)
      • gives much more control over extended fields (EVLR) as well as custom mapping between
        the existing fields of a cloud and their destination in the LAS file
    • New plugin: q3DMASC

      • 3DMASC is an advanced plugin for 3D point cloud classification, that uses Multiple Attributes, Scales and Clouds.
        It is possible to use it with the GUI but also to call it with the command line.
      • See https://lidar.univ-rennes.fr/en/3dmasc
    • New plugin: qTreeIso

      • a 3D graph-based individual-tree isolator (treeiso) from Terrestrial Laser Scanning point clouds
      • by Zhouxin Xi and Chris Hopkinson, Artemis Lab, Department of Geography & Environment, University of Lethbridge (Canada)
    • New Python-based plugin: 3DFin (3D Forest Inventory)

      • automatic computation of tree parameters in terrestrial point clouds
      • accessible via the Python plugin (check the option to install it via the Windows installer)
      • see https://github.com/3DFin/3DFin
      • developed at the Centre of Wildfire Research of Swansea University (UK) in collaboration with the
        Research Institute of Biodiversity (CSIC, Spain) and the Department of Mining Exploitation of
        the University of Oviedo (Spain)
  • New command line options

    • SF_ADD_ID allows to add the index of the point as a scalar field (initially as a float32, so there is a loss of accuracy for values above 16777215)
      • the AS_INT parameter allows to store the index as a raw uint32, allowing index values from 0 up to (2**32-1)
    • FLIP_TRI (to flip the order of the triangle vertices of all opened meshes)
    • SF_OP_SF {SF 1 name or index} {operation} {SF 2 name or index}
      • to compute an arithmetic operation between two scalar fields (add, sub, mult, div)
      • works on clouds and meshes
    • SF_INTERP {SF name or index} with sub-option -DEST_IS_FIRST
      • to interpolate a scalar field from one cloud to another cloud (use DEST_IS_FIRST if destination is first)
    • SF_ADD_CONST {SF name} {const value}
      • to add a constant scalar field to a cloud
    • SF_TO_COORD {SF name or index} {X, Y or Z}
      • to set the values of a scalar field as the X, Y or Z coordinates
    • COLOR_INTERP
      • to interpolate the colors from one cloud to another cloud
    • CLEVELS
      • to edit the color bands histogram of a cloud or a mesh (https://www.cloudcompare.org/doc/wiki/index.php/Colors%5CLevels)
      • syntax: -CLEVELS BANDS INPUT_RANGE_MIN INPUT_RANGE_MAX OUTPUT_RANGE_MIN OUTPUT_RANGE_MAX
        • band can be any mix of 'R', 'G' and 'B' (ex: 'G' or 'RB' or 'RGB')
        • selected color component values will be scaled so that
          [INPUT_RANGE_MIN INPUT_RANGE_MAX] becomes [OUTPUT_RANGE_MIN OUTPUT_RANGE_MAX]
          (values outside of the input range will also be scaled)
    • RDP {opt: min distance between points}
      • removes duplicate points of all loaded clouds
      • the min distance between points to consider them as duplicated can be set (1e-8 by default)
    • DEBUG
      • display various pieces of information to help one debug and tweak the command line
      • can be placed at different positions
    • RENAME_ENTITIES {base name}
      • rename all loaded entities (clouds or meshes) with the provided base name.
        A numerical suffix is added if multiple entities are loaded.
    • COMMAND_FILE {file}
      • loads commands from a file
      • multiple lines allowed
      • multiple arguments in each line allowed
      • handle quoted arguments
      • commands after this one will run after all commands in the file have been processed
      • whole line comments with # my comment here or // here
      • comment out single arguments '/* my comment here */', must be quoted with either single or double quote, if it contains spaces
    • SET_GLOBAL_SHIFT {x} {y} {z} -KEEP_ORIG_FIXED
      • set global shift on all entities
      • sub-option -KEEP_ORIG_FIXED: if set, global origin will be preserved (a warning might be issued if the resulting coordinate transformation is too big)
    • SELECT_ENTITIES -{FIRST} {first count} -{LAST} {last count} {-ALL} {-NOT} {-REGEX} {regex_pattern}
      • sub-option -FIRST {count}: if set, first count of entities will be selected (optional). Example: xx.....
      • sub-option -LAST {count}: if set, last count of entities will be selected (optional). Example: .....xx
      • sub-option -ALL: if set, all entities will be selected (optional). It has higher priority than FIRST/LAST/REGEX. Example: xxxxxxx
      • sub-option -REGEX {regex_pattern}: if set, all entities with matching names will be selected (optional). It has higher priority than FIRST/LAST. Example: x(merged)..x(merged)...
      • sub-option -NOT: if set, all condition will be reversed (optional)
        • -NOT -FIRST {count} -> all but first {count}. Example: ..xxxxx
        • -NOT -LAST {count} -> all but last {count}. Example: xxxxx..
        • -NOT -ALL -> none. Example: .......
        • -NOT -REGEX matched -> regex not matched. Example: .(merged)xx.(merged)xxx
        • special case: -NOT -FIRST c1 -LAST c2 -> all except first 'c1' AND last 'c2' entities. Example: ..xxx..
      • sub-option -CLOUD: if set, only clouds will be selected (optional)
      • sub-option -MESH: if set, only meshes will be selected (optional)
      • if neither -CLOUD nor -MESH are set then both types of entities will be selected
      • sub-options can be set in any order
      • it is possible to use FIRST and LAST at the same time. Example: xx...xx
    • REMOVE_SENSORS
      • removes all the sensors (both TLS and cameras, directly under clouds, meshes or mesh vertices)
    • VERBOSITY [0-4] to set verbosity level (0: verbose, 1: standard, 2: important, 3: warnings and errors only, 4: errors only)
      • to hide plugin loading logs, it should be set as first argument (even before -SILENT, in which case -SILENT can be the second argument)
  • Improvements:

    • Edit > Translate/Rotate:

      • In the 'advanced' section, added an option to rotate/translate entities by a small increment, with buttons or using left/right arrows
      • Thanks to Lighpoint Scientific
    • The stereo and the non-stereo versions of CloudCompare and ccViewer are now unified

      • no need to manage/compile 2 different versions anymore
      • CC and ccViewer will automatically detect if Quad Buffer Stereo is supported, and use it when needed
      • (currently, stereo mode is disabled on Linux due to various display issues)
    • Gamepad support

      • ccViewer now supports gamepads
      • CloudCompare should now properly detect gamepads on Windows
    • The display can now be rendered to a file even with 'Anaglyph' (Red/Blue) stereo mode enabled

      • 'Display > Render to file'
      • 'Animation' plugin
    • Tools > Projection > Unroll

      • it is now possible to set any 3D axis for the cylinder or the cone
      • the cone projection type is now set in a separate combo-box to make things clearer
      • cone projection methods are 'Conical', 'Cylindrical (fixed radius)' and 'Cylindrical (adaptive radius)'
      • the conical projection method now takes an additional 'span ratio' parameter as input (to reduce or increase the conical projection angular span)
      • button to flip the 3D axis
      • ability to paste the axis and the axis point from the clipboard (3 numerical values separated by whitespaces, commas or semicolons)
      • option to choose an existing cylinder or cone entity in the DB tree, and use it to set the unrolling parameters
      • option to output the unrolled cloud in an arbitrary coordinate system (X: unroll angle / Y = distance to primitive / Z = longitude)
    • Edit > Apply Transformation

      • new shortcut buttons to set the rotation axis to I(1,0,0), J(0,1,0) or K(0,0,1)
        ...
Read more

v2.13.alpha.230227

27 Feb 08:33
Compare
Choose a tag to compare
New 2.13.alpha version (02/27/2023)

v2.12.4 (Kyiv)

14 Jul 22:15
Compare
Choose a tag to compare

v2.12.4 (Kyiv) - (14/07/2022)

  • Bug fixes:
    • CloudCompare 2.12.X (X<4) could miss some triangles when computing the Cloud-to-Mesh distances (resulting in slightly overestimated distances)
    • CloudCompare would still apply the Global Shift even though it was rejected by the user (which is a bad idea ;). But the entity
      Global Shift would then be (0, 0, 0), resulting in the loss of the original coordinate system.
    • the scale in the lower-right part of the 3D view could have the wrong length (if the height of the window is larger than its width)
    • FBX: CloudCompare couldn't properly load the materials (textures) of meshes with quads
    • the Compass plugin was exporting large coordinates with a too small precision
    • the command line could ignore the input global shift (set with -GLOBAL_SHIFT) if it was not sufficient
      to make the points coordinates small enough. This was not consistent with the previous behavior.
    • the segmentation tool in Perspective mode could keep points behind the camera/viewpoint

v2.12.3 (Kyiv)

13 Jun 22:07
Compare
Choose a tag to compare

Bug fixes:

  • CloudCompare would still apply the Global Shift even though it was rejected by the user (which is a bad idea ;). But the entity Global Shift would then be (0, 0, 0), resulting in the loss of the original coordinate system.
  • the scale in the lower-right part of the 3D view could have the wrong length (if the height of the window is larger than its width)

v2.12.2

23 May 17:04
Compare
Choose a tag to compare

v2.12.2 (Kyiv) - (23/05/2022)

  • Improvements:

    • CSF plugin:
      • 'Cloth resolution' and 'Classification threshold' input precision has been increased from 0.1 to 0.001
  • Bug fixes:

    • The LAS PDAL filter could fail to save additional fields with space characters in their name on some architectures (Linux mostly).
      The filter will now automatically replace space characters (and equal characters) by specific sub-strings to be able to restore
      the original name when loading the LAS file later.
    • The LAS 1.3 or 1.4 filter was applying the Global Shift to the points even if the original 'LAS offset' was different. But it was declaring in the LAS file header that it has used the original LAS offset.
      This would lead to a shifted LAS file with the wrong global coordinates.
    • When double-clicking on a file with local characters in the Windows explorer, CC was not able to interpret the filename or file path correctly
    • Computing per-triangle normals (or methods requiring to update per-triangle normals such as Laplacian smoothing) could lead to a crash on some OBJ meshes

v2.12.1 (Kyiv)

07 May 12:53
Compare
Choose a tag to compare
  • Improvements

    • ICP registration:

      • new option to prevent all rotations in the 'Research' tab ('None' option of the Rotation combo-box), to be consistent with the command line version
    • Rasterize tool:

      • the number of grid cells is now displayed (next to the grid size)
      • the number of non-empty cells is now displayed (next to the cloud name and size)
    • Most of the progress dialogs of CloudCompare should not steal the focus anymore (when loading multiple files in the background for instance)

    • Segmentation tool:

      • the icons are now visually disabled (grayed out) while drawing a polyline. Keyboard shortcuts are still working.
  • Bug fixes:

    • The '-ICP -ROT NONE' command line option was not working as expected
    • When saving in a Shapefile the polyline exported from the Interactive Segmentation tool, an invalid global bounding-box was computed and saved by CC.
    • Label markers were preventing the user from picking the points below (in the Point picking tool as well as other tools)
    • LAS filters will now automatically convert NaN values to a default value when saving fields
      (as NaN is not valid according to specifications and not accepted by most third party libaries and tools)

v2.12.0 (Kyiv)

31 Mar 21:56
Compare
Choose a tag to compare
  • New tools:

    • Menu 'Edit > Cloud'

      • '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
    • Menu '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.
    • Menu 'Edit > Scalar fields > Add classification SF'

      • Shortcut to 'Edit > Scalar fields > Add constant SF' to create a 'Classification' SF with a constant (integer) value
  • New plugins:

  • New command line options:

    • Added N_SIGMA_MIN and N_SIGMA_MAX options to the FILTER_SF command.
      • Specify the option followed by a numeric value to filter by N * standardDeviation around the mean.
    • NORMALS_TO_HSV
      • To convert normals to HSV colors
    • RGB_CONVERT_TO_SF
      • To convert RGB colors to 5 scalar fields (red, green, blue, alpha, composite)
  • New file format:

    • STEP CAD files (see above)
    • Google DRACO format .DRC (compressed point clouds and meshes - https://github.com/google/draco)
    • For now, 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
  • Improvements

    • 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)
    • 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'
    • 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.
    • 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 attemot 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 entities 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
        (helpful to prevent the cloud from sinking below the mesh surface if used in conjunction of a small overlap percentage)
    • Clipping box tool:
      • former 'contours' renamed 'envelopes' for the sake of clarity
      • ability to extract the real contours of the points inside each slice (single slice mode or 'repeat' mode)
        (CC will rasterize the slice and apply the 'contour plot' extraction algorithm)
    • 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
    • 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
    • Command line:
      • 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 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.
    • PCD:
      • CC can now load PCL files 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 ?) 16bytes alignment...
Read more

v2.11.3 (Anoia)

28 Oct 17:53
Compare
Choose a tag to compare

Bug fix:

  • when used with only 3 points (pairs), the Align tool could produce a wrong registration matrix

v2.11.2 (Anoia)

30 Aug 12:23
Compare
Choose a tag to compare

v2.11.2 (Anoia) - 30/08/2020

  • Bug fixes:
  • command line: the LAST keyword was consistently badly managed (for -SF_OP and -ICP)
  • the new 'Edit > Colors > From Scalar Fields' tool could crash due to a non initialized variable
  • PV files could not be loaded anymore
  • even in the command line 'SILENT' mode, loading a SHP file with additional fields in the associated DBF file would spawn a blocking dialog
    (these fields will now be ignored in SILENT mode)
  • LAS 1.3 or 1.4 (LASlib): Classification values and flags were not always loaded or saved properly
  • [Windows] The contour lines generated with the Rasterize tool could be incomplete (due to GDAL 3.0 --> reverting to GDAL 2.2)