Booil Jung

Open3D

3차원(3D) 데이터는 로보틱스, 자율 주행, 증강 현실(AR), 디지털 트윈과 같은 현대 기술 패러다임의 핵심 요소로 확고히 자리 잡았다. LiDAR(Light Detection and Ranging), 구조광(Structured Light), ToF(Time-of-Flight) 깊이 카메라 등 센서 기술의 비약적인 발전은 현실 세계를 정밀하게 디지털화하는 것을 가능하게 만들었으며, 이는 방대한 양의 3D 데이터 생성을 촉진했다.1 이러한 데이터는 단순한 기하학적 정보를 넘어, 객체의 형태, 위치, 환경과의 상호작용 등 풍부한 의미론적 정보를 내포하고 있다. 따라서, 이 방대한 3D 데이터를 효율적으로 수집, 처리, 분석 및 시각화하는 능력은 기술 혁신의 성패를 좌우하는 핵심 역량이 되었다. 그러나 3D 데이터는 비정형적이고 밀도가 불균일하며, 데이터의 양이 방대하다는 본질적인 특성 때문에 이를 다루기 위한 전문적이고 효율적인 소프트웨어 도구의 필요성이 지속적으로 증대되어 왔다.

Open3D는 이러한 시대적 요구에 부응하기 위해 등장한 현대적인 오픈소스 라이브러리다. 3D 데이터 처리를 위한 소프트웨어의 신속한 개발을 지원하는 것을 궁극적인 목표로 삼고 있으며, 이를 위해 세심하게 엄선된 핵심 데이터 구조와 알고리즘을 C++와 Python이라는 두 가지 주요 프로그래밍 언어의 프론트엔드를 통해 제공한다.3 Open3D의 등장은 3D 데이터 처리가 더 이상 고도로 전문화된 컴퓨터 그래픽스나 비전 연구실의 전유물이 아니라, Python을 중심으로 하는 광범위한 데이터 과학 및 머신러닝 커뮤니티로 확장되는 중요한 패러다임 전환을 의미한다. 과거 3D 데이터 처리는 주로 Point Cloud Library(PCL)와 같이 C++ 중심의 무겁고 학습 곡선이 가파른 라이브러리에 의존하는 경향이 있었다.6 반면, Open3D는 고성능이 요구되는 백엔드는 C++로 유지하면서도, 데이터 과학 생태계의 공용어인 Python을 전면에 내세우는 전략을 채택했다.1 PyTorch 및 TensorFlow와 같은 주요 딥러닝 프레임워크와의 직접적인 통합을 지원하는 Open3D-ML 모듈은 이러한 전략을 더욱 공고히 하며 7, Open3D가 단순히 또 다른 3D 라이브러리가 아니라 3D 컴퓨터 비전과 주류 머신러닝 커뮤니티를 잇는 핵심적인 교량 역할을 수행하도록 설계되었음을 명확히 보여준다.

보고서를 시작하기에 앞서, 용어의 혼동을 방지하기 위해 명확한 구분이 필요하다. 본 보고서에서 심층적으로 다루는 ‘Open3D’는 앞서 설명한 3D 데이터 처리 라이브러리다. 이는 Linux Foundation 산하의 Open 3D Foundation이 주도하는 유사한 이름의 ‘O3DE(Open 3D Engine)’와는 완전히 별개의 프로젝트다. O3DE는 Amazon의 Lumberyard 게임 엔진을 기반으로 하는 오픈소스 3D 게임 및 시뮬레이션 엔진으로, 주로 게임 개발, 로보틱스 시뮬레이션, 메타버스 구축 등을 목표로 한다.8 두 프로젝트 모두 ‘Open 3D’라는 키워드를 공유하지만, 그 목적, 아키텍처, 개발 주체, 그리고 핵심 커뮤니티가 명확히 다르므로 혼동하지 않아야 한다. 이러한 이름의 유사성은 오픈소스 생태계에서 명확한 브랜딩과 커뮤니케이션의 중요성을 보여주는 사례이기도 하다. 특히 Open3D는 초기에 프로젝트 이름과 소유권을 둘러싼 커뮤니티 내 논란을 겪은 바 있어 11, 프로젝트의 정체성 확립이 얼마나 중요한지를 시사한다.

