CloudCompare Update List Message: release of version 2.13.0 "Kharkiv"

 
From: "CloudCompare Update List" <admin@PROTECTED>
Date: February 14th 2024
Dear CloudCompare enthusiasts,

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


CloudCompare 2.13.0
installer version
CloudCompare 2.13.0
7z archive version
ccViewer 1.41
7z archive version
Windows icon Windows 64 bits
(unified: stereo and non-stereo displays)
Installer (64 bits) 7zip (64 bits) 7zip (64 bits)
Mac OS icon Mac OS 64 bits (Apple silicon) Installer (64 bits)
kindly generated and hosted by Paul Rascle
Linux icon Linux 64 bits flathub packages are availble for Linux.
[Flathub] type "flatpak install flathub org.cloudcompare.CloudCompare"
Github iconSources git repository: https://github.com/CloudCompare/CloudCompare/releases/tag/v2.13
(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.13.0 Kharkiv version is finally ready!

After a year and a half, here is the latest and greatest version with once again a huge list of improvements, new features and new plugins!

As usual, let me thank all our backers! 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 definitely not free! Open source projects can't live without active support from the community.


Here are the new menu features:

  •  New menu entry: Save project
    • 'File > Save project' (shortcut: CTRL+SHIFT+S)
    • saves all entities in the DB at once, as a .bin file
  • Edit > Normals > Set SF(s) as normal
    • also accessible via 'Edit > Scalar fields > Set SF(s) as normal'
    • allows to set normals from scalar fields (or 0s or 1s)

      Set SF as normals dialog
  • New feature to "Draw normals as lines"
    • available in the cloud properties, whenever a cloud has some normals
    • option to set the length of the normals
    • option to choose the color of the normals


  • Edit > Normals > Shift points along normals
    • to shift the points of acloud 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)
    • note that 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 the cross
  • New default color ramp: Cividis


Here are the new plugins:

  • New unified plugin to load LAS files (by Thomas Montaigu)
    • based on LASzip
    • works on all platforms (Windows, Linux, macOS)
    • manages all versions of LAS files (up 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


  • 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



  • 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)


  • 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)



For the command line fans, a lot of new options have been added!

  • -SF_ADD_ID
    • allows to add the index of the point as a scalar field
  • -FLIP_TRI
    • to flip the order of the triangle vertices
  • -SF_OP_SF
    • to compute an arithmetic operation between two scalar fields (add, sub, mult, div)
  • -SF_INTERP
    • to interpolate a scalar field from one cloud to another cloud
  • -SF_ADD_CONST
    • to add a constant scalar field to a cloud
  • -SF_TO_COORD
    • 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)
  • -RDP
    • removes duplicate points of all loaded clouds
  • -DEBUG
    • display various pieces of information to help one debug and tweak the command line
  • -RENAME_ENTITIES
    • rename all loaded entities
  • -COMMAND_FILE
    • allows to apply commands in a separate file (with comments, multiple lines, etc.)
  • -SET_GLOBAL_SHIFT
    • to modify or remove the Global Shift of entities after they have been loaded
  • -SELECT_ENTITIES
    • to (temporarily) select a subset of entities on which to apply the next commands
  • -REMOVE_SENSORS
    • removes all sensors
  • -VERBOSITY  [0-4]
    • to set the log 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)

