Skip to content

Releases: Asher-1/ACloudViewer

Devel packages from the main branch

05 Dec 09:57
b887e7f
Compare
Choose a tag to compare
Pre-release

Note: This release tag (main-devel) is only used to publish ACloudViewer binaries from the main branch. Do not download the source code (it will be out of date) from here.

ACloudViewer 3.9.1

10 May 16:54
531309e
Compare
Choose a tag to compare

v3.9.1 (Asher) - 12/18/2024

ACloudViewer 3.9.1 Release Notes

We are excited to have fun with ACloudViewer 3.9.1 on MacOS (M1, M2 and M3)

We welcome you to the 3.9.1 release of ACloudViewer. This release is full of exciting new features with a strong emphasis in real-time pipelines as follows:

  • Do not update whl packages due to the unchanged features of python interface.
  • Support ACloudViewer on MacOS since v3.9.1!
  • Support CloudViewer on MacOS since v3.9.1!
  • Support additional individual colmap install package on MacOS!
  • Fix many issues on MacOS!
  • Support python3.12!

We hope you find ACloudViewer 3.9.1 exciting and useful. Happy coding!
Remember that you can reach out with questions, requests, or feedback through the following channels:

e-mail

Documentation

What's Changed

Full Changelog: 1.0...v3.9.1

ACloudViewer v3.8.0

07 Nov 07:10
de11989
Compare
Choose a tag to compare

v3.8.0 (Asher) - 10/10/2021

ACloudViewer 3.8.0 Release Notes

We are excited to present ACloudViewer 3.8.0!

We welcome you to the 3.8.0 release of ACloudViewer. This release is full of exciting new features with a strong emphasis in real-time pipelines, but also full of bug fixes and usability improvements. The big highlights of this release are as follows:

  • New 3D reconstruction system heavily based on colmap.
  • New real-time 3D reconstruction pipeline, featuring GPU and CPU support based on VoxelHashing.
  • New real-time point cloud registration algorithm, featuring a high-performance version of Iterative Closest Point (ICP).
  • New Neighbor Search module, introducing your favorite search algorithms such as KNN and RadiusSearch, with support for GPU and CPU devices through a common interface.
  • New web visualizer, which enables users to access the advanced rendering and visualization features of CloudViewer in your favourite web environments (remote and locally!), including Jupyter notebooks, Jupyter lab, and standalone web applications.
  • New 3D machine learning models and datasets, featuring PointRCNN for 3D object detection, SparseConvNets for point cloud semantic segmentation, and support for ScanNet and SunRGBD.
  • Upgraded GUI module, providing improved and more versatile versions of existing widgets, and new ones: ImageWidget and ToggleSwitch.
  • Upgraded build system, adding support for CUDA 11.

Real-time 3D reconstruction

We introduce a new CUDA accelerated pipeline including RGBD odometry, frame-to-model tracking, and volumetric integration.
Figure 1. Example of 3D reconstruction from an RGB-D sensor.

Odometry

We introduce the tensor based real-time RGBD Odometry pipeline. In addition to the legacy Hybrid and Intensity based methods, we support the popular point-to-plane method.

TSDFVoxelGrid

We further accelerate volumetric integration and introduce fast ray casting for rendering.

VoxelHashing

Based on the accelerated RGBD odometry and raycasting, we present the fully functional VoxelHashing system. It performs dense volumetric reconstruction with fast frame-to-model tracking. We present an easy-to-use GUI that also shows real-time interactable surface reconstruction.

SLAC

We have further enhanced our legacy offline reconstruction system by introducing the Simultaneous Localization and Calibration (SLAC) algorithm. This algorithm applies advanced dense multi-way registration along with non-rigid deformation to create highly-accurate reconstructions.

Real-time point cloud registration

We present a high-performance implementation of ICP using CloudViewer’ Tensor library. This module is one of the first on leveraging the new Neighbor search module and the newly crafted parallel kernels. This implementation brings support for multi-scale ICP, which allows us to do iterations on different resolutions in order to accelerate convergence while keeping computation low.
Figure 2. ICP registration of multiple point clouds from a driving dataset.

New Neighbor Search module

Neighbor search is at the core of many 3D algorithms. Therefore, it is critical to have access to a fast implementation able to execute a large number of queries in a fraction of a second. After months of development, the CloudViewer team is proud to present the new Neighbor Search module!