본 보고서는 Open3D를 다각적이고 심층적으로 분석하는 것을 목표로 한다. 먼저 Open3D의 근간을 이루는 아키텍처와 설계 철학을 살펴보고, 핵심 데이터 구조를 상세히 분석한다. 이어서 정합(registration), 군집화(clustering), 분할(segmentation) 등 주요 알고리즘의 원리와 활용법을 고찰한다. 또한, 강력한 시각화 기능과 Open3D-ML을 통한 머신러닝 파이프라인 통합을 심도 있게 다룬다. 마지막으로, PCL, VTK 등 다른 라이브러리와의 비교를 통해 생태계 내에서의 경쟁력을 분석하고, 로보틱스, 자율 주행 등 다양한 분야에서의 실제 활용 사례를 제시하며, 라이브러리의 미래 기술 로드맵을 전망하며 결론을 맺는다.

Open3D의 강력함은 성능과 사용 편의성이라는 두 마리 토끼를 모두 잡기 위해 설계된 이중 계층 아키텍처에서 비롯된다.

백엔드는 연산 집약적인 작업을 효율적으로 처리하기 위해 현대적인 C++11 표준으로 구현되었다. 이 계층은 핵심 데이터 구조의 메모리 관리와 알고리즘의 실행을 담당하며, OpenMP(Open Multi-Processing)를 활용한 병렬 처리에 최적화되어 있어 멀티코어 CPU의 성능을 최대한 활용할 수 있도록 설계되었다.1 이를 통해 대용량 포인트 클라우드 처리나 복잡한 기하학적 연산에서도 높은 처리 속도를 보장한다.

프론트엔드는 개발자의 접근성과 생산성을 극대화하는 데 초점을 맞춘다. C++와 Python이라는 두 가지 주요 언어에 대한 API를 동시에 제공하여, 시스템 수준의 고성능 애플리케이션 개발부터 빠른 프로토타이핑 및 연구에 이르기까지 광범위한 요구를 충족시킨다.3 특히 Python 바인딩은 Open3D의 핵심적인 강점 중 하나로, pybind11 라이브러리를 통해 C++ 백엔드의 기능을 거의 완벽하게 노출시킨다. 더 나아가, Python의 대표적인 과학 컴퓨팅 라이브러리인 NumPy와 완벽하게 호환되도록 설계되었다. 이는 Open3D의 데이터 구조(예: PointCloud.points)와 NumPy 배열 간의 변환이 메모리 복사 없이(zero-copy) 효율적으로 이루어질 수 있음을 의미하며, 데이터 과학 및 머신러닝 워크플로우에 Open3D를 매끄럽게 통합하는 것을 가능하게 한다.1

Open3D는 몇 가지 명확한 설계 철학을 바탕으로 개발되었으며, 이는 다른 라이브러리와 차별화되는 지점이다.

Open3D의 아키텍처는 정체되어 있지 않고, 3D 데이터 처리 기술의 발전에 발맞추어 진화하고 있다. 가장 중요한 변화는 내부 데이터 처리 방식이 Eigen 라이브러리 기반에서 자체 Tensor 기반으로 전환되고 있다는 점이다.

초기 Open3D는 CPU 기반 선형대수 연산에 매우 효율적인 C++ 라이브러리인 Eigen을 핵심 계산 엔진으로 사용했다. 이는 기하학적 정확성과 CPU 성능에 중점을 둔 설계였다. 그러나 딥러닝 시대에 접어들면서 대규모 데이터 처리에 GPU 가속은 선택이 아닌 필수가 되었다. PyTorch와 TensorFlow와 같은 딥러닝 프레임워크는 모두 Tensor라는 데이터 구조를 중심으로 GPU 연산을 추상화한다.7

