BerkeleyLearnVerify / Scenic

A compiler and scenario generator for the Scenic scenario description language.
https://scenic-lang.org/
Other
271 stars 93 forks source link

Move to Manifold for Boolean Operations #169

Closed Eric-Vin closed 7 months ago

Eric-Vin commented 1 year ago

Move from OpenSCAD/Blender to Manifold, which is faster, more reliable, and can (soon) be installed via PyPi.

This is a WIP, as I developed it using a locally built Manifold wheel and modified version of Trimesh. Once this PR and this issue are implemented, I'll update this branch so that we can run CI and confirm everything works.

I'll also need to update the installation instructions and documentation, and figure out how we can detect non 2-manifold meshes and present a clean error to users, as I believe Manifold will rightly error on those. Right now some of them are detected on our end, but others aren't and that leaves some undefined behavior.

Eric-Vin commented 8 months ago

Confirmed that the tests pass with the updated CI workflows from this branch: https://github.com/BerkeleyLearnVerify/Scenic/actions/runs/7268486842

Eric-Vin commented 8 months ago

Hmm, seems to exhibit an unrelated bug (and I believe it's the one we're working on patching in https://github.com/BerkeleyLearnVerify/Scenic/tree/OpendriveParser).

Eric-Vin commented 7 months ago

Gah, this new failure looks to be related to this. Looks like a fix is already in the pipeline though.

Eric-Vin commented 7 months ago

Alright with the new fix and pinned Manifold version we should be good to merge.