Open3D

isl-org活跃维护

Open3D 是一个现代 3D 数据处理库,提供点云、网格、RGB-D 和 3D 可视化等算法与工具,支持 C++ 和 Python,可用于 3D 感知、重建与机器学习研究。

Open3D: A Modern Library for 3D Data Processing

v0.20.0发布于 2026-09-16 21:38 UTC14,189star +8 / 7 天2,649fork同步于 2026-11-10 05:27 UTC

怎么上手

从 README 代码块原样提取,可能是其中一种安装方式
pip install open3d       # or
pip install open3d-cpu   # Smaller CPU only wheel on x86_64 Linux (v0.17+)
硬件要求按 README 关键词推断
纯 CPU 可运行
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v0.20.0
  1. v0.20.0v0.20 release最新正式版2026-09-16 · 2026-09-16 21:38 UTC

    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.

    Note

    • Now available.: open3d-cpu Python 3.11-3.14 wheels are not available in PyPI at the moment due to storage limits. We expect this to be resolved in a few days.
    • Signed Windows and macOS viewers will be available shortly.

    Highlights

    Gaussian Splatting

    https://github.com/user-attachments/assets/f2840a2a-ffea-4347-9039-e1ecfd089fb2

    Gaussian splats and meshes in one Open3D scene.

    python examples/python/visualization/draw_from_csv.py
    

    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

    https://github.com/user-attachments/assets/44f03300-c887-4839-9855-1fbd50e15ac0

    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.npz
    

    The 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:

    • Core and geometry: device HashMap; KNN, fixed-radius, and hybrid nearest-neighbor search; Tensor geometry and normal transforms; TriangleMesh normal and area computation; and partial Tensor PointCloud unprojection, normal, and NNS-based operations.
    • Registration and odometry: point-to-point, point-to-plane, colored, Doppler, and symmetric ICP; registration evaluation and information matrices; FPFH features and correspondence matching; and point-to-plane, intensity, and hybrid RGB-D odometry.
    • Reconstruction and raycasting: VoxelBlockGrid TSDF touch, integration, ray casting, point-clo
  2. v0.19.0v0.19 release2025-01-08 · 2025-01-08 07:31 UTC
    查看更新说明

    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.12 and Numpy 2.

    • Experimental cross-platform GPU support through sycl. Use your integrated GPU to accelerate Open3D! Try out the preview Python 3.10 sycl wheel on Ubuntu 22.04+. For more details, see the documentation.

    • The preview wheel also features GPU accelerated raycasting with Embree (Intel GPUs) for fast geometry computation. docs. Contributed by @lumurillo

    • 3D geometry metrics: Chamfer distance, Hausdorff distance and F-score. TriangleMesh docs and PointCloud docs. image

    • New FlyingEdges algorithm for extracting an isosurface (triangle mesh) from a dense 3D volume. Contributed by @intelshashi in #6648. docs.

    • Add albedo texture to a mesh from calibrated images. docs and example.

    • macOS ARM64+x86_64 universal Python wheel and C++ binary. Contributed by @sitic in #6695 .

    • Sampling from mesh now includes color. Contributed by @nikste in #6842.

    • CUDA 12 support, and support for building with CUDA dynamic libraries. Contributed by @davconde in #6815 .

    • Support for PyTorch 2.2 and TensorFlow 2.16

    ⚠️ 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 https://github.com/isl-org/Open3D/pull/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
    
    • Different color pooling modes for creating VoxelGrid from PointCloud. Contributed by @rxba in #6937 image

    • File IO now works with Python pathlib.Path. Contributed by @sitic in #6619

    • Improved Python documentation, type checking and auto-complete support with mypy and VS Code. Many PRs (#6869, #6896, #6940, #7095, #7096, #7097, #7103, #7105) contributed by tireless @timohl !

    • Improved camera visualization image

    • Add mouse callback to VisualizerWithKeyCallback Contributed by @organic-nailer in @6760.

    https://private-user-images.githubusercontent.com/31440714/324184703-a5f1e06f-3a67-413c-855d-69ed21ff4658.mp4?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzU4MDQ4MzMsIm5iZiI6MTczNTgwNDUzMywicGF0aCI6Ii8zMTQ0MDcxNC8zMjQxODQ3MDMtYTVmMWUwNmYtM2E2Ny00MTNjL

  3. main-develDevel packages from the main branchpre-release2024-05-06 · 2024-05-06 21:06 UTC
    查看更新说明

    Note: This release tag (main-devel) is only used to publish Open3D binaries from the main branch. Do not download the source code (it will be out of date) from here.

  4. v0.18.0v0.18 release2024-01-05 · 2024-01-05 01:18 UTC
    查看更新说明

    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: Warning: :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] :sparkles: 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
  5. v0.17.0v0.17 release2023-03-15 · 2023-03-15 01:50 UTC
    查看更新说明

    Open3D 0.17 Release Notes

    We are happy to bring you the best Open3D yet! This is a "tick" release focused on resolving existing issues and eliminating bugs. We resolved over 150 issues for Open3D and Open3D-ML since the last release.

    Here are the main highlights of this release:

    • Open3D now has support for differentiable rendering with Mitsuba.
    Here we use Mitsuba to recover the albedo map from an input image for an object in Open3D. Example.
    • New lighter wheel (~105MB) for x86_64 Linux, which is suitable for systems without CUDA. Try it out with: pip install open3d-cpu.
    • The Open3D viewer app is now available for Windows. This version is unsigned, so expect Windows warnings.
    • Apple Silicon wheels now come with 3DML support.
    • Preview of distributed training with PyTorch for PointPillars on the Waymo dataset.
    • PointCloud partitioning with PCA.

    Visualization and GUI

    [New] Integration with Mitsuba.

    • Open3D geometries and materials seamlessly convert to Mitsuba's Principled BSDF:
    dataset = o3d.data.MonkeyModel()
    mesh = o3d.t.io.read_triangle_mesh(dataset.path)
    mesh_center = mesh.get_axis_aligned_bounding_box().get_center()
    mesh.material.set_default_properties()
    mesh.material.material_name = 'defaultLit'
    mesh.material.scalar_properties['metallic'] = 1.0
    mesh.material.texture_maps['albedo'] = o3d.t.io.read_image(dataset.path_map['albedo'])
    mesh.material.texture_maps['roughness'] = o3d.t.io.read_image(dataset.path_map['roughness'])
    mesh.material.texture_maps['metallic'] = o3d.t.io.read_image(dataset.path_map['metallic'])
    
    mi_mesh = mesh.to_mitsuba('monkey')
    img = render_mesh(mi_mesh, mesh_center.numpy())
    mi.Bitmap(img).write('test.exr')
    

    test2

    • Also supports applying other Mitsuba BSDFs to Open3D geometries:
    bsdf_rough_plastic = mi.load_dict({
        'type': 'roughplastic',
        'diffuse_reflectance': {
            'type': 'rgb',
            'value': [0.1, 0.1, 0.1]
        },
        'alpha': 0.1,
        'int_ior': 'bk7',
        'ext_ior': 'air',
    })
    mi_mesh = mesh.to_mitsuba('monkey', bsdf=bsdf_rough_plastic)
    img = render_mesh(mi_mesh, mesh_center.numpy())
    mi.Bitmap(img).write('test3.exr')
    

    test3 See examples/python/visualization/to_mitsuba.py for more details.

    Visualization and GUI (other updates)

    • [New] The Open3D viewer app is now available for Windows. This version is unsigned, so expect Windows warnings.
    • [New] Add draw_web CLI for remote visualization. Try it out with (remotehost) $ open3d draw_web --bind_all /path/to/3D/file and then open the browser to http://remotehost:8888
    • [New] Unprojection function in the ViewControl (contributed by @PieroV).
    • [New] Added interaction methods for Python ImageWidget (contributed by @MartinEekGerhardsen).
    • [Update] Updated customized_visualization tutorial (contributed by @ClarytyLLC).
    • [Update] Convert material properties when converting from legacy to tensor TriangleMesh.
    • [Fix] O3DVisualizer::RemoveGeometry() function vector subscript out of range (contributed by @UnadXiao).
    • [Fix] Fast check for 3D tensorboard data. Open3D does not delay Tensorboa

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Open3D: A Modern Library for 3D Data Processing

    Open3D is an open-source library that supports rapid development of software that deals with 3D data. The Open3D 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. We welcome contributions from the open-source community.

    Ubuntu CI macOS CI Windows CI

    Core features of Open3D include:

    • 3D data structures
    • 3D data processing algorithms
    • Scene reconstruction
    • Surface alignment
    • 3D visualization
    • Physically based rendering (PBR)
    • 3D machine learning support with PyTorch and TensorFlow
    • GPU acceleration for core 3D operations
    • Available in C++ and Python

    Here's a brief overview of the different components of Open3D and how they fit together to enable full end to end pipelines:

    Open3D_layers

    For more, please visit the Open3D documentation.

    Also checkout this great introduction to modern 3D data processing that features Open3D:

    3D Data Science with Python by Dr. Florent Poux

    From the author:

    Throughout the book, I showcase how Open3D enables efficient point cloud processing, mesh manipulation, and 3D visualization through practical examples and code samples. Readers learn to leverage Open3D's powerful capabilities for registration, segmentation, and feature extraction in real-world 3D data science workflows.

    Python quick start

    Pre-built pip packages support Ubuntu 20.04+, macOS 10.15+ and Windows 10+ (64-bit) with Python 3.10-3.14.

    # Install
    pip install open3d       # or
    pip install open3d-cpu   # Smaller CPU only wheel on x86_64 Linux (v0.17+)
    
    # Verify installation
    python -c "import open3d as o3d; print(o3d.__version__)"
    
    # Python API
    python -c "import open3d as o3d; \
               mesh = o3d.geometry.TriangleMesh.create_sphere(); \
               mesh.compute_vertex_normals(); \
               o3d.visualization.draw(mesh, raw_mode=True)"
    
    # Open3D CLI
    open3d example visualization/draw
    

    To get the latest features in Open3D, install the development pip package. To compile Open3D from source, refer to compiling from source.

    Release artifacts (Python wheels and C++ binaries) include signed SLSA build-provenance attestations (GitHub Artifact Attestations), aligned with OpenSSF supply-chain guidance. See Getting started — supply chain attestations for verification with the GitHub CLI.

    C++ quick start

    Checkout the following links to get started with Open3D C++ API

    To use Open3D in your C++ project, checkout the following examples

    Open3D-Viewer app

    Open3D-Viewer is a standalone 3D viewer app available on Debian (Ubuntu), macOS and Windows. Download Open3D Viewer from the release page.

    Open3D-ML

    Open3D-ML is an extension of Open3D for 3D machine learning tasks. It builds on top of the Open3D core library and extends it with machine learning tools for 3D data processing. To try it out, install Open3D with PyTorch or TensorFlow and check out Open3D-ML.

    Communication channels

    • GitHub Issue: bug reports, feature requests, etc.
    • Forum: discussion on the usage of Open3D.
    • Discord Chat: online chats, discussions, and collaboration with other users and developers.

    Citation

    Please cite our work if you use Open3D.

    @article{Zhou2018,
        author    = {Qian-Yi Zhou and Jaesik Park and Vladlen Koltun},
        title     = {{Open3D}: {A} Modern Library for {3D} Data Processing},
        journal   = {arXiv:1801.09847},
        year      = {2018},
    }