Open3DSharpWrapper 1.2.1

dotnet add package Open3DSharpWrapper --version 1.2.1
                    
NuGet\Install-Package Open3DSharpWrapper -Version 1.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Open3DSharpWrapper" Version="1.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Open3DSharpWrapper" Version="1.2.1" />
                    
Directory.Packages.props
<PackageReference Include="Open3DSharpWrapper" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Open3DSharpWrapper --version 1.2.1
                    
#r "nuget: Open3DSharpWrapper, 1.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Open3DSharpWrapper@1.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Open3DSharpWrapper&version=1.2.1
                    
Install as a Cake Addin
#tool nuget:?package=Open3DSharpWrapper&version=1.2.1
                    
Install as a Cake Tool

Open3DSharpWrapper

A C# wrapper around Open3D's point cloud processing API. Open3D itself only ships Python and C++ bindings — this package exposes most of open3d::geometry::PointCloud as a .NET API, so you can load, transform, filter, analyze, and visualize point clouds directly from a C# project, with no separate SDK download or C++ build step.

  • Platform: Windows x64 only. The package bundles the native Open3D runtime for win-x64 (Open3D.dll, Open3DLibrary.dll, tbb12.dll, and the resource files the visualizer needs) — nothing else to install.
  • Frameworks: net8.0 and net10.0.
  • Source / issues / full docs: github.com/IgnasKrivas/Open3DSharpWrapper

Install

dotnet add package Open3DSharpWrapper

That's it — the native runtime comes with the package.

Quick start

using Open3DWrapper;

using var cloud = new PointCloud("scan.ply");
Console.WriteLine($"{cloud.Size} points");

using var downsampled = cloud.VoxelDownSample(0.05);
downsampled.EstimateNormals();
downsampled.NormalizeNormals();

var (result, kept) = downsampled.RemoveStatisticalOutliers(nbNeighbors: 20, stdRatio: 2.0);
result.WritePointCloud("cleaned.ply");

result.Show(); // opens an Open3D viewer window

Every native handle (PointCloud, TriangleMesh, OrientedBoundingBox) implements IDisposable — wrap them in using or call Dispose() when you're done with them.

What's included

PointCloud covers most of open3d::geometry::PointCloud's public API:

  • Point data: points/normals/colors/covariances (get/set per-index, resize, Has*)
  • Bounds: min/max/center, axis-aligned and oriented bounding boxes
  • Transforms: Transform, Translate, Scale, Rotate, Append
  • Downsampling & filtering: VoxelDownSample (+AndTrace), UniformDownSample, RandomDownSample, FarthestPointDownSample, SelectByIndex, CropAxisAligned/CropOriented, RemoveNonFinitePoints, RemoveDuplicatedPoints, RemoveRadiusOutliers, RemoveStatisticalOutliers
  • Analysis: EstimateNormals/EstimateCovariances (+ orientation variants), ComputeMeanAndCovariance, ComputePointCloudDistance, ComputeMahalanobisDistance, ComputeNearestNeighborDistance, ComputeConvexHull, HiddenPointRemoval, ClusterDBSCAN, SegmentPlane, DetectPlanarPatches
  • IO: read on construction, WritePointCloud

Methods that hand back a different geometry type (ComputeConvexHull/HiddenPointRemovalTriangleMesh, GetOrientedBoundingBox/DetectPlanarPatchesOrientedBoundingBox) return a disposable handle you can Show() or pass into other calls — their own vertex/triangle/extent accessors aren't wrapped yet.

Not yet covered: CreateFromDepthImage/CreateFromRGBDImage/CreateFromVoxelGrid (these need Image/RGBDImage/VoxelGrid/camera-intrinsics types that aren't wrapped yet), and full method surfaces for TriangleMesh/OrientedBoundingBox beyond handle lifetime + visualization.

Release channels

  • Stable (default — what dotnet add package gives you): published only when a maintainer manually cuts a GitHub Release. Bundles whichever Open3D version is the officially-supported one at that time.
  • Preview (X.Y.Z-preview.<open3d-version>, e.g. 1.2.0-preview.0.19.0): published automatically whenever the project's weekly compatibility check successfully validates a new Open3D release, ahead of it becoming the official stable target. Being a prerelease, it's never resolved by a plain dotnet add package — opt in explicitly if you want to try a newer Open3D version early:
    dotnet add package Open3DSharpWrapper --prerelease
    
    or pin an exact preview version.

License & acknowledgments

MIT licensed. This package is a thin wrapper — all the actual point cloud processing is Open3D (isl-org/Open3D, also MIT) doing the work.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.1 120 8/14/2026
1.2.1-preview.0.19.0 84 8/17/2026
1.2.0-preview.0.19.0 62 8/14/2026