이러한 흐름에 발맞추어, Open3D는 open3d.t.geometry라는 네임스페이스 하에 자체적인 Tensor 객체를 기반으로 하는 새로운 API를 도입했다.13 이 Tensor API는 PyTorch나 TensorFlow와 유사한 인터페이스를 제공하여 머신러닝 개발자들이 친숙하게 사용할 수 있으며, CPU와 GPU(CUDA를 통해) 모두에서 원활하게 동작한다. 이는 단순한 성능 향상을 넘어, 라이브러리의 정체성을 ‘전통적인 기하학 처리 도구’에서 ‘현대적인 3D 머신러닝 인프라’로 재정의하려는 전략적 결정이다. Open3D가 더 이상 독립적인 3D 처리 라이브러리가 아니라, 더 큰 3D 머신러닝 생태계의 핵심 구성 요소(foundational layer)가 되고자 함을 명확히 보여준다.

현재 Open3D는 Eigen 기반의 레거시 API와 Tensor 기반의 신규 API가 공존하는 과도기적 단계에 있다. 장기적인 로드맵은 라이브러리 전체의 기능을 Tensor API로 완전히 전환하고, 최종적으로 레거시 API를 폐기(deprecation)하여 API의 일관성을 확보하는 것을 목표로 한다.13

Open3D는 다양한 3D 데이터를 효율적으로 표현하고 조작하기 위해 잘 설계된 핵심 데이터 구조들을 제공한다. 이 구조들은 C++ 백엔드에서 효율적으로 관리되며, Python 프론트엔드에서는 NumPy와 유사한 인터페이스를 통해 직관적으로 접근할 수 있다.

포인트 클라우드는 3D 공간상의 점들의 집합으로, 3D 데이터를 표현하는 가장 기본적이고 원초적인 형태다. LiDAR 스캐너나 깊이 카메라로부터 직접 얻어지는 데이터가 바로 포인트 클라우드다.1

메쉬는 점(vertices)들을 삼각형(triangles) 면으로 연결하여 객체의 표면을 표현하는 데이터 구조다. 포인트 클라우드가 점의 집합이라면, 메쉬는 표면의 연결성(connectivity) 정보까지 포함하므로 렌더링, 시뮬레이션, 기하학적 분석 등에 더 적합하다.

복셀 그리드는 3D 공간을 정육면체 형태의 작은 단위인 복셀(voxel)로 균일하게 분할하여 데이터를 표현하는 구조다. 이는 비정형적인 포인트 클라우드 데이터를 정형화된 그리드 구조로 변환하여 특정 연산을 효율적으로 수행하게 해준다.

다음 표는 Open3D의 핵심 기하학 데이터 구조들의 특징을 요약하여 비교한다.

Table 1: Core Geometric Data Structures in Open3D

Data Structure Description Key Member Variables Key Methods Typical Use Cases
PointCloud Unstructured set of 3D points. points, colors, normals voxel_down_sample, estimate_normals, segment_plane, cluster_dbscan Raw LiDAR/depth sensor data representation, feature extraction, segmentation.
TriangleMesh Surface represented by vertices and triangular faces. vertices, triangles, vertex_normals, triangle_uvs create_from_point_cloud_ball_pivoting, simplify_quadric_decimation, is_watertight 3D modeling, surface reconstruction, rendering, simulation.
VoxelGrid Uniform partitioning of 3D space into cubes. voxels, origin, voxel_size create_from_point_cloud, get_voxel, carve_silhouette Downsampling, spatial indexing, volumetric fusion (e.g., TSDF).

