![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
ACloudViewer is an open-source library that supports rapid development of software that deals with 3D data. The ACloudViewer frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization.
ACloudViewer includes the following core features:
ACloudViewer is organized into several key modules that work together to provide a complete 3D data processing pipeline:
Figure 1: ACloudViewer architecture showing the different layers and how they fit together to enable full end-to-end pipelines.
π‘ Architecture Highlights:
β’ Layered Design: Clear separation between application, plugins, core processing, and foundation layers
β’ Extensibility: Plugin system allows adding new file formats and algorithms without modifying core
β’ Integration: Seamless interoperability with PCL, VTK, Qt, and other industry-standard libraries
β’ Dual API: Full functionality available in both C++ and Python
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ACloudViewer Application β
β (ACloudViewer, CloudViewer, Python Bindings) β
βββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββ΄βββββββββββββββββββ
β β
ββββββββββββββββΌβββββββββββββββββ βββββββββββββββββΌβββββββββββββββββ
β Plugin System β β Visualization Layer β
β (IO + Standard Plugins) β β (Vtk-based 3D Viewer) β
β β β β
β β’ qLASIO, qE57IO, qDracoIO β β β’ Interactive 3D rendering β
β β’ qCSF, qM3C2, qPoissonRecon β β β’ Scene graph management β
β β’ qPCL, qCanupo, qTreeIso β β β’ User interactions β
ββββββββββββββββ¬βββββββββββββββββ βββββββββββββββββ¬βββββββββββββββββ
β β
ββββββββββββββββββββ¬βββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ
β Core Processing Layer β
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β cloudViewer β β CV_db β β CV_io β β PCLEngine β β
β β β β β β β β β β
β β β’ ccPoint β β β’ Database β β β’ File I/O β β β’ PCL β β
β β Cloud β β Management β β (PCD,PLY, β β Integrationβ β
β β β’ ccMesh β β β’ Entity β β LAS,E57) β β β’ Filtering β β
β β β’ ccHObject β β Hierarchy β β β’ Format β β β’ Registr. β β
β β β’ ccOctree β β β’ Scene Mgmt β β Converters β β β’ Segment. β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Reconstruction Module β β
β β β’ Surface Reconstruction β’ Mesh Generation β’ Poisson Recon β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ
β Foundation Layer β
β β
β β’ Eigen (Linear Algebra) β’ Qt (GUI & Widgets) β
β β’ PCL (Point Cloud Library) β’ Boost (Utilities) β
β β’ VTK (Visualization) β’ OpenMP (Parallelization) β
β β’ CGAL (Geometric Algorithms) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Data Flow:
Input Files β CV_io β Core Structures β Processing (Plugins/PCL) β
Visualization/Output β Export (CV_io)
Extension Points:
β’ Plugin System: Add custom I/O formats and processing algorithms
β’ Python API: Script automation and batch processing
β’ PCL Integration: Leverage PCL's extensive algorithm library
Here's a brief overview of the different components and how they fit together to enable full end-to-end pipelines:
Pre-built pip packages support Ubuntu 20.04+, macOS 10.15+ and Windows 10+ (64-bit) with Python 3.8-3.11.
To compile ACloudViewer from source, please refer to the compilation guide.
For detailed build instructions:
ACloudViewer provides powerful 3D visualization capabilities for interactive data exploration:
Main Application Interface
ICP Registration Example
3D Surface Reconstruction
Semantic Annotation
examples/Cpp/ directoryexamples/Python/ directoryPlease cite our work if you use ACloudViewer:
ACloudViewer is released under the MIT License. See LICENSE file for details.