Home

Awesome

OManifold

OManifold provides bindings to the Manifold solid modelling (C++) library, with integrations into the OCADml ecosystem. Via Manifold, this library provides a means to verify, smooth, and perform boolean operations (with guaranteed manifold output) upon meshes generated in OCADml.

Manifold menger sponge logo

Notable differences from Manifold

Usage

open OCADml
open OManifold

let () =
  let s = Manifold.sphere 20.
  and cyl = Manifold.cylinder ~center:true ~height:40. 10. in
  Export.manifold "example.glb" (Manifold.sub s cyl)

External Dependencies

Documentation

Documentation for OManifold is available online, covering the API. Referring to the manual for OCADml is also likely to be helpful. Finally, as many of the usage examples found in the OSCADml documentation are largely OCADml centric, they can serve as a reference until similar efforts are made in this repository.

Building

Manifold is vendored as a git submodule, so make sure to add --recurse-submodules when cloning, or run git submodule update --init --recursive to update the submodule if already cloned.

git clone --recurse-submodules https://github.com/geoffder/OManifold
cd OManifold
dune build