This module brings support for core search algorithms, such as KNN, Radius search, and Hybrid search. All these algorithms are provided with support for both CPU and GPU, through a common and easy-to-use interface. Write your code once and support multiple devices! Moreover, we have not sacrificed a single flop of computation, making this module one of the fastest neighbor search libraries ever created.

Web visualizer

The need for visualizing complex 3D data in web environments has surged considerably in the past few years, in part thanks to the proliferation of sensors like LIDAR and RGBD cameras. New use cases, such as online dataset inspection and remote visualization are now an integral part of many tasks, requiring the crafting of ad-hoc tools, which often are cumbersome to use.
Figure 3. Standalone visualization of a semantic segmentation model in a browser.
In order to improve this situation, we introduce our new web-based visualization module, which enables 3D visualization from any browsers and any location. This module lets users run advanced rendering and visualization pipelines, both remote and locally through your web browser. All the power of CloudViewer’ rendering engine --including support for PBR materials, multiple lighting systems, 3D ML visualization, and many other features--, are now supported in your browser. This module also includes a Jupyter extension for interactive web-based visualization! This new feature allows you to run compute-intensive 3D processing in a dedicated server while visualizing the results remotely on any device through your browser.
Figure 4. Visualization of a 3D model on a Jupyter notebook.

Build System

Our pip packages now include support for CUDA 11.0, PyTorch 1.7.1, and TensorFlow 2.4.1 to enable RTX 3000 series devices. Please, notice that we provide custom PyTorch wheels for Linux to work around an incompatibility between CUDA 11, PyTorch, and extension modules such as CloudViewer-ML.

This release also brings new improved support for CUDA on Windows. Users can now build CUDA accelerated Python wheels for Windows. CloudViewer is now built with security options enabled by default.

We hope you find CloudViewer 0.13.0 exciting and useful. Happy coding!
Remember that you can reach out with questions, requests, or feedback through the following channels:

e-mail

Documentation

docker dependences

28 Jan 10:12
ac21c95
Compare
Choose a tag to compare

docker dependences

ACloudViewer v3.7.0

11 Dec 11:06
6a124b6
Compare
Choose a tag to compare

v3.7.0 (Asher) - 11/12/2020

ACloudViewer 3.7.0 Release Notes

We are excited to present ACloudViewer 3.7.0!

CloudViewer 0.3.7 introduces a brand new 3D Machine Learning module, nicknamed CloudViewer-ML. CloudViewer-ML is an extension of your favorite library to bring support for 3D domain-specific operators, models, algorithms, and datasets. In a nutshell, users can now create new applications combining the power of 3D data and state-of-the-art neural networks! CloudViewer-ML is included in all the binary releases of CloudViewer 0.3.7.

CloudViewer-ML comes with support for Pytorch +1.4 and TensorFlow +2.2, the two most popular machine learning frameworks. The first iteration of this module features a 3D semantic segmentation toolset, including training and inference capabilities for RandlaNet and KPConv. The toolset supports popular datasets such as SemanticKITTI, Semantic3D, 3D Semantic Parsing of Large-Scale Indoor Spaces S3DIS, Toronto3D, Paris-Lille-3D and Electricity3D. CloudViewer-ML also provides a new model zoo compatible with Pytorch and TensorFlow, so that users can enjoy state-of-the-art semantic segmentation models without hassles.

We have endowed the new CloudViewer-ML module with a new data viewer tool. Users can now inspect their datasets and model’s predictions in an intuitive and simple way. This visualization tool includes support for Pytorch and TensorFlow frameworks and is fully customizable due to its Pythonic nature.

This viewer has been built upon the new visualization API, integrating the new Rendering and GUI modules. Thanks to the new visualization API, users can perform advanced rendering, fully programmatically from Python and C++. Users can also create slick GUIs with a few lines of Python code. Check out how to do this here.

  • The CloudViewer app has also been extended to include the following features:

    • Support for FBX and glTF2 assets
    • Full support for PBR models.
    • CloudViewer 0.3.7 includes for the first time support for Linux ARM (64-bit) platforms. This has been a long-time requested feature that finally made it into the release. You can now enjoy all CloudViewer features, including our new rendering and visualization pipelines in OpenGL-enabled ARM platform.

[Breaking] Please, notice that the API and the structure of CloudViewer have changed considerably after an intense refactoring process. You will need to update your code to use the new namespaces. Please, check the full changelog and the documentation for further information.

