Skip to main content

Crate manifold_rust

Crate manifold_rust 

Source
Expand description

Pure Rust port of the Manifold 3D geometry library: guaranteed-manifold boolean operations (union, intersection, difference) on triangle meshes, plus constructors, convex hull, Minkowski sum/difference, SDF meshing, smoothing and 2D cross-sections.

The port targets exact numerical match with the C++ reference (v3.5.0): same algorithms, same floating-point results, same triangle topology. The optional parallel feature adds rayon parallelism that is restricted to determinism-preserving sites, so its results remain bit-identical to the sequential build.

§Example

use manifold_rust::manifold::Manifold;
use manifold_rust::linalg::Vec3;

let cube = Manifold::cube(Vec3::new(1.0, 1.0, 1.0), true);
let sphere = Manifold::sphere(0.6, 32);

let difference = cube.difference(&sphere);
assert!(difference.volume() > 0.0);
assert_eq!(difference.status(), manifold_rust::types::Error::NoError);

The main entry point is manifold::Manifold; meshes move in and out via types::MeshGL / types::MeshGL64. Lower-level modules mirror the C++ source layout and are public primarily for testing and advanced use — their APIs may change before 1.0.

Modules§

boolean3
boolean_result
collider
constructors
cross_section
csg_tree
disjoint_sets
edge_op
face_op
impl_mesh
interp_tri
InterpTri — smooth surface interpolation using rational Bezier patches.
linalg
manifold
math
minkowski
par
polygon
properties
quickhull
sdf
smoothing
sort
subdivision
svd
tree2d
types