Open3D 0.9.0 is ready!

Open3D 0.9.0 Release Notes

The Open3D team and the Open Source Vision Foundation are proud to present the 0.9.0 release of the Open3D library.

This release brings two exciting algorithms for processing point clouds and meshes: Poisson surface reconstruction and as-rigid-as-possible deformation. You can find a reference for how to use these algorithms in the following examples:

The problems related to headless mode rendering have also been solved in this release, among other bug fixes!

This is the last release of Open3D with support for Python 2.7.

On behalf of the Open3D team, we would like to thank our technical writer, Rohan Rathi and the Google season of docs organization for their help in the critical task of improving Open3D documentation. Your contribution has served to make Open3D more accessible to new users.

We are also happy to announce our new Discourse forum, which becomes the official way to discuss issues related to Open3D.

In an effort to improve our communication with the Open3D community and all the developers that use this library, we have created a new mailing list: open3d-all@osvf.org. Here developers and contributors can obtain first-hand information about the development progress of Open3D, the library’s roadmap, and information on how to proceed to implement new features. You can also join the mailing list via Google groups

Take a look at our documentation Open3D docs to see all the details, and send us feedback at open3d-info@osvf.org. You can also join our Discourse forum or the Discord network to participate in the development discussions.

Enjoy!

The Open3D 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] Add optional flag to install-deps-ubuntu.sh script #1191
  • [Changed] Restructure to expose python package at top level #1251
  • [Changed] avoid duplicate -O3 flag at Release build #1280
  • [Changed] CMake Option to use system installed libjpeg-turbo #1294
  • [Fixed] fix link warning #1223
  • [Breaking] Upgrade compiler #1327
  • [Deprecated] Support for Python 2.7

CORE features and applications

  • [Added] Implement image flip functions #1186
  • [Added] Merge close vertices #1189
  • [Added] Support rendering textured triangle mesh #1194
  • [Added] Add some Python init functions to geometry classes #1228
  • [Added] Cluster TriangleMesh Connected Components #1272
  • [Added] Support for Large PTS File IO #1279
  • [Added] Deform TriangleMesh using as-rigid-as-possible #1312
  • [Added] Add geometry without resetting bounding box #1315 (Thanks sammo2828!)
  • [Added] Poisson Surface Reconstruction #1317
  • [Added] Implementation of Alpha Shapes #1320
  • [Added] New ClearGeometries for Visualizer #1338 (Thanks sammo2828!)
  • [Added] Added VisualizerWithVertexSelection #1390
  • [Changed] std::unordered_map for voxelgrid structure #1180
  • [Changed] New Mesh Class Structure #1184
  • [Changed] Warning if no normals in ColoredICP #1187
  • [Changed] Update type check for open3d PointCloud #1193
  • [Changed] TexturedTriangleMesh clean up #1208
  • [Changed] LogFatal to throw exception rather than exit() #1209
  • [Changed] OrientedBoundingBox parameter update and crop #1218
  • [Changed] Polish global optimization #1224
  • [Changed] Proper LogError and LogWarning #1237
  • [Changed] Refactor Image::Prepare() in RealSense.cpp #1277
  • [Changed] Expose get_rotation_matrixfrom* directly in open3d.geometry #1355
  • [Changed] Expose RenderOption.mesh_show_wireframe to Python API #1388 (Thanks sammo2828)
  • [Changed] Only update single geometry in Visualizer::AddGeometry and Visualizer::RemoveGeometry #1392 (Thanks sammo2828)
  • [Changed] Improve numeric stability of TriangleTriangle3d #1177
  • [Fixed] fopen wrapper to enable unicode paths in Windows #1190
  • [Fixed] Fix read_rgbd_image in make_fragments.py #1192
  • [Fixed] Fix operator+ of AxisAlignedBoundingBox #1205
  • [Fixed] fixed maybe-uninitialized warning in TetraMesh.cpp #1212
  • [Fixed] Fast Global Registration does not populate fitness, inlier_rmse, and `corres #1001 #1221
  • [Fixed] fix control may reach end warning for VFatal #1222
  • [Fixed] fix control may reach end warning for VError #1288
  • [Fixed] Quick fix to colored icp #1292
  • [Fixed] fix write ply color values clamped #1306
  • [Fixed] osMesa headless rendering fixed #1358
  • [Fixed] Fix BPA memory leak #1363

Documentation, tutorials, and examples

  • [Changed] Improve docs for color map #1270 (Thanks RohanRathi)
  • [Changed] Improve docs for camera #1271(Thanks RohanRathi)
  • [Changed] Improve docs on Bounding Boxes for CPP api #1282 (Thanks RohanRathi)
  • [Changed] Update python bindings & add docs for Bounding Box #1319 (Thanks RohanRathi)
  • [Changed] Add script details in docs #1342 (Thanks RohanRathi)

Open3D 0.4.0 is out!

Open3D Version 0.4.0 (released 2018-10-25)

The Open3D team and the Open Source Vision Foundation (http://www.osvf.org) are proud to announce the release of the 0.4 version of the Open3D library.

This release brings support for RealSense RGB-D sensors to Open3D, enabling functionalities such as real-time RGB-D capturing and a new point cloud viewer. We have also added new documentation and examples using RealSense sensors to create 3D reconstructions.

We are also excited to introduce support for Jupyter notebooks with a brand new WebGL widget to perform advanced 3D visualization from the comfort of your browser.

One of our main goals is to leverage Open3D as a tool to simplify the use of state-of-the-art 3D pipelines like those used in computer vision and machine learning. With this goal in mind, we are proud to introduce the Open3D Ecosystem, a set of repositories that make use of Open3D to create powerful applications. The first member of this ecosystem is Open3D-PointNet [link], a version of the famous machine learning architecture [link] for point cloud classification and semantic segmentation, which is now fully usable from the commodity of Open3D routines.

From a project infrastructure perspective, we just finalized the integration with TravisCI to perform automatic unit testing. This is a large step forward in terms of quality control for Open3D and it will help to make our software more reliable while expediting its development. The team has made an enormous effort to define UnitTests for all the functionalities present in the library, a task that will be concluded in future releases.

Check out our release video [link] to see these functionalities in action!

For a detailed description of all the features of Open3D 0.4, please keep reading. We hope you enjoy this release and hope to hear from you. Please send us feedback at info@open3d.org and join our Discord network [link] to participate in the discussions.

 

Thanks!

The Open3D team


Legend:

  • [Added]: Used to indicate 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] Automated wheel creation with cmake
  • [Added] Automated make conda-package generation
  • [Added] Support for arm(jetson tx2) platform (Thanks kuonangzhe!)
  • [Fixed] Cmake install to solve problems with 3rd party header path
  • [Fixed] glfw linking issue when built from source
  • [Fixed] Bug in Ubuntu for the default install path

 

CORE features and applications

  • [Added] RealSense support for live synchronized RGB-D capture (Thanks baptiste-mnh and LLDavid)
  • [Added] Integration with Jupyter visualization WebGL widgets
  • [Added] New methods for outliers removal: statistical outlier removal and radius outlier removal (Thanks Nicolas Chaulet!)
  • [Added] Open3D-PointNet repository to Open3D Ecosystem
  • [Fixed] Problem with the ENABLE_HEADLESS_RENDERING flag
  • [Added] “Visible” parameter to Visualizer::CreateVisualizerWindow to enable off-screen windows
  • [Added] Stanford dataset for 3D reconstruction system
  • [Changed] Major update of the 3D reconstruction system to improve usability and robustness

Documentation and tutorials

  • [Added] RealSense support documentation
  • [Added] Jupyter examples to run PointNet using Open3D for point cloud classification

Testing and benchmarking

  • [Added] Consistent Random number generation initialization (compiler independent)
  • [Added] TravisCI support to automatic UnitTest evaluation
  • [Added] PointCloud test cases
  • [Added] TriangleMesh test cases
  • [Added] LineSet test cases
  • [Added] RGBDImage test cases
  • [Added] KDTreeFlann test cases

Open3D 0.3.0 is ready to go!

Open3D Version 0.3.0 (released 2018-09-13)

Open3D is being developed under the auspices of the Open Source Vision Foundation (http://www.osvf.org). The team has been working hard to make Open3D accessible and easy to use.

In this regard, version 0.3.0 brings major features related to library installation, including improved CMake installation for Linux, Mac and Windows with off-the-shelf systems; new installation options using PIP and CONDA for Linux, Mac and Windows; and overall an easier and cleaner installation experience.

We are also continuing to extend the 3D processing and visualization functionality. Among other features, version 0.3 brings support for enhanced 3D reconstruction; extension of TSDF volume integration to floating-point intensity images; and an improved non-blocking visualization tool.

This version also comes with extended and improved documentation. We have enhanced the tutorials on multiway registration, marching cubes, global registration, and headless rendering, among others.

Open3D 0.3.0 also includes our first set of tests to verify the integrity and correctness of the library. You can expect to see much more of this in future releases.

For a detailed description of all the features of Open3D 0.3, please keep reading. We hope you enjoy this release and hope to hear from you. Please send us feedback at info@open3d.org and join our Discord network (https://discord.gg/D35BGvn) to participate in the discussions.

Thanks!

The Open3D team


Legend:

  • [Added]: Used to indicate 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] PIP installation under Conda environment for Linux, Mac and Windows for Python 2.7, 3.5 and 3.6 [Doc]
  • [Added] CONDA installation for Linux, Mac and Windows for Python 2.7, 3.5 and 3.6 [Doc]
  • [Changed] CMake installation to simplify installation in Linux, Mac and Windows
  • [Changed] Project folder structure
  • [Changed] Subgroups in CMakeLists.txt
  • [Breaking] Namespace three is now open3d, which brakes previous API
  • [Removed] Namespace three removed
  • [Removed] OpenCV dependency
  • [Fixed] Excessive warnings during compilation
  • [Fixed] Library not found problem for -lGLEW on OSX
  • [Fixed]  'jpeglib.h' file not found problem on OSX
  • [Fixed] MacOS libpng linking problem
  • [Fixed] XCode build failure
  • [Fixed] Installation problems on brand-new Ubuntu 16.04 systems
  • [Fixed] Visual Studio 2017 15.8 build problem
  • [Fixed] Problem reinstalling open3d
  • [Fixed] Xcode IDE not producing libOpen3D.a

CORE features and applications

  • [Added] Version file
  • [Added] Feature to change view during non-blocking visualization
  • [Added] Support of rendering 3D line segments by generalization of LineSet and adding a Python binding
  • [Changed] Enhance features for 3D reconstruction system
  • [Changed] Extend TSDF volume integration algorithm to use additional inputs: float intensity Image + depth map
  • [Fixed] Name conflict in CreateWindow
  • [Fixed] Removes warnings in color map optimization
  • [Fixed] Visualization error on Visualizer::CaptureScreenImage (VisualizerRender.cpp)

Documentation and tutorials

  • [Added] Tutorial on how to transform Numpy array into open3d Image
  • [Changed] Tutorial on how to perform multiway registration, showing how to combine multiple point clouds into single point cloud
  • [Changed] New version of the marching cubes mesh tutorial
  • [Changed] New documentation for color_map_optimization
  • [Changed]  Documentation for headless rendering and fast global registration
  • [Changed] Changed code rendering style in documents. The document is also directly linked to the tutorial code, to automatically reflect any future change in tutorial
  • [Fixed] Clarify how to retrieve estimated point cloud normal

Testing and benchmarking

  • [Added] New test for TestRGBDOdometry
  • [Changed] Updated rgbd_odometry test to include camera_primesense.json
  • [Fixed] Bug inTestRealSense.cpp

Misc

  • [Changed] Sort the file list with Alphanumeric order to create global mesh from files

Open3D release 0.2 is here!

Version 0.2 (Release date July 1st, 2018)

The first major update of Open3D, with various additional features and bug fixes.

Visualization

  1. Headless rendering: GLFW 3.3 dev + OSMesa combinations for supporting headless rendering. This feature is especially useful for users who want to get depth/normal/images from a remote server without physical monitors.
  2. Non-blocking visualization: draw_geometries() is a useful function for quick overview of static geometries. However, this function holds process until a visualization window is closed. Non-blocking visualization shows a live update of geometry while the window is open.
  3. Mesh cropping: In v0.1 VisualizerWithEditing only supports point cloud cropping. The new version supports mesh cropping as well.
  4. Point cloud picker with an application of manual point cloud registration

Docker for Open3D: a new Docker CE based solution for utilizing Open3D. With this update, you can:

  1. sandbox Open3D from other applications on a machine.
  2. operate Open3D on a headless machine using VNC or the terminal.
  3. edit the Open3D code on the host side but run it inside an Open3D container.

Additional features:

  1. Fast global registration: Open3D’s implementation of ‘fast global registration’ paper [Zhou et al 2016]. For the task of global registration, the single threaded fast global registration is about 20 times faster than RANSAC based implementation.
  2. Color map optimization: Another interesting application for copying seamless texture map to the reconstructed geometry. This is an implementation of ‘’Color Map Optimization for 3D Reconstruction with Consumer Depth Cameras” paper [Zhou and Koltun 2014].  The optimization pipeline creates sharp texture mapping on the geometry taken with color cameras.
  3. Basic operations for color and depth images: new function that can generate a depth discontinuity mask from a depth image. New dilation operators for making a thicker discontinuity mask.

Enhancement on build system:

  1. Refined CMake build system: polished CMake build system so that it can fully support make install or make uninstall. Once installed, Open3D library is searchable using find_package module in CMake. CMakeList.txt file for the new application is simplified.
  2. PyPi support: Newer version provides pip install which is a more convenient way to begin using Open3D. Try ‘pip install open3d-python’ and ‘import Open3D’ in Python.
  3. Basic test framework: Adding initial support for ‘Gtest’ examples to test Open3D’s functions and classes.

Miscellaneous

  1. Changing Python package name: python package name is changed from py3d to open3d.
  2. Many bug fixes:
    1. Bug fix on the Reconstruction system regarding defining and utilizing information matrix.
    2. Additional materials on Open3D documents.

Open3D release 0.1

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

  1. Started from scratch.
  2. Focus on implementation of basic widely-used 3D processing algorithms.
  3. Does not depend on heavyweight libraries.
  4. Minimum lines of code
  5. The library can be built and run from source using Ubuntu/MacOSX/Windows systems.

Basic 3D data structures

  1. Open3D provides point cloud, triangle mesh, image, and pose graph data structures.
  2. Each data structure has its own I/O interface with various files.
  3. Supported file formats:
    1. Image: JPEG, PNG.
    2. 3D geometry: Bin, PCD, PLY, PTS, XYZ, XYZN, XYZRGB.
    3. camera trajectory & pose graph: JSON, LOG.

Basic data processing algorithms

  1. Point cloud downsampling, normal estimation, and vertex coloring.
  2. Gaussian and Sobel filter for image processing.
  3. Scalable TSDF volume integration.

Scene reconstruction

  1. Provides basic scene reconstruction system specialized for RGBD sequence.
  2. The system consists of RGBD Odometry, pose graph optimization, and TSDF volume integration.
  3. The integration volume can be scalable.

Surface alignment

  1. Implementation of local geometric feature: ‘Fast Point Feature Histograms (FPFH)’ paper [Rusu and Beetz 2009].
  2. Point-to-point/point-to-plane/colored ICP implementations with OpenMP acceleration.
  3. Provides a basic, RANSAC-based global registration pipeline.
  4. Fast pose graph optimization: implementation of ‘Robust reconstruction of indoor scenes’ paper[Choi et al 2015].
  5. In house convex optimization: Gauss-Netwon and Levenberg-Marquardt methods.

3D visualization

  1. Quick overview of point cloud, mesh, image.
  2. Various options to customize camera path or camera intrinsics.
  3. Color/depth/normal rendering supported.
  4. Providing rendering buffer access to save rendered images.
  5. Can configure custom key callback functions.
  6. Can select a region and crop of crop point cloud.

Python binding

  1. The c++ functions/classes/definitions are exposed to the Python API.
  2. The Python API provides a quick debug cycle for development of novel algorithms.