Skip to content

Add use_normal_length_as_confidence parameter to Poisson surface reconstruction#7453

Open
shlok-ramlab wants to merge 2 commits intoisl-org:mainfrom
RAMLABNL:poisson-params
Open

Add use_normal_length_as_confidence parameter to Poisson surface reconstruction#7453
shlok-ramlab wants to merge 2 commits intoisl-org:mainfrom
RAMLABNL:poisson-params

Conversation

@shlok-ramlab
Copy link
Copy Markdown

@shlok-ramlab shlok-ramlab commented Mar 4, 2026

Type

  • Bug fix (non-breaking change which fixes an issue): Fixes #
  • New feature (non-breaking change which adds functionality). Resolves #
  • Breaking change (fix or feature that would cause existing functionality to not work as expected) Resolves #

Motivation and Context

Poisson surface reconstruction uses a confidence value to weight the influence of each point during reconstruction. By default, all points are weighted equally (confidence = 0). This change exposes a use_normal_length_as_confidence flag that passes the normal vector lengths as per-point confidence to the Poisson solver.

Checklist:

  • I have run python util/check_style.py --apply to apply Open3D code style
    to my code.
  • This PR changes Open3D behavior or adds new functionality.
    • Both C++ (Doxygen) and Python (Sphinx / Google style) documentation is
      updated accordingly.
    • I have added or updated C++ and / or Python unit tests OR included test
      results
      (e.g. screenshots or numbers) here.
  • I will follow up and update the code if CI fails.
  • For fork PRs, I have selected Allow edits from maintainers.

Description

Adds a use_normal_length_as_confidence boolean parameter (default false) to TriangleMesh.create_from_point_cloud_poisson(). When set to True, the Poisson solver uses confidence=1, which causes it to use the magnitude of each point's normal vector as a per-point confidence weight. This is a non-breaking change.

No unit test was added as the change is a single boolean flag affecting a well tested solver, let me know if that's needed.

@update-docs
Copy link
Copy Markdown

update-docs bot commented Mar 4, 2026

Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR exposes a new use_normal_length_as_confidence boolean flag on Poisson surface reconstruction (TriangleMesh::CreateFromPointCloudPoisson / TriangleMesh.create_from_point_cloud_poisson) to optionally weight samples using the magnitude of their input normals.

Changes:

  • Add use_normal_length_as_confidence parameter to the C++ TriangleMesh::CreateFromPointCloudPoisson API (default false).
  • Thread the new flag into the Poisson reconstruction implementation to enable “confidence” handling.
  • Expose the flag in the Python binding and add parameter documentation.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
cpp/pybind/geometry/trianglemesh.cpp Adds the new Python-exposed argument and corresponding docstring entry.
cpp/open3d/geometry/TriangleMesh.h Extends the public C++ API with the new optional parameter and Doxygen docs.
cpp/open3d/geometry/SurfaceReconstructionPoisson.cpp Wires the new flag into the Poisson execution path by enabling confidence handling.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@shlok-ramlab
Copy link
Copy Markdown
Author

@benjaminum Reminding for the review! Let me know if anything is missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants