Version 0.1 (Release date Feb 22nd, 2018)
First official release. Open3D is an open-source library that supports rapid development of software that deals with 3D data. Open3D has the following core features:
Core principle
- Started from scratch.
- Focus on implementation of basic widely-used 3D processing algorithms.
- Does not depend on heavyweight libraries.
- Minimum lines of code
- The library can be built and run from source using Ubuntu/MacOSX/Windows systems.
Basic 3D data structures
- Open3D provides point cloud, triangle mesh, image, and pose graph data structures.
- Each data structure has its own I/O interface with various files.
- Supported file formats:
- Image: JPEG, PNG.
- 3D geometry: Bin, PCD, PLY, PTS, XYZ, XYZN, XYZRGB.
- camera trajectory & pose graph: JSON, LOG.
Basic data processing algorithms
- Point cloud downsampling, normal estimation, and vertex coloring.
- Gaussian and Sobel filter for image processing.
- Scalable TSDF volume integration.
Scene reconstruction
- Provides basic scene reconstruction system specialized for RGBD sequence.
- The system consists of RGBD Odometry, pose graph optimization, and TSDF volume integration.
- The integration volume can be scalable.
Surface alignment
- Implementation of local geometric feature: ‘Fast Point Feature Histograms (FPFH)’ paper [Rusu and Beetz 2009].
- Point-to-point/point-to-plane/colored ICP implementations with OpenMP acceleration.
- Provides a basic, RANSAC-based global registration pipeline.
- Fast pose graph optimization: implementation of ‘Robust reconstruction of indoor scenes’ paper[Choi et al 2015].
- In house convex optimization: Gauss-Netwon and Levenberg-Marquardt methods.
3D visualization
- Quick overview of point cloud, mesh, image.
- Various options to customize camera path or camera intrinsics.
- Color/depth/normal rendering supported.
- Providing rendering buffer access to save rendered images.
- Can configure custom key callback functions.
- Can select a region and crop of crop point cloud.
Python binding
- The c++ functions/classes/definitions are exposed to the Python API.
- The Python API provides a quick debug cycle for development of novel algorithms.