Open3D는 3D 데이터 처리를 위한 핵심적인 알고리즘들을 효율적이고 사용하기 쉬운 형태로 제공한다. 이러한 알고리즘들은 복잡한 수학적 배경을 가지고 있지만, Open3D는 이를 고수준 API로 추상화하여 개발자가 몇 줄의 코드로 강력한 기능을 구현할 수 있게 한다. 동시에, 알고리즘의 동작을 미세하게 제어할 수 있는 핵심 파라미터들을 노출하여 전문가 사용자의 요구도 충족시킨다. 이러한 설계는 빠른 프로토타이핑을 원하는 사용자부터 특정 도메인에 대한 최적화가 필요한 전문가까지 넓은 사용자층을 확보하는 데 결정적인 역할을 한다.

정합은 서로 다른 좌표계에서 측정된 여러 개의 3D 데이터(주로 포인트 클라우드)를 하나의 일관된 좌표계로 정렬하는 과정이다. ICP는 정밀한 국소 정합(local registration)을 위한 가장 대표적인 알고리즘이다.

여기서 pi는 i번째 소스 포인트, qi는 pi에 대응하는 가장 가까운 타겟 포인트, $\mathbf{R}$은 회전 행렬, 그리고 $\mathbf{t}$는 이동 벡터를 나타낸다. Open3D에서는 registration_icp 함수에 TransformationEstimationPointToPoint 객체를 전달하여 이 방식을 사용한다.24

군집화는 데이터 포인트들을 유사한 특성을 가진 그룹(클러스터)으로 묶는 비지도 학습 기법이다. 3D 포인트 클라우드에서는 공간적 근접성을 기반으로 객체들을 분리하는 데 주로 사용된다.

분할은 전체 포인트 클라우드를 의미 있는 여러 하위 집합으로 나누는 과정이다. 평면 분할은 실내외 환경에서 벽, 바닥, 도로면 등 주요 구조물을 감지하는 가장 기본적인 분할 기법이다.

3D 데이터를 효과적으로 이해하고 분석하기 위해서는 강력한 시각화 도구가 필수적이다. Open3D는 단순한 데이터 확인부터 복잡한 상호작용이 가능한 애플리케이션 개발에 이르기까지, 다양한 수준의 요구를 충족시키는 다층적인 시각화 시스템을 제공한다. 이러한 시스템은 단순한 ‘데이터 뷰어’를 넘어 완전한 ‘애플리케이션 프레임워크’로 진화하고 있으며, 이는 Open3D가 데이터 처리뿐만 아니라 최종 사용자에게 전달될 상호작용형 3D 경험을 만드는 도구로서의 역할을 확장하고 있음을 보여준다.

draw_geometries 함수는 Open3D에서 3D 데이터를 시각화하는 가장 간단하고 직관적인 방법이다. 이 함수는 PointCloud, TriangleMesh 등 하나 이상의 기하학 객체를 담은 리스트를 인자로 받아, 새로운 GUI 창을 생성하고 해당 객체들을 렌더링한다.20

draw_geometries가 간단한 확인용이라면, Visualizer 클래스는 렌더링 과정을 프로그래밍 방식으로 정밀하게 제어해야 하는 고급 사용 사례를 위해 설계되었다. 이는 실시간으로 데이터가 업데이트되는 스트리밍 시각화나 시뮬레이션 결과 표시에 필수적이다.

최신 버전의 Open3D는 단순한 3D 뷰어를 넘어, 완전한 그래픽 사용자 인터페이스(GUI)를 갖춘 독립 실행형 애플리케이션을 제작할 수 있는 포괄적인 gui 모듈을 제공한다. 이는 Open3D의 목표가 연구자의 알고리즘 테스트 도구를 넘어, 산업 현장에서 사용될 수 있는 완성도 높은 소프트웨어 개발을 지원하는 플랫폼으로 확장되고 있음을 보여준다.