We hope you find CloudViewer 0.3.7 exciting and useful. Happy coding!

Remember that you can reach out with questions, requests, or feedback through the following channels:

e-mail

Discourse forum

Discord network

The ACloudViewer team

  • Legend:

    • [Added]: Used to indicate the addition of new features
    • [Changed]: Updates of existing functionalities
    • [Deprecated]: Functionalities / features removed in future releases
    • [Removed]: Functionalities/features removed in this release
    • [Fixed]: For any bug fixes
    • [Breaking] This functionality breaks the previous API and you need to check your code
  • Installation and project structure

    • [Added] fetch Filament with CMake FetchContent (#2085)
    • [Added] speeds up compilation by caching 3rdparty downloads (#2155)
    • [Added] Show STATIC_WINDOWS_RUNTIME in cmake summary when configuring for Windows (#2176)
    • [Added] Move master releases to new bucket for lifecycle management (#2453)
    • [Added] added missing license header in ml module py files (#2333)
    • [Added] add vis namespace (#2394)
    • [Added] Devel wheels for users (#2429)
    • [Added] Build Filament on ARM64 (#2415)
    • [Changed] cmake: pickup python from PYTHON_EXECUTABLE or from PATH (#1923)
    • [Changed] avoid deduplication of the -gencode option (#1960)
    • [Changed] do not link main library when building the tf ops lib because of (#1981)
    • [Changed] do not use system jsoncpp (#2005)
    • [Changed] update Eigen to use the GitLab commit id (#2030)
    • [Changed] update formatter: clang-format-10, yapf 0.30.0 (#2149)
    • [Changed] disable CMP0104 warning (#2175)
    • [Changed] Build examples iteratively on Windows CI (#2199)
    • [Changed] simplify filament build-from-source (#2303)
    • [Changed] set cmake minimum to 3.15 to support generator expressions in (#2392)
    • [Changed] cmake 3.18 required for windows (#2435)
    • [Changed] ubuntu 20.04 build filament from source CI (#2438)
    • [Fixed] turobojpeg windows static runtime (#1876)
    • [Fixed] fix auto & warning (as error) for clang 10 (#1924)
    • [Fixed] Fix Eigen warning when using CUDA (#1926)
    • [Fixed] fix bug in import_3rdparty_library for paths without trailing '/' (#2084)
    • [Fixed] Fix tbb build (#2311)
    • [Fixed] Fix for cmake externalproject_add patch_command (#2431)
    • [Breaking] restructure project directory and namespace (#1970)
    • [Breaking] reorg: opend3d::gui -> cloudViewer::visualization::gui (#1979)
    • [Breaking] change folder case (#1993)
    • [Breaking] Reorg: Added namespace 'rendering' for visualization/rendering (#2002)
    • [Breaking] remove voxel_pooling namespace (#2014)
    • [Breaking] reorg: remove hash_* namespaces (#2025)
    • [Breaking] Rename GLHelper namespace (#2024)
    • [Breaking] Removed visualization::gui::util namespace (#2013)
    • [Breaking] lower case "cloudViewer/3rdparty" intall dir (#2083)
    • [Breaking] refactor pybind namespace (#2249)
    • [Breaking] renamed torch python namespaces (#2330)
    • [Breaking] Move geometry to cloudViewer::t (#2403)
    • [Breaking] move io to cloudViewer::t (#2406)
  • CORE features and applications

    • [Added] Add cleanup flag in TriangleMesh::select_by_index (#1883)
    • [Added] Orient normals using propagation on MST of Riemannian graph (#1895)
    • [Added] PointCloudIO: UnitTests and Benchmarks (#1891)
    • [Added] expose UniformTSDFVolume's origin in Python API (#1762)
    • [Added] cloudViewer_show_and_abort_on_warning(Core) (#1959)
    • [Added] ml-module (#1958)
    • [Added] add make check-cpp-style, apply-cpp-style (#2016)
    • [Added] ml op test code and torch reduce_subarrays_sum op (#2050)
    • [Added] CUDA header as system header for CMake 3.16 (#2058)
    • [Added] scalar support to more binary ops (#2093)
    • [Added] Tensor api demo (#2067)
    • [Added] Initial tensor-based pointcloud (#2074)
    • [Added] support Tensor.item() in pybind (#2130)
    • [Added] MKL integration with tests (#2128)
    • [Added] Linear algebra module (#2103)
    • [Added] rpc visualization interface (#2090)
    • [Added] Pick the color for all voxels when creating a dense VoxelGrid. (#2150)
    • [Added] Assimp Base integration (#2132)
    • [Added] ISS(Intrinsic Shape Signature) Keypoint Detection Module (#1966)
    • [Added] ask assimp to build zlib (#2188)
    • [Added] initial tensor-based image class (#2161)
    • [Added] Enable CI on Ubuntu 20.04 (focal) with CUDA on GCE (#2308)
    • [Added] ARM CI (#2414)
    • [Added] initial support for tensor-based mesh (#2167)
    • [Added] pybind for tpoincloud (#2229)
    • [Added] Add pybind for Application::PostToMainThread, fix grammar error in comment (#2237)
    • [Added] Tensor for custom object data types (#2244)
    • [Added] Nearest Neighbor module (#2207)
    • [Added] torch wrapper for voxel pooling (#2256)
    • [Added] Support cuda memory cacher (#2212)
    • [Added] ml-contrib subsample library (#2254)
    • [Added] python binding of NN class (junha/nn pybind) (#2246)
    • [Added] contrib neighbor search for ML ops (#2270)
    • [Added] GCE GPU CI docker (PyTorch + cuDNN) (#2211)
    • [Added] Re-add multithreaded performance improvements to ClassIO (#2230)
    • [Added] torch continuous conv wrappers (#2287)
    • [Added] Support Float32 and Float64 neighbor search (#2241)
    • [Added] Layer interface for voxel_pooling op (#2322)
    • [Added] Fast compression mode for png writing (issue #846) (#2325)
    • [Added] Added pybinds for scene, fixed bug with Open3DScene and LOD (#2323)
    • [Added] NanoFlann Parallel Search (#2305)
    • [Added] XYZI format IO with tgeometry::PointCloud (#2356)
    • [Added] Support CPU/GPU hashmap (#2226)
    • [Added] OpenBLAS/LAPACK and support for ARM (#2205)
    • [Added] Added max error threshold (#2411)
    • [Added] Add function to compute the volume of a watertight mesh (#2407)
    • [Added] Ray/line to axis-aligned bounding box intersections (#2358)
    • [Added] IO wrapper for geometry::PointCloud -> t::geometry::PointCloud (#2462)
    • [Added] Nacho/robust kernels (#2425)
    • [Changed] test_color_map.py: adjust rtol to allow enough FP tolerance for OPENMP reordering; add .request to all import urllib (#1897)
    • [Changed] Refactor CMake buildsystem (#1782)
    • [Changed] Refactor pointcloud tests (#1925)
    • [Changed] expose poisson rec threads param (#2035)
    • [Changed] TensorList refactoring and comparison tensor ops (#2066)
    • [Changed] updated internal fields of conv layers to ease debugging (#2104)
    • [Changed] speeds up legacy pointcloud converter (#2216)
    • [Changed] Update TriangleMeshSimplification.cpp (#2192)
    • [Changed] object-oriented dtype (#2208)
    • [Changed] use pybind11's gil management (#2278)
    • [Changed] use link target torch_cpu for cpu builds (#2292)
    • [Changed] make 3rdparty_tbb depend on ext_tbb (#2297)
    • [Changed] Update camera.cpp (#2312)
    • [Changed] Delay cuSOLVER and cuBLAS init so exceptions are transferred to Python. (#2319)
    • [Changed] convert noncontiguous tensors instead of throwing an exception. (#2354)
    • [Changed] Refector some image tests failing on arm simulator (#2393)...
Read more

ACloudViewer v3.6.0

12 Oct 11:24
c38a6ad
Compare
Choose a tag to compare

v3.6.0 (Asher) - 12/10/2020

  • New features

    • Edit > Clean > Voxel Sampling: to voxel sample point cloud with voxel size given by users.
    • Edit > Mesh > Convex Hull: to compute convex hull for point cloud.
    • Edit > Mesh > Poisson Reconstruction: to triangulation on point cloud given by users with poisson algorithm
    • Edit > Scalar Field > Import SF from file: to import scalar field data from file.
    • Edit > Scalar Field > Filter by lables: to filter point clouds by labels in scalar field mode imported from file or exported from semantic annotation tools.
    • New tool:
      • Tools > Segmentation > DBSCan Cluster
        • Cluster ccPointCloud using the RANSAC algorithm. Wrapper to Schnabel et al. library for automatic shape detection in point cloud, "Efficient RANSAC for Point-Cloud Shape Detection", Ruwen Schnabel, Roland Wahl and Reinhard Klein, in Computer Graphics Forum(June 2007), 26:2(214 - 226) http://cg.cs.uni-bonn.de/en/publications/paper-details/schnabel-2007-efficient/.
        • Returns a list of ransac point labels and shape entity(ccGenericPrimitive).
      • Tools > Segmentation > Plane Segmentation
        • Segment ccPointCloud plane using the RANSAC algorithm.
        • Returns the plane model ax + by + cz + d = 0 and the indices of the plane inliers.
    • New Plugins:
      • qColorimetricSegmenter, The purpose of the plugin is to perform color segmentation.
        The available filters are RGB, HSV and scalar value filtering.
      • qHoughNormals, Normal Estimation in Unstructured Point Clouds with Hough transform.
      • qMPlane, MPlane is to perform normal distance measurements against a defined plane.
        • Fit a plane through a point cloud by selecting at minimum 3 reference points. A scalarfield for visualizing the normal distance is created and applied automatically.
        • Perform normal distance measurements against the plane.
        • Save measurements as a .csv file.
      • qMasonry, enables the segmentation of dense point clouds (principally from laser scanning) of masonry structures into their individual stones. The plugin contains two tools: one is for the automated segmentation of the point cloud into the wall's constitutive stones. The other one is to conduct this process manually either from scratch or (most commonly) to correct the errors of the automated tool (it's hard to create a perfect tool!).
        • qAutoSeg. The objective of this plugin is to automatically detect stones and mortar joints within a masonry wall, segmenting and saving the outcomes as distinct entities that can be later exploited independently. More information on the segmentation algorithm can be found in Valero et al.
        • qManualSeg. This plugin can be used to manually segment a point cloud of a masonry wall, or to correct and edit the segmentation of one that has been already subject to a previous segmentation process.
  • Improvements

    • More efficient scalar field rendering strategies.
    • Update rendering window when call removeFromDB function.
  • Changes

    • Reconstruct CVCoreLib, ECV_DB_LIB, ECV_IO_DB direction structure.
    • Add CVAppCommon, CVPluginAPI and CVPluginStub modules.
    • Reconstruct plugin Standard and IO module direction structure.
    • Remove Contribs directory and put some third parties into plugins itself.
    • add more python interfaces for custom geometry like primitives and some generic mesh and cloud geometry.
  • Bug fixes:

    • Repair primitives normals showing mode in OpenGL mode for python interface.
    • Remove some dummy cmake steps and clearn cmakelist files.
    • Auto seg plugin or manual seg plugin: at log time, the log file should not be created in software directory. should be as follows:
      • APS_log_timestamp_random.txt for auto seg plugin
      • MSP_log_timestamp_random.txt for manual seg plugin

ACloudViewer v3.5.0

06 Aug 09:29
Compare
Choose a tag to compare

v3.5.0 (Asher) - 06/08/2020

  • New features

    • Headless rendering
    • Non-blocking visualization
    • Docker for cloudViewer
    • Refined build system
    • Fast global registration
    • Color map optimization
    • PyPi support
    • Changing Python package name: py3d -> cloudViewer
    • Many bug fixes
    • support jupyter interface in python mode
    • 3 methods to quickly change the coordinate system of one or several entities
      • Tools > Registration > Move bounding-box center to origin
      • Tools > Registration > Move bounding-box min corner to origin
      • Tools > Registration > Move bounding-box max corner to origin
    • Edit > Plane > Flip: to flip the selected planes
    • Edit > Plane > Compare: to compare the two selected planes (angle and relative distances)
    • Edit > Mesh > Flip triangles: to flip the triangles (vertices) in case they are defined in the wrong order
    • Tools > Distances > Cloud/Primitive Dist
      • Used to calculate distance to primitive shape (supports spheres, planes, cylinders, cones and boxes) rather than the mesh of that shape (more accurate results for spheres)
        planes are now optionally treated as bounded or unbounded.
        for cones this will not work with Snout mode cones.
    • New tool:
      • Edit > Normals > Export normals to SF(s) (or equivalently Edit > Scalar fields > Export normals to SF(s))
      • Command line argument: -NORMALS_TO_SFS (all dimensions are exported by default as 3 scalar fields)
    • Command line:
      • '-H_EXPORT_FMT' added to select format for hierarchy objects exported
      • The PCV tool can now be accessed via the command line:
      • RANSAC plugin support added, all parameters below are optional and can be added in any order, and will work on all clouds opened and already loaded when called
        • '-RANSAC' (main command)
          • EPSILON_ABSOLUTE - max distance to primitive
          • EPSILON_PERCENTAGE_OF_SCALE - max distance to primitive as a percentage of cloud scale 0.0-1.0 exclusive
          • BITMAP_EPSILON_PERCENTAGE_OF_SCALE - sampling resolution as a percentage of cloud scale 0.0-1.0 exclusive
          • BITMAP_EPSILON_ABSOLUTE - sampling resolution
          • SUPPORT_POINTS - min Support points per primitive
          • MAX_NORMAL_DEV - max normal deviation from the ideal shape normal vector [in Degrees]
          • PROBABILITY - probability that no better candidate was overlooked during sampling, the lower the better!
          • OUT_CLOUD_DIR - path to save detected shapes clouds to, current dir if unspecified
          • OUT_MESH_DIR - path to save detected shapes meshes to, current dir if unspecified
          • OUT_PAIR_DIR - path to save detected shapes clouds & meshes to, current dir if unspecified
          • OUT_GROUP_DIR - path to save all shapes and primitives to as a single file, current dir if unspecified
          • OUTPUT_INDIVIDUAL_SUBCLOUDS - output detected shapes clouds
          • OUTPUT_INDIVIDUAL_PRIMITIVES - output detected shapes meshes
          • OUTPUT_INDIVIDUAL_PAIRED_CLOUD_PRIMITIVE - output detected shapes clouds & meshes
          • OUTPUT_GROUPED - output all detected shapes clouds & meshes as single file
          • ENABLE_PRIMITIVE - each shape listed after this option will be searched for
            • Shapes are: PLANE, SPHERE, CYLINDER, CONE, TORUS
      • '-NORMALS_TO_DIP': converts the loaded cloud normals to dip and dip direction (scalar fields)
      • '-NORMALS_TO_SFS': converts the loaded cloud normals to 3 scalar fields (Nx, Ny and Nz)
      • '-REMOVE_RGB': to remove RGB colors (from all loaded entities, i.e. clouds or meshes)
      • '-REMOVE_Normals': to remove normals (from all loaded entities, i.e. clouds or meshes)
      • The 1st Order Moment tool (Tools > Other > Compute geometric features) can now be accessed via
        the command line mode with option -MOMENT {kernel size}
        • Computes 1st order moment on all opened clouds and auto saved by default.
      • The Feature tools (Tools > Other > Compute geometric features) can now be accessed via
        the command line mode with option -FEATURE {type} {kernel size}
        • type is one of the following: SUM_OF_EIGENVALUES, OMNIVARIANCE, EIGENTROPY, ANISOTROPY, PLANARITY, LINEARITY, PCA1, PCA2, SURFACE_VARIATION, SPHERICITY, VERTICALITY, EIGENVALUE1, EIGENVALUE2, EIGENVALUE3.
    • 4 new default color scales:
      • Brown > Yellow
      • Yellow > Brown
      • Topo Landserf
      • High contrast
  • Improvements

    • Better support for High DPI screens (4K) on Windows
    • Both the local and global bounding-box centers are now displayed in the cloud properties (if the cloud has been shifted)
    • The PoissonRecon plugin now relies on the PoissonRecon V12 library
      • new algorithm
      • option to set the final 'resolution' instead of the octree depth
    • Align (Point-pair based registration) tool
      • can now be used with several entities (both several aligned and several reference entities)
      • option to pick the center of sphere entities as registration point(CC will ask whether to use the sphere center or not when picking a point anywhere on a sphere entity)
    • All parameters should now be properly remembered from one call to the other (during the same session)
    • The current box/slice position can now be exported (resp. imported) to (resp. from) the clipboard via the 'Advanced' menu
    • Command line tool:
      • The C2M_DIST command (Cloud-to-Mesh distances) can now be called with 2 meshes as input. In this case the first mesh vertices are used as compared cloud.
      • New suboption for the -O -GLOBAL_SHIFT option: 'FIRST'
        To use the first encountered (non null) global shift for all loaded entities (must be defined for all entities nevertheless ;)
      • The CROP command will now remove the input cloud if it's totally 'cropped out' (instead of leaving the full original cloud loaded)
      • The 'FWF_O' command (to load LAS files with associated waveform data) now properly supports the '-GLOBAL_SHIFT' option
      • No more popup will appear when loading a raster file via the command line mode in SILENT mode (raster is never loaded as a textured quad, and invalid points are always ignored and not loaded)
      • One can now use the 'auto' value for the radius value input after -OCTREE_NORMALS to automatically guess the normal computation radius
    • Graphical segmentation:
      • points are now exclusively segmented inside/outside the frustum
    • Plugins:
      • plugins may now be enabled/disabled in the plugin info window
      • to take effect, ACloudViewer must be restarted
      • all plugins are still available on the command line
    • PCD now supports loading more field types (16 bit signed and unsigned, 32 bit unsigned, 64 bit floating point)
    • OBJ files:
      • we now correctly handle faces with more than 4 vertices! (they should be properly tessellated)
      • support of escaped lines ('' at the end of the line)
      • now accepts MTL files with the 'Tf' keyword (well, CC just ignores it and doesn't complain about a wrong MTL file anymore ;)
      • enhanced progress report (thanks to https://gitlab.com/Epic_Wink)
    • M3C2:
      • the computation speed should be improved when using a small projection radius (smarter selection of the octree level)
    • LAS files:
      • the standard LAS Filter now handles the OVERLAP classification bit (for point format >= 6)
      • improved/fixed management of classification and classification flags
      • LAS offset (chosen at saving time) should be a little bit smarter:
        • CC will try to keep the previous one, or use the bounding-box min corner ONLY if the coordinates are too large
        • CC won't use the previous scale if it is too small for the current cloud
        • the 'optimal' scale is simpler (round values + the same for all dimensions)
      • The LAS 1.3/1.4 filter (Windows only) has been improved:
        • option to save any scalar field as extra bytes (and load extra bytes as scalar fields)
        • proper minor version setting
        • proper header size
        • using the latest version of LASlib with proper management of UTF8/UTF16 ('foreign') characters
    • ASCII files:
      • now allows mixed white space (spaces / tabs)
      • the ASCII load dialog option has now an option to load numerical values with a comma as digit separator ('use comma as decimal character' checkbox)
    • Unroll
      • ability to set the start and stop angles for the cone unrolling options
      • ability to unroll meshes
      • new unrolling mode: 'Straightened cone' (the previous one has been renamed 'Straightened cone (fixed radius)'). This new mode unrolls the cone as a cylinder but with a varying radius.
    • The 'Straightened cone' options are now using the real curvilinear abscissa (0 = cone apex)
    • Tools > Others > Compute geometric features
      • option to compute the 1st moment added
      • option to compute the 1st, 2nd and 3rd eigenvalues added
    • SBF files
  • Changes

    • Command line tool:
      • The -FBX_EXPORT_FMT command is now split. Use -FBX -EXPORT_FMT.
    • Plugins:
      • The I/O plugin interface has changed, so if you have your own I/O plugins, you will need to update them.
        • The interface name changed from ccIOFilterPluginInterface to ccIOPluginInterface.
        • The ccIOPluginInterface::getFilter() method was removed in favour of ccIOPluginInterface::getFilters().
        • The FileIOFilter base class now takes a struct as an argument containing all the static info about a filter - extensions, features (import/export), etc.. See FooFilter in the ExampleIOPlugin and the comments in FileIOFilter::FilterInfo.
        • The use of FileIOFilter::FilterInfo means that the following vi...
Read more

ACloudViewer v3.4.0

29 Jul 10:51
7a2d4c6
Compare
Choose a tag to compare

ACloudViewer release with following core features

  • Refined build system
  • Fast global registration
  • Color map optimization
  • PyPi support
  • Changing Python package name: py3d -> cloudViewer
  • Deep Semantic Segmentation with calling python library in tensorflow
  • Many bug fixes

ACloudViewer v3.3.0

29 Jul 10:30
e26279a
Compare
Choose a tag to compare

ACloudViewer release with following core features

  • Basic 3D data structures
  • Basic 3D data processing algorithms
  • Scene reconstruction
  • Surface alignment
  • 3D visualization

ACloudViewer v3.2.0

29 Jul 10:25
e26279a
Compare
Choose a tag to compare

ACloudViewer release with following core features
● Basic 3D data structures
● Basic 3D data processing algorithms
● Scene reconstruction
● Surface alignment
● 3D visualization