Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add manifold corner case tests #5013

Merged
merged 9 commits into from Feb 29, 2024
Merged

Add manifold corner case tests #5013

merged 9 commits into from Feb 29, 2024

Conversation

kintel
Copy link
Member

@kintel kintel commented Feb 25, 2024

The goal of these tests is to create some good scenarios for tricky manifold objects, in particular manifold where the same vertex position is used by different topological neighborhoods, making it hard to reconstruct manifolds from a polygon soup.

TODO:

  • Look at more precise manifold construction #5001 to see if there are more corner cases we could introduce -> defer; needs more investigation
  • Establish theoretical ability to maintain these manifolds in various file format: 3MF, OBJ, OFF
  • Test import and export of the capable file formats.
  • Take note of failures which we should, theoretically, be able to fix using Manifold and write up tickets: Some Manifold objects fail to import into Manifold #5022
  • Optional: Perform STL export/import to see what fails
  • Optional: Is there a way we can verify that a file is exported as a proper manifold (i.e. doesn't collapse vertices with equal spatial positions)? This is interesting because OpenSCAD attempts to repair imported files, and with the current export-import tests, we cannot distinguish between an imported manifold vs. an imported repairable non-manifold. -> we could do this per file format, but it's quite some work to pull off. Alternatively extract our importers into a separate, small, test program, which is also a fair bit of work -> defer.

@pca006132
Copy link
Member

I think maybe we should write some code that directly converts polyhedron primitive into manifold. For some reason the round-trip to SurfaceMesh can sometimes make things worse...

@kintel
Copy link
Member Author

kintel commented Feb 25, 2024

I think maybe we should write some code that directly converts polyhedron primitive into manifold. For some reason the round-trip to SurfaceMesh can sometimes make things worse...

Yeah, the goal of theses tests is to establish some good failures to guide further development.

@kintel kintel force-pushed the kintel-manifold-tests branch 3 times, most recently from 5abf755 to c21ab93 Compare February 27, 2024 02:22
@kintel kintel marked this pull request as ready for review February 28, 2024 03:39
@kintel kintel merged commit e96dd26 into master Feb 29, 2024
5 checks passed
@kintel kintel deleted the kintel-manifold-tests branch February 29, 2024 02:27
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.

None yet

2 participants