rendering 모듈은 시각화의 외형과 품질을 담당하는 저수준 렌더링 API를 제공한다. 이는 Filament 렌더링 엔진을 기반으로 하며, 고품질의 실시간 렌더링을 가능하게 한다.

Open3D-ML은 3D 머신러닝 연구 및 개발을 가속화하기 위해 특별히 설계된 Open3D의 확장 모듈이다. 이는 Open3D가 단순히 3D 데이터를 딥러닝 모델의 ‘입력’으로 제공하는 것을 넘어, 3D 딥러닝 연구의 ‘전 과정(end-to-end)’을 포괄하는 통합 플랫폼이 되고자 하는 야심을 명확히 보여준다. Open3D-ML은 데이터 전처리, 모델 구현, 학습 코드 작성 등 반복적인 작업을 추상화함으로써, 연구자들이 새로운 아이디어를 실험하는 데 집중할 수 있는 환경을 제공한다. 결과적으로 Open3D는 3D 딥러닝 분야에서 새로운 연구의 기준선(baseline)을 제시하고 재현성을 높이는 표준 프레임워크로서의 역할을 수행하고 있다.

Open3D-ML은 Open3D 코어 라이브러리 위에 구축되며, PyTorch와 TensorFlow라는 두 가지 주요 딥러닝 프레임워크를 완벽하게 지원한다.4 사용자는 import open3d.ml.torch as ml3d 또는 import open3d.ml.tf as ml3d와 같이 간단한 구문을 통해 선호하는 프레임워크를 선택하여 사용할 수 있다. 이 모듈은 3D 의미론적 분할(semantic segmentation)과 3D 객체 탐지(object detection)와 같은 핵심적인 3D 머신러닝 작업에 중점을 둔다.7

Open3D-ML은 3D 딥러닝 워크플로우를 구성하는 각 단계를 위한 포괄적인 도구들을 제공한다.

Open3D는 수많은 3D 처리 및 시각화 라이브러리가 존재하는 생태계 내에서 자신만의 독특하고 강력한 위치를 점하고 있다. 이는 기존 라이브러리들의 장점을 계승하면서도, 현대적인 소프트웨어 개발 패러다임과 머신러닝 중심의 시대적 요구를 적극적으로 반영한 결과다.

PCL은 3D 포인트 클라우드 처리 분야에서 오랫동안 사실상의 표준(de facto standard)으로 여겨져 온 라이브러리다. 그러나 Open3D의 등장은 이러한 구도에 중요한 변화를 가져오고 있다.

VTK는 과학, 의료, 공학 데이터 시각화 분야에서 수십 년간 사용되어 온 매우 강력하고 성숙한 라이브러리다.

다음 표는 Open3D와 주요 경쟁 라이브러리인 PCL, VTK의 특징을 여러 차원에서 비교하여 Open3D의 독자적인 위치를 명확히 보여준다.

Table 2: Comparative Feature Matrix of 3D Libraries

Feature Dimension Open3D PCL (Point Cloud Library) VTK (Visualization Toolkit)
Primary Language C++ (Backend), Python (Frontend) C++ Centric C++ (Core), Python/Java Wrappers
Ease of Use (Python) High (Designed for Python) Low (Limited, less intuitive bindings) Moderate (Powerful but complex pipeline)
Algorithm Breadth High (Curated, modern algorithms) Very High (Comprehensive, mature) Moderate (Focus on visualization filters)
Visualization Quality High (PBR, GUI Framework) Moderate (Functional but basic) Very High (Scientific/Medical grade)
ML Integration Very High (Native Open3D-ML module) Low (Requires manual integration) Low (Not a primary focus)

Open3D는 그 유연성과 강력한 기능 덕분에 학술 연구를 넘어 산업 현장의 다양한 분야에서 실질적인 문제 해결을 위해 활발히 활용되고 있다.

로봇이 자율적으로 환경을 인식하고 작업을 수행하기 위해서는 3D 센서 데이터를 실시간으로 처리하는 능력이 필수적이다. Open3D는 이러한 로봇 인식(perception) 시스템의 핵심 구성 요소로 사용된다.

자율 주행 기술의 핵심은 차량 주변 환경을 3D로 정확하게 인지하는 것이다. Open3D는 자율 주행 차량의 ‘눈’ 역할을 하는 LiDAR 센서 데이터를 처리하는 데 매우 효과적인 도구다.

제조업 분야에서 3D 스캐닝은 품질 관리, 역설계(reverse engineering), 맞춤형 제작 등 다양한 공정에서 혁신을 가져오고 있다.

AR/VR 경험의 몰입감을 높이기 위해서는 현실 세계의 공간과 가상 객체를 매끄럽게 융합하는 것이 중요하다.

3D 스캐닝 기술은 소중한 문화유산을 비파괴적인 방식으로 정밀하게 기록하고 보존하는 데 혁신적인 방법을 제공한다.

Open3D는 3D 데이터 처리 분야에서 강력하고 현대적인 라이브러리로 빠르게 자리매김했으며, 그 발전은 현재 진행형이다. 라이브러리의 미래 로드맵과 기술 동향을 살펴보면, Open3D가 앞으로 3D 기술 생태계에서 더욱 핵심적인 역할을 수행할 것임을 예측할 수 있다.

Open3D의 미래 개발 방향은 크게 두 가지 축으로 요약할 수 있다: 기존 아키텍처의 고도화와 새로운 3D 표현 방식의 적극적인 수용.

Open3D는 라이브러리 자체의 기능 강화뿐만 아니라, 더 넓은 오픈소스 생태계와의 연동을 통해 그 영향력을 확대해 나갈 것으로 전망된다.

Open3D는 3D 데이터 처리를 위한 강력하고 현대적인 오픈소스 라이브러리로서, 고성능 C++ 백엔드의 견고함과 사용하기 쉬운 Python 프론트엔드의 유연성을 성공적으로 결합했다. 직관적인 API, 엄선된 핵심 알고리즘, 고품질의 실시간 시각화 기능, 그리고 무엇보다 Open3D-ML을 통한 딥러닝 생태계와의 깊은 통합은 PCL과 같은 전통적인 라이브러리와 차별화되는 Open3D의 핵심 경쟁력이다.