See the update wiki page for more details (https://www.cloudcompare.org/doc/wiki/index.php/Command_line_mode)


We also have a huge list of improvements:

  • Edit > Translate/Rotate:
    • option to rotate/translate entities by a small increment, with buttons or using left/right arrows
      • see  the 'advanced' section
    • thanks to Lighpoint Scientific
  • Gamepad support
    • ccViewer now supports gamepads
    • CloudCompare should now properly detect gamepads on Windows
  •  The 3D display can now be rendered to a file even with 'Anaglyph' (Red/Blue) stereo mode enabled
    • works with 'Display > Render to file'
    • works with the '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 now '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)
    • new 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)
    • new option (checkbox): 'Apply to global coordinates'
      • this allows to apply the transformation matrix to the original Global coordinates instead of the local ones (useful to georeference a cloud with a known transformation)
    • new tab to define the transformation as a rotation from a vector to another one (+ a translation)
    • ability to paste the axes, triplet of angles and translation vectors from the clipboard (3 numerical values separated by whitespaces, commas or semicolons)
    • the tool now tries to handle rotation scaling separately (with a dedicated field, assuming it's the same scaling for all dimensions)


  • Edit > Multiply/scale
    • when using a negative scale on a point cloud, the normals will now be inverted accordingly
    • Edit > Scalar fields > Set SF as coordinate(s)
      • if a single entity is selected (cloud or mesh), a new dialog will appear, that lets the user choose different scalar fields for each dimension (or a constant value - 0 or 1 - or a pass-through option).
      • the dialog is similar to the new 'Set SF(s) as normal' tool


    • Edit > Waveform > 2D Waveform viewer
      • the point which waveform is edited is now spotted in the 3D view and information is displayed as in with the picking tool
    •  Multi-threading
      • If possible, CC will now try to use less threads/cores than the maximum number, so as to let the application breath (warning: some dialogs may keep the previous value as it's stored in the system registry)
    • Segmentation
      • CC will now preserve some children entities (labels, sensors, etc.) when segmenting clouds or meshes:
        • interactive segmentation tool, cross section tool (for clouds only), subsampling, filter by SF value, etc.
    • Interactive segmentation tool ('scissors' tool)
      • new button in the toolbar to export the current selection as a new cloud or mesh (without having to close the tool)
      • shortcut: E (for 'Export')



      • the user can now configure the name suffix for the 'remaining' and 'segmented' cloud
      • the display should be faster until the first segmentation is performed
      • for meshes: unused mesh vertices should now be properly removed from both the segmented and the remaining mesh parts
      • polygon mode: one can use ALT+left click to remove the last vertex
    • Rasterize
      • new option to fill the empty cells with Kriging



      • various improvements and glitch fixes
      • better naming of the scalar fields generated by the tool when exporting the grid to a cloud (with statistics)
      • if a scalar field projection option is chosen, all SF and colors will be projected at once so that all layers are valid right away (no need to 'update' the grid several times)
      • new projection options (inside each cell)
        • Median
        • Inverse variance
      • statistics can now be computed on the altitudes and/or all scalar fields
      • new statistics:
        • number of unique values inside a cell
        • median
        • percentile (with custom percentage)
      • new command line sub-options (see below)
      • when exporting Geotiff files, CC will now use NaN as the value for invalid pixels (no data)
    • Raster file format:
      • when loading a raster file, CC should now be able to detect the Z band more robustly (even if it's labeled as 'grey indexes' by GDAL)
    • Edit > Color > Set unique / Edit > Color > Colorize
      • CC will now remember the last input color
    • Global Shift
      • the suggested global shift will now be rounded to the nearest thousand (so as to suggest values in kilometers, easier to manage)
    • PoissonRecon plugin
      •  the user can now choose the number of threads
    • Edit > Cloud > Paste from clipboard
      • the shortcut has been changed to ALT+P (so as to not conflict with the already existing CTRL+P shortcut for the 'Trace polyline' tool)
    • Color scales / Color scale editor
      • it is now possible to override a custom label value by a text (in the custom labels definition field, add a text between double quotes, after the numerical value)
    • ASCII files
      • ability to load quaternion coordinates (qw, qx, qy and qz) that will be loaded as individual 'Coordinate System' objects
        • once 4 columns are assigned to one of the 4 quaternion components (w,x,y,z), the user can elect the display scale of the to-be-created 'Coordinate System' objects
      • the ASCII file loading dialog has been improved:
        • a 'reset all' button was added to reset all column roles at once
        • the dialog should be smarter when restoring the previously set configuration
        • the 'Apply All' button should now work for more than two files ;)
    • BIN files
      • CC is now able to create BIN files with the lowest version as possible (depending on the selected entities) so that the resulting file may potentially be opened by earlier versions
    • LAS files
      • the default shift for (GPS) time values is now rounded to the nearest 10^5 value
      • the shift value is now displayed as a property of the currently selected scalar field
      • the user can now set a custom shift for GPS time values
      • the 'tiling' option will now remember the last used parameters (destination folder, dimension and number of tiles)
    • E57 files
      • images are now saved internally as JPEG files (faster and smaller)
      • sensors associated to images should now be properly shifted if the associated cloud is shifted, or if they are not associated to a cloud
      • scan grids ('groupingByLine' scheme) will now be loaded by CloudCompare
        • this is useful to compute clean and fast normals (note that they are still not exported)
    • PCD files
      • better management of PCD files with large coordinates (the Global Shift & Scale dialog will appear)
      • at export time, if the previous sensor is too far from the points, it might not be saved to preserve numerical accuracy (the previous sensor will be replaced by a default one positioned accordingly to the Global shift)
    • STP files
      • the triangles of meshes tessellated from STEP files should now all be properly oriented
      • the linear deflection is asked only once when multiple files are loaded at the same time
    • PLY files
      • loading dialog: the scalar fields are now displayed in a 'list widget' in case there are too many to fit in the screen
    • Salome/.poly files
      • CC will now detect that the first and last vertices of a polyline are similar, and will automatically close the polyline
    • Edit > Subsample:
      • new option to set the number of randomly sampled points as a percentage



      • the dialog will now remember the previous settings (last method used, sampling value, etc.)
    • New operations in the SF Arithmetic tool
      • MIN
        • to get the minimum values between 2 scalar fields
      • MAX
        • to get the maximum values between 2 scalar fields
      • SET
        • to set a constant value
      • ABS
        • to compute the absolute value
    • New entity picking mechanism
      • should hopefully solve most of the random issues with picking
    • Cloning
      • ability to clone images
      • ability to clone 2D labels
      • ability to clone 2D viewport labels
      • ability to clone viewport objects
    • EDL shader
      • contrast and rendering quality improved
    • PCV plugin
      • the number of rays and the context resolution can now be set to up to 65536
    • Camera sensor edition dialog
      • the user can now control whether the input 'center' is in the world C.S. or in the camera C.S. (or more exactly, it's the translation part of a 4x4 transformation matrix - which was the case by default in the previous versions)         
    • GBL sensor edition dialog
      • CC will now remember the last parameters used to create a sensor (not to edit one though)
    • CSF plugin
      • the CSF filter can now be applied on multiple clouds at once (both in the GUI and the command line version)
    • qEllipser plugin
      • option to export the polyline (and its major and minor axes) as polylines
    • Animation plugin
      • option to export the trajectory as a polyline
      • the plugin will now restore the custom light position (and activation state) if the viewports are saved with this version of CloudCompare. This allows to render animations of still objects but with a moving light source for instance.
    • ICP
      • the computed registration transformation will now be applied to the aligned entity and all its children (if any)
    • Align (point-air based registration):
      • when using a reference entity having a defined Global Shift & Scale the registration matrix from the to-be-aligned local entity coordinate system to the reference entity global coordinate system will be output in the Console
      • the Align tool will now output the list of points used and the final distance between them in the Console
      • the Align tool will now show errors along X, Y and Z axes in dedicated columns.
    • ICP and Align tools:
      • when using a reference entity having a defined Global Shift & Scale the registration matrix from the to-be-aligned local entity coordinate system to the reference entity global coordinate system will be output in the Console
    • Edit > SF > Compute stat. params
      • some more basic statistics are displayed in the Console:
        • number of valid values
        • sum of all valid values
        • sum of squared values
        • average
        • RMS
    • Connected Components Extraction
      • the parameters are now semi-persistent (= maintained as long as CC is running)
    • Cloud-to-primitive distances
      • refreshed dialog



      • when launching the Cloud-to-mesh distance tool with a primitive as the 'mesh,' role CC will now suggest the user to use the Cloud-to-primitive distance tool instead
    • Display > Display settings
      • the default threshold to activate the LoD mechanism is now 50M. points
    • Entity properties
      • the 'Bounding Box dimensions' field will now also show the min and max coordinates




    Command line improvements
    • logging should be more responsive (both in the standard console-based mode and the silent mode)
    • simple quotes should now be properly handled (and can be used to set output filenames or scalar field names with space characters)
    • most methods using scalar fields as input will now also accept the scalar field name (in lieu of the SF index)
      • use simple quotes if the scalar field name has spaces in it
    • it is now possible to pass -1 as index after -SET_ACTIVE_SF to disable the active SF
    • otherwise, the current/default active scalar field can now be designated by index '-1' with the following commands:
      • REMOVE_SF, SF_TO_COORD, SF_ARITHMETIC, SF_OP, SF_INTERP, RENAME_SF, ICP (USE_MODEL_SF_AS_WEIGHT/USE_DATA_SF_AS_WEIGHT)
    • the -SET_ACTIVE_SF command can now be applied to the loaded meshes
    • the -SF_COLOR_SCALE option now works on meshes (vertices) as well
    • the -FILTER_SF option now works on meshes as well
    • the -FILTER_SF option can now be used with the special values in any order
      • MIN / DISP_MIN / SAT_MIN / N_SIGMA_MIN / MAX / DISP_MAX / SAT_MAX / N_SIGMA_MAX
    • new sub-option for the -C2C_DIST and -C2M_DIST commands
      • -SPLIT_XY_Z to split the distance between the z component and the xy plane component
    • new sub-option for the -C2M_DIST command
      • -UNSIGNED to compute unsigned distances
    • new sub-options for the -APPLY_TRANS command
      • -APPLY_TO_GLOBAL {FORCE}
        • to apply the transformation to the global coordinate system instead of the local coordinate system
        • warning: the Global Shift might be automatically adjusted to preserve accuracy (and small local coordinates)
        • by default, the Global Shift won't be automatically adjusted if the local coordinates are already large. Use 'FORCE' after -APPLY_TO_GLOBAL to force CC to adjust the Global Shift in any case.
      • -INVERSE: to inverse the transformation matrix before applying it.
    • new sub-options for -SS command
      • -SS OCTREE NUMBER_OF_POINTS {number} to subsample with the highest octree level for which the resulting point count won't exceed the given number of points
      • -SS OCTREE NUMBER_OF_POINTS PERCENT {number} to calculate NUMBER_OF_POINTS from PERCENT. PERCENT should be a decimal number between 0 and 100.
      • -SS OCTREE CELL_SIZE {size} to deduce the octree level from the given cell size.
      • -SS RANDOM PERCENT {number} to calculate the number of sampled points from PERCENT. PERCENT should be a decimal number between 0 and 100.
      • -SS SPATIAL {fallback_step} USE_ACTIVE_SF {step_at_SF_min} {step_at_SF_max} to use spatial step interpolation on active scalar field (fallback step will be used if active SF has invalid values)
    • new sub-options for -ICP command
      • -SKIP_TX to skip translation along X axis
      • -SKIP_TY to skip translation along Y axis
      • -SKIP_TZ to skip translation along Z axis

    And last but not least, here are the bug fixes:

    • PCD files: when transforming a cloud with a sensor (either manually, or via a registration tool, or via Edit > Apply Transformation) and then exporting the cloud to a PCD file, both the points AND the sensor were transformed, resulting in the PCD file coordinates to be in the wrong coordinate system (as if the transformation had been applied twice)
    • The QTextStream::pos method is slow and unreliable. This could cause some issue when loading ASCII files.
    • When creating a new 3D view, it was not possible to pick an entity displayed in it by clicking on it.
    • When clicking on an entity in a 3D view while holding CTRL, it was only possible to select it, not to deselect it if it was already selected.
    • When using the Align tool on an aligned entity with labels, the initial view point could be invalid
    • Zooming in and out or changing the FOV in bubble view mode was not working anymore
    • When pausing the graphical segmentation tool while a contour / polyline was started but not closed, the tool icons would not be clickable anymore (forcing the user to exit the tool with ESC)
    • The 'Point List Picking' tool was not transferring the Global Shift information when exporting the list of points as a polyline
    • Rasterize tool: interpolated scalar fields were not properly exported in geotiff files (the interpolated part was missing)
    • Registration tools (ICP and Point-pair based alignment)
      • the transformation filter mechanism would not let filter both translations and rotation at the same time
      • they could generate a sub-optimal translation if the rotation was constrained
    • With a lot of NaN values in a scalar field, the Edit > Scalar field > Compute Stat Params tool could show wrong abscissa values below the histogram and curve
      • note that the average, standard deviation, RMS and Chi2 distance values displayed either above the histogram or in the Console were correct)
    • When loading E57 files with large coordinates, and applying a Global Shift, the associated image sensors were not translated of the same Global Shift
    • The 'cartesian bounds' of E57 files saved by CC were expressed in the global coordinate system instead of the local one
    • When applying the viewport of a calibrated image (= image with an associated sensor), the camera f.o.v. was applied instead of a smarter value, taking the 3D view dimensions into account (resulting in a bad match between the 3D scene and the overlaid image)
    • The PCL plugin's 'MLS' tool dialog was broken
    • The CSF plugin command line could truncate the exported clouds filename if floating point values were present in this filename
    • The 'File > Save File' option could also truncate the cloud name when suggesting a default output filename
    • The colors of the 'Compute Stat. Params' histogram could be wrong if the associated color scale was 'absolute'
    • M3C2 plugin
      • the display was not always updated when M3C2 computation was done
      • some parameters were not properly restored when re-opening the plugin dialog (e.g. the 'normal source')
    • Extracting a single slice via the Contour extraction option of the 'Cross Section' tool would not work
    • Fix the Support for High DPI screens (4K) on Windows
    • OBJ files with symlinks (to the .mtl file) could not be properly loaded
    • The bottom left scale was not always correctly displayed when rendering the screen with a zoom > 1 (both in terms of width and position)
    • The Primitive Factory 'precision' field was not used
    • The command line -FEATURE now changes the cloud name so that if it is saved with -SAVE_CLOUDS later it will not overwrite the original cloud.
    • The Point Pair registration ('Align') or ICP tools could generate a sub-optimal translation if the rotation was constrained
    • The C2M distance could crash if forcing the octree level above 11 or 12 (which would likely require a grid of more than 2 billion cells)
    • Translating or rotating the cloud while the LoD structure was being built could lead to a hang or a crash of CC


    Other news around CloudCompare:
    • The side project CloudCompy (to use CloudCompare capabilities in a Python environment) is still growing thanks to the support of Paul Rascle
    • The number of tutorial videos made by users on Youtube is also growing (almost 200 now!)


    And now it's time to rant a little:
    • More and more companies are using the code of CloudCompare (under the GPL license) in their closed source software tools :(
      • while CloudCompare can be freely used for any purpose, the program itself cannot be redistributed without some constraints.
      • but more critically, the code of CloudCompare cannot be used in a closed source Software
      • even if the tool was to be freely distributed, this would be an infringement of the GPL license
    • During the last months, some users have helped us identify 3 closed-source projects that are relying on our code
      • the 3 projects are Chinese...
      • 1 project has accepted to release their code publicly to comply with the license
      • the 2 other projects have ignored our warnings:
        • Goslam (not to be mistaken with Geoslam) and their Studio Flagship software


        • Geosun and their Point Cloud Catalyst Viewer


      • Be warned if you use these products that they are infringing the GPL license and disrespecting our work.
      • If you spot other closed-source programs that look a lot like CloudCompare, please warn us! (admin@PROTECTED)


    Best wishes to all,

    Daniel
    CloudCompare admin

    PS: if you can't read this message properly, you can read it here: http://www.cloudcompare.org/release/notes/20240214/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.