Repository navigation
v0.20 release
#7564
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Open3D v0.20
Open3D v0.20 brings Gaussian Splatting to the Open3D renderer, makes Intel GPU workflows substantially more practical through expanded SYCL Tensor pipelines, and improves the developer experience with smaller installs, Python type checking, and new distribution options.
Highlights
Gaussian Splatting
GaussianSplatting.draw_from_csv.2026-04-28.at.2.56.52.PM.mp4
Gaussian splats and meshes in one Open3D scene.
Open3D can now render 3D Gaussian Splats in interactive and offscreen views, along with regular PBR meshes. Load tensor point clouds from Gaussian PLY, binary SPLAT, or compressed SPZ files, then compose them with triangle meshes using correct depth occlusion. This enables applications to combine radiance-field captures with conventional 3D assets in the same Open3D scene (PRs #7191, #7194, #7490, #7520, and #7525; contributed by @lumurillo, @billamiable, @ssheorey, and @jeevan6996).
The renderer supports anti-aliasing, depth output and offscreen rendering (see
OffscreenRenderer). See the Gaussian Splatting tutorial, the mixed-scene Python example, and the C++ example.Labeling geometry over a compressed SPZ Gaussian Splat.
Intel GPU Pipelines Through SYCL
rgbd_dense_slam_b580.mp4
Real time RGBD reconstruction with dense SLAM on an Intel B580 GPU
pip install open3d-xpu cd examples/python/t_reconstruction_system python dense_slam.py --device SYCL:0 --default_dataset lounge --path_npz lounge_sycl.npzThe SYCL backend now supports substantially more Tensor-based Open3D pipelines on Intel integrated and discrete GPUs. New native-device implementations cover HashMap, nearest-neighbor search, geometry transforms, registration, RGB-D odometry, feature computation, TSDF reconstruction, and raycasting. Hybrid nearest-neighbor search now supports L1 and Linf metrics in addition to L2 (PRs #7114 and #7443; contributed by @ssheorey).
The newly implemented Intel GPU algorithms include:
RaycastingScenequeries.Open3D-ML operations are also available through the PyTorch XPU library, including continuous and sparse convolutions, voxelization and pooling, neighbor-list operations, NMS, RoI pool, point queries, IoU, and interpolation.
Prebuilt SYCL C++ archives and
open3d-xpuwheels are available for Ubuntu 22.04+ and Windows 10+. The Windowsopen3d-xpuwheel is a preview release; it and the Windowsopen3d-cudawheel should be treated as experimental while we expand platform coverage. See the SYCL documentation for device requirements, installation, and the supported Tensor API matrix.Smaller Wheels and Better Python Tooling And Wider cross-platform support
A new install of the
open3dwheel is now approximately 335 MB smaller, through more efficient C++ library packing and moving ML dependencies toextras(PRs #7516 and #7540; contributed by @ssheorey). Open3D-ML Python dependencies now install only when specifically requested:pip install "open3d[ml]"This only affects python dependencies - the full core functionality is included without
[ml].Open3D now ships Python type information for static type checking and richer editor autocomplete. This improves development with tools such as mypy and VS Code without changing the dynamic Python API.
Open3D supports Python 3.10 through 3.14, including new Python 3.13 and 3.14 wheels. PyTorch is updated to 2.13 and TensorFlow to 2.20. TensorFlow operations are not available on Python 3.14, and compiled TensorFlow operations remain unsupported on Windows. Open3D validates the installed framework's major and minor version against the version used to build its ML operations.
Open3D now has wheels for more platforms:
Registration, Geometry, and Reconstruction
Added symmetric ICP registration for legacy and Tensor pipelines (PR #7276; contributed by @eclipse0922).
Added 3D Normal Distributions Transform (NDT) registration with C++ and Python APIs (PR #7517; contributed by @Xiang-Zeng).
Added Moving Least Squares, Laplacian, Taubin, and bilateral point-cloud smoothing (PR #7419; contributed by @TsofnatMaman).
Exposed
full_depth,samples_per_node, andpoint_weightfor Poisson surface reconstruction (PR #7430; contributed by @Chevi-Koren).Added
CorrespondenceCheckerBasedOnSourceRotationfor RANSAC workflows with a known global orientation prior (PR #7461; contributed by @jGiltinan).Added accurate minimum-volume oriented bounding boxes using Jylanki's algorithm
OrientedBoundingBox::CreateFromPointsMinimal(), alongside the fast approximate method (PR #7138; contributed by @quentin-leboutet).Added minimum-volume oriented bounding ellipsoids for point clouds and triangle meshes with Khachiyan's algorithm (PR #7377; contributed by @quentin-leboutet).
Added
transform,translate,scale, androtatesupport for legacyVoxelGridgeometry (PR #7339; contributed by @lmuffang).Rendering, Interoperability, and Remote Visualization
Added MikkTSpace tangent space generation, normal-map conversion, and ray-cast ambient-occlusion texture baking for Tensor triangle meshes (PR #7364; contributed by @ssheorey).
Added experimental USD/USDZ import and transparent Draco decompression for lights (PR #7505; contributed by @ssheorey); broader scene semantics are not yet supported.
Reduced WebRTC remote-visualization delays with input/redraw coalescing, asynchronous frame encoding, and streaming configuration improvements (PR #7496; contributed by @ssheorey).
Replaced OSMesa with EGL for Linux legacy-visualizer headless rendering (PR #7518; contributed by @ssheorey). Standard Open3D Linux binaries can render without
DISPLAYorWAYLAND_DISPLAYwhen an EGL-capable driver is available.Distribution and Build Experience
.splatand.spz(PR #7534; contributed by @ssheorey).Agent Skills for Open3D Applications
Open3D now ships agent skills for AI coding assistants that write applications using Open3D (PR #7542; contributed by @eclipse0922). The
open3d-pythonandopen3d-cppskills map the public APIs, clarify the Tensor-versus-legacy API choices, and cover device, I/O, visualization, registration, reconstruction, and CMake integration.The skills are included in Python wheels and C++ binary packages. Install the Python skill into a project's
.github/skillsdirectory with:For C++, copy
open3d-cppfromshare/Open3D/agent_skills/open3d-cppin an extractedopen3d-develpackage to the project's.github/skills/directory. On Windows, the source directory isbin/Open3D/agent_skills/open3d-cpp.Correctness and Performance
Breaking Changes and Known Issues
CPU Parallelism Uses TBB
OpenMP support has been removed.
WITH_OPENMP,OMP_NUM_THREADS,utility::OMPProgressBar,utility::GetThreadNum(), andutility::InParallel()are no longer available. Useopen3d.utility.set_max_threads()in Python orutility::SetMaxThreads()in C++; applications that require stricter thread control can use a TBB task arena. Open3D requires oneTBB 2021.4.0 or newer.ML Dependencies Are Optional
pip install open3dno longer installs Open3D-ML Python dependencies. Install themlextra when importing Open3D-ML functionality:pip install "open3d[ml]"Platform and Package Compatibility
PATHfor non-CUDA DLLs.open3d-cudaandopen3d-xpu(sycl) wheels and devel packages are preview/experimental. Windowscudadoes not support PyTorch ops, and TensorFlow ops is not available on Windows. Debug devel builds forcudaandsyclare not available.ENABLE_HEADLESS_RENDERINGandHEADLESS_RENDERINGCMake options and OSMesa dependencies have been removed. Windows and macOS still require an active desktop/window-server session for legacy-visualizer rendering.SYCL Limitations
As with CUDA, some legacy APIs are not yet available. Open3D currently uses one SYCL GPU at a time. GPU kernels are JIT-compiled on first use, so the first run on a device can be slower; enable a persistent cache with
o3d.core.sycl.enable_persistent_jit_cache()orSYCL_CACHE_PERSISTENT=1.Gaussian Splatting Limitations
Some platforms may hang or crash when displaying Gaussian Splats (Windows Intel Arc A770m is known to hang.). Gaussian Splatting uses Vulkan on Linux and Windows and Metal on macOS; the OpenGL renderer is not supported. MSAA is disabled for splat views, with the Gaussian anti-aliasing option serving that role. Very large or close splats can exceed tile limits and be culled, and dense scenes can drop tile entries after reaching their configured capacity. Use the Gaussian Splat material capacity parameters to tune these limits for the scene.
For anisotropic splats, do not use a general 4x4
Transform()to change the scene. UseTranslate,Scale, andRotateso positions, covariance orientation, and view-dependent coefficients remain consistent.Acknowledgment
Thank you to the Open3D community contributors, issue reporters, and users who helped shape this release.
Full Changelog
v0.19.0...v0.20.0
This discussion was created from the release v0.20 release.
All reactions