현재 진행 중인 Tensor API로의 전환은 라이브러리의 근간을 GPU 가속과 머신러닝 친화적인 구조로 재편하고 있으며, 3D Gaussian Splatting과 같은 차세대 3D 표현 방식의 도입은 Open3D가 단순한 데이터 처리 도구를 넘어 미래의 3D 애플리케이션을 위한 핵심 플랫폼으로 도약할 잠재력을 보여준다. 이러한 끊임없는 혁신을 통해, Open3D는 앞으로도 3D 컴퓨터 비전, 로보틱스, 자율 주행을 비롯한 수많은 첨단 산업 분야의 연구와 개발을 선도하는 필수적인 도구로 확고히 자리매김할 것으로 전망된다.

  1. A Modern Library for 3D Data Processing - Open3D, accessed August 5, 2025, https://www.open3d.org/wordpress/wp-content/paper.pdf
  2. Point Cloud Processing with Open3D and Python - Sigmoidal, accessed August 5, 2025, https://sigmoidal.ai/en/point-cloud-processing-with-open3d-and-python/
  3. Open3D – A Modern Library for 3D Data Processing, accessed August 5, 2025, https://www.open3d.org/
  4. Open3D: A Modern Library for 3D Data Processing - GitHub, accessed August 5, 2025, https://github.com/isl-org/Open3D
  5. [1801.09847] Open3D: A Modern Library for 3D Data Processing - arXiv, accessed August 5, 2025, https://arxiv.org/abs/1801.09847
  6. Point Cloud Libraries: PCL vs. Open3D for Processing Efficiency - Patsnap Eureka, accessed August 5, 2025, https://eureka.patsnap.com/article/point-cloud-libraries-pcl-vs-open3d-for-processing-efficiency
  7. isl-org/Open3D-ML: An extension of Open3D to address 3D Machine Learning tasks - GitHub, accessed August 5, 2025, https://github.com/isl-org/Open3D-ML
  8. O3DE: Home, accessed August 5, 2025, https://o3de.org/
  9. Open 3D Engine - Wikipedia, accessed August 5, 2025, https://en.wikipedia.org/wiki/Open_3D_Engine
  10. Open 3D Foundation – Linux Foundation Project, accessed August 5, 2025, https://o3df.org/
  11. Open3D – A Modern Library for 3D Data Processing Hacker News, accessed August 5, 2025, https://news.ycombinator.com/item?id=16948437
  12. Help - Open3D, accessed August 5, 2025, https://www.open3d.org/help/
  13. Roadmap for Open3d and future of Legacy vs Tensor api #6446 - GitHub, accessed August 5, 2025, https://github.com/isl-org/Open3D/discussions/6446
  14. mxagar/open3d_guide: My personal guide to the great Python library Open3D. - GitHub, accessed August 5, 2025, https://github.com/mxagar/open3d_guide
  15. Point Cloud - Open3D latest (664eff5) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/tutorial/Basic/pointcloud.html
  16. Point cloud - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/tutorial/geometry/pointcloud.html
  17. Open3D (C++ API): Data Structures, accessed August 5, 2025, https://www.open3d.org/docs/0.13.0/cpp_api/annotated.html
  18. open3d.geometry.TriangleMesh - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/python_api/open3d.geometry.TriangleMesh.html
  19. Data Structures - Open3D (C++ API), accessed August 5, 2025, https://www.open3d.org/docs/0.6.0/cpp_api/annotated.html
  20. Visualization - Open3D latest (664eff5) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/tutorial/Basic/visualization.html
  21. An Iterative Closest Points Algorithm for Registration of 3D Laser Scanner Point Clouds with Geometric Features - MDPI, accessed August 5, 2025, https://www.mdpi.com/1424-8220/17/8/1862
  22. Iterative closest point - Wikipedia, accessed August 5, 2025, https://en.wikipedia.org/wiki/Iterative_closest_point
  23. Understanding Iterative Closest Point (ICP) Algorithm with Code - LearnOpenCV, accessed August 5, 2025, https://learnopencv.com/iterative-closest-point-icp-explained/
  24. ICP registration - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/tutorial/pipelines/icp_registration.html
  25. Visualization - Open3D 0.7.0 documentation, accessed August 5, 2025, https://www.open3d.org/docs/0.7.0/tutorial/Basic/visualization.html
  26. Visualization - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/tutorial/visualization/visualization.html
  27. open3d.visualization.Visualizer - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/python_api/open3d.visualization.Visualizer.html
  28. open3d.visualization - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/python_api/open3d.visualization.html
  29. open3d.visualization.gui - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/python_api/open3d.visualization.gui.html
  30. Introduction - Open3D 0.13.0 documentation, accessed August 5, 2025, https://www.open3d.org/docs/0.13.0/introduction.html
  31. open3d.visualization.rendering - Open3D primary (unknown) documentation, accessed August 5, 2025, https://www.open3d.org/docs/latest/python_api/open3d.visualization.rendering.html
  32. alexdimopoulos/PointCloudCity-Open3D-ML: This repository extends Open3D-ML to integrate the Point Cloud City datasets and features the processing code, dataset pipeline, and machine learning model configuration files and weights. - GitHub, accessed August 5, 2025, https://github.com/alexdimopoulos/PointCloudCity-Open3D-ML
  33. Open3D 0.19.0 documentation - Open3D-ML, accessed August 5, 2025, https://www.open3d.org/docs/release/open3d_ml.html
  34. Open3D 0.14 is full of new features, accessed August 5, 2025, https://www.open3d.org/2021/12/10/open3d-014-full-of-features/
  35. Working with PointCloud libraries for a beginner. : r/robotics - Reddit, accessed August 5, 2025, https://www.reddit.com/r/robotics/comments/pxpwwb/working_with_pointcloud_libraries_for_a_beginner/
  36. move semantics in PCL library : r/computervision - Reddit, accessed August 5, 2025, https://www.reddit.com/r/computervision/comments/18z3mjk/move_semantics_in_pcl_library/
  37. What are the best libriaries for processing 3d point cloud data( Python) ? ResearchGate, accessed August 5, 2025, https://www.researchgate.net/post/What-are-the-best-libriaries-for-processing-3d-point-cloud-data-Python
  38. A Guide to Powerful Mesh, Point Cloud, and 3D Data Visualization by Hady Hammad, accessed August 5, 2025, https://medium.com/@hadyKhHammad/a-guide-to-powerful-3d-data-visualization-3ca0bde70792
  39. What is the best 3D engine for a non-game application? : r/GraphicsProgramming - Reddit, accessed August 5, 2025, https://www.reddit.com/r/GraphicsProgramming/comments/n99e0x/what_is_the_best_3d_engine_for_a_nongame/
  40. Python Libraries for Mesh, Point Cloud, and Data Visualization (Part 1), accessed August 5, 2025, https://towardsdatascience.com/python-libraries-for-mesh-and-point-cloud-visualization-part-1-daa2af36de30/
  41. Category: Uncategorized - Open3D, accessed August 5, 2025, https://www.open3d.org/category/uncategorized/
  42. Open3d SLAM - open3d_slam 0.1 documentation, accessed August 5, 2025, https://open3d-slam.readthedocs.io/
  43. ‪Julian Nubert‬ - ‪Google Scholar‬, accessed August 5, 2025, https://scholar.google.com/citations?user=kkirJKcAAAAJ&hl=de
  44. What is Open3D? Competitors, Complementary Techs & Usage Sumble, accessed August 5, 2025, https://sumble.com/tech/open3d
  45. yudhisteer/Point-Clouds-3D-Perception-with-Open3D - GitHub, accessed August 5, 2025, https://github.com/yudhisteer/Point-Clouds-3D-Perception-with-Open3D
  46. Autonomous Vehicle Research - Our Latest Publications - Waymo, accessed August 5, 2025, https://waymo.com/research/
  47. 3D Scanning & Printing Case Studies by WYSIWYG 3D, accessed August 5, 2025, https://wysiwyg3d.com.au/case-studies/
  48. Case studies - Artec 3D, accessed August 5, 2025, https://www.artec3d.com/cases
  49. Open3D Explained aijobs.net, accessed August 5, 2025, https://aijobs.net/insights/open3d-explained/
  50. Get Started with Open3D Github: Your Complete Guide - Modelo, accessed August 5, 2025, https://www.modelo.io/damf/article/2024/05/13/0733/get-started-with-open3d-github–your-complete-guide
  51. Three-Dimensional Printing and 3D Scanning: Emerging Technologies Exhibiting High Potential in the Field of Cultural Heritage - MDPI, accessed August 5, 2025, https://www.mdpi.com/2076-3417/13/8/4777
  52. [2403.11134] Recent Advances in 3D Gaussian Splatting - arXiv, accessed August 5, 2025, https://arxiv.org/abs/2403.11134
  53. How NeRFs and 3D Gaussian Splatting are Reshaping SLAM: a Survey - arXiv, accessed August 5, 2025, https://arxiv.org/html/2402.13255v1
  54. 3D Gaussian splatting IO / Issue #7153 / isl-org/Open3D - GitHub, accessed August 5, 2025, https://github.com/isl-org/Open3D/issues/7153