Start your new year with Open3D v0.18!

Happy new year to all! The Open3D team and many amazing community members bring to you the latest and best Open3D with many new features and bug fixes. Here are the highlights of this release:

  • Support for Python 3.11. (Python 3.7 is no longer officially supported.)
  • Support for PyTorch 2.0 and TensorFlow 2.14!

⚠️ Warning: ⚠️ Due to incompatibilities in the cxx11_abi on Linux between PyTorch and TensorFlow, official Python wheels on Linux only support PyTorch, not TensorFlow. [See #6288] for details. If you'd like to use Open3D with TensorFlow on Linux, you can build Open3D wheel from source in docker with support for Tensorflow (but not PyTorch) as:

cd docker
# Build open3d and open3d-cpu wheels for Python 3.10 with Tensorflow support
export BUILD_PYTORCH_OPS=OFF BUILD_TENSORFLOW_OPS=ON
./docker_build.sh cuda_wheel_py310
  • New Doppler ICP registration for FMCW Lidars (contributed by @heethesh)

    Comparison of tunnel reconstructions using point-to-plane ICP (left) and Doppler ICP (right) with measurements collected by an FMCW LiDAR (Image from original Doppler-ICP repo)
  • Adding in memory support for xyz files (#5866) (contributed by @samypr100)
  • Modern and more user friendly furo theme for Open3D documentation (contributed by @saurabheights)
  • The master branch is now renamed to main

Here is the full set of updates:

Visualization and GUI

  • [New] Display RGBD frames as a point cloud video (#6342) (contributed by @ssheorey)
  • [New] Allow setting view status from json string (#6241) (contributed by @yxlao)
  • [Update] Add env var to disable automatic WebVisualizer use in Jupyter environment (#6541) (contributed by @gutnar)
  • [Update] Expose Near Clip and Far Clip parameters to the Python Bindings (#6520) (contributed by @zalo)
  • [Update] Update jupyter web_visualizer for ipywidgets 8 (#6239) (contributed by @ssheorey)
  • [Fix] Fix the triggering in PickPointsInteractor when there are linesets present (#6499) (contributed by @EwingKang)
  • [Fix] fixed ProgressBar scrolling behaviour (#6175) (contributed by @cansik)
  • [Fix] removed was-open check for combobox (#6178) (contributed by @cansik)
  • [Fix] Fix the pybind reference bug of get_view_control() (#6116) (contributed by @eamonn-zh)
  • [Fix] Add new Mitsuba Python example + update CPU rendering docs (#5991) (contributed by @errissa)
  • [Fix] Enable picking points from TriangleMeshModels in O3D Visualizer (#5978) (contributed by @errissa)

Geometry

  • [New] Add GetSurfaceArea() for t::TriangleMesh (#6248) (contributed by @shanagr)
  • [New] Implement open3d::t::geometry::TriangleMesh::SelectByIndex (#6415) (contributed by @nsaiapova)
  • [New] add add_voxel and remove_voxel in pybind for VoxelGrid::AddVoxel, VoxelGrid::RemoveVoxel (#6023) (contributed by @ohkwon718)
  • [New] Voxel Downsample for Tensor interface (#6249) (contributed by @theNded)
  • [Update] List intersections (#6442) (contributed by @dmitrishastin)
  • [Update] Added optional invert parameter in Pointcloud cropping (similar to tensor pointcloud) (#6377) (contributed by @wakkoyankee)
  • [Update] ✨ Support multi-threading in the RayCastingScene function to commit scene (#6051) (contributed by @sebastienmascha)
  • [Update] Save triangle material IDs and uvs during TriangleMesh::SelectByIndex. (#6099) (contributed by @hanseuljun
  • [Update] Update nanoflann to version 1.5.0 (#6216) (contributed by @roehling)
  • [Fix] Bugfixes and docs improvement of AABB tensor class (#6486) (contributed by @saurabheights)
  • [Fix] Fix seg fault in t::geometry::TriangleMesh::SelectByIndex for negative index (#6489) (contributed by @nsaiapova)
  • [Fix] Correct bound check for axis aligned bounding box and use same formatting for printing cuda or cpu tensor (#6444) (contributed by @saurabheights)
  • [Fix] Fix for Issue #5924: (#5938) (contributed by @dbs4261)
  • [Fix] Throw error on non-contiguous Python buffer provided to Image ctor. (#6406) (contributed by @ssheorey)
  • [Fix] Normal orientation issues in complex geometries (#6198) (contributed by @eugeniovaretti)
  • [Fix] Fix incomplete VoxelGrid creation from triangles intersecting multiple voxels (#6325) (contributed by @sharon-br)
  • [Fix] SimplifyQuadricDecimation fixes (#6163) (contributed by @bjudeworley)
  • [Fix] fix segment plane non deterministic sampler issue and add unit test (#6308) (contributed by @yuecideng)
  • [Fix] Fix and improve ISS keypoint (#6079) (contributed by @DNKpp)
  • [Fix] Updated typo in pointcloud.cpp for tensor (#6228) (contributed by @bkhanal-11)
  • [Fix] fix oriented boundingbox computation (#6069) (contributed by @ruaqy)

Pipelines

  • [New] Add Doppler ICP in tensor registration pipeline (#5237) (contributed by @heethesh)
  • [New] Feaure matching API (#5964) (contributed by @theNded)
  • [Fix] Fix unused variable error when OpenMP is disabled (#6529) (contributed by @sitic)
  • [Fix] Fix IntegrateRGBD example compilation (#6453) (contributed by @sitic)
  • [Fix] Fixes #6291 and #6236 (#6305) (contributed by @theNded)
  • [Fix] improve 6120 (OpenCV pose estimation bug fix) (#6306) (contributed by @theNded)
  • [Fix] Fix tensor reconstruction example (#6207) (contributed by @saurabheights)
  • [Fix] Fix typo in reconstruction cpp app (#6214) (contributed by @yuecideng)

Open3D-ML

image

image

I/O

  • [New] Adding in memory support for xyz files (#5866) (contributed by @samypr100)
  • [New] Write directly to GLB from TGeometries (#6404) (contributed by @errissa)
  • [Update] Bump certifi lib from 2022.12.7 to 2023.7.22 (#6282) (contributed by dependabot[bot])
  • [Update] support msgpack 6.0 (#6269) (contributed by @cielartisan)
  • [Fix] Add IO for NPZ files for Tensor-based TriangleMeshes (#6019) (contributed by @errissa)

Core

  • [Update] Use standard filesystem instead of experimental for Clang on macOS (#6320) (contributed by @errissa)
  • [Update] Output OSError details to make import error more useful (#5997) (contributed by @errissa)
  • [Fix] Check for support of CUDA Memory Pools at runtime (#4679) (#6440) (contributed by @ao2)
  • [Fix] Fix python UnicodeDecodeError on windows (#6277) (contributed by @MisakaQwQ)
  • [Fix] Fix two crash bugs on Apple Silicon (#6008) (contributed by @errissa)

Build System

  • [Update] master -> main rename for branches (#6530) (contributed by @ssheorey)
  • [Update] Remove extra documentation build for python examples (#6487) (contributed by @saurabheights)
  • [Fix] Google Bucket hold and docs building fix (#6460) (contributed by @ssheorey)
  • [Update] Add unicode to check style (#6443) (contributed by @dmitrishastin)
  • [New] Add support for python3.11 (#6288) (contributed by @OlivierLDff Olivier Le Doeuff and @ssheorey)
  • [New] Debian Open3D package in CI (#6044) (contributed by @ssheorey)
  • [Fix] Fix path to executable in viewer deb (#5996) (contributed by @simonschmeisser)
  • [Fix] Build fixes MSVC and gcc (#6039) (contributed by @ssheorey)
  • [Fix] Windows CI out of disk space workaround (#6281) (contributed by @ssheorey)
  • [Fix] Increase Ubuntu wheel CI build space. (#6255) (contributed by @ssheorey)
  • [Update] relax nbformat (#6135) (contributed by @Borda)
  • [Fix] Fix build with gcc-13 (#6215) (contributed by @roehling)
  • [Update] Build system improvements backported from Debian (#6180) (contributed by @roehling)
  • [Update] Use GLIBCXX_USE_CXX11_ABI by default (#6206) (contributed by @QuentinTorg)
  • [Update] Test Ubuntu wheel on 20.04 (#6205) (contributed by @ssheorey)
  • [Fix] Enable multi-core link time optimization (#6181) (contributed by @roehling)

Documentation

  • [Update] Add missing keyword arg names to visualization bindings (#6407) (contributed by @djkeyes)
  • [Fix] Fix regression - Keep output of cell blocks in jupyter in scrollable area. (#6504) (contributed by @saurabheights)
  • [Update] Upgrade documentation techstack (#6470) (contributed by @saurabheights)
  • [Update] Add Open3D architecture diagram (#6488) (contributed by @ssheorey)
  • [Fix] fixed arguments in example notebooks (#6410) (contributed by @tomole444)
  • [Update] Update visualization.ipynb (#6263) (contributed by @Sendeky)
  • [Fix] Improve Documentation - Fix code links and improve tutorial layout (#6321) (contributed by @saurabheights)
  • [Fix] Fix rendering of Python versions table (#6162) (contributed by @johnthagen)
  • [Fix] Improve documentation (#6307) (contributed by @saurabheights)
  • [Fix] Bring tutorial code snippets in-sync with latest source #6077 (#6128) (contributed by @dancergraham)

Known Issues

  • Build errors in 3rd party libraries with gcc-13 on Ubuntu 23.10 (#6544). Please use prebuilt binaries or gcc-12 for building.

Acknowledgment

We would like to thank all of our community contributors for their true labor of love for this release!
Also thanks to the many others who helped the Open3D community by reporting as well as resolving issues.