/PoissonReconstruction

Screened poisson reconstruction algorithm written in Rust

Primary LanguageRustApache License 2.0Apache-2.0

.github/workflows/release.yml crates.io

PoissonReconstruction

This is a Rust implementation of the Screened Poisson Reconstruction surface reconstruction algorithm. This implementation comes courtesy of Foresight Mining Software Corporation who sponsor its creation and maintenance.

Reference papers

Features

Given a set of points and normals, the PoissonReconstruction will generate an implicit function from which the reconstructed surface can be extracted.

let poisson = PoissonReconstruction::from_points_and_normals(
    &points, &normals, 0.0, 4, 5, 10
);
let mesh_vertices = poisson.reconstruct_mesh();

The PoissonReconstruction representing an implicit function, it can be evaluated at space locations with PoissonReconstruction::eval. For convenience, a very basic isosurface extraction based on marching-cubes is provided with PoissonReconstruction::reconstruct_mesh().

Limitations

Some speed optimizations described in the Kazhdan et al. paper. Namely, it currently doesn’t implement the hierarchical clustering of point optimization nor the conforming version of the castadic solver.

License

PoissonReconstruction is free and open source! All code in this repository is dual-licensed under either:

at your option. This means you can select the license you prefer! This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are very good reasons to include both.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Sponsors

The creation and maintenance of PoissonReconstruction is sponsored by Foresight Mining Software Corporation.

Foresight Mining Software Corporation

Samples

Poisson woman Poisson bunny Poisson cat