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

Manifoldness repair #97

Open
pca006132 opened this issue Jan 26, 2025 · 1 comment
Open

Manifoldness repair #97

pca006132 opened this issue Jan 26, 2025 · 1 comment

Comments

@pca006132
Copy link

Outline

Repair triangle soup that are not manifold.

Details

Basically, a valid solid mesh should be both manifold and has no self-intersection. However, models from the internet may contain defects. This project is about coming up with an algorithm that converts and repair a triangle soup into a manifold mesh.

This will contain a lot of heuristics, basically what we need is:

  • Stitching faces together, and maybe join faces that are close enough.
  • Fill holes.
  • Duplicate vertices and edges such that the result is a manifold in terms of connectivity.

Expected Outcome

Implementation of said algorithm.

Future Possibilities

Project Properties

Skills

  • C++
  • Graph data structure.
  • Algorithms.

Difficulty

Hard.

Size

Long (350h)

Additional Information

@elalish
Copy link
Contributor

elalish commented Jan 29, 2025

We have a starter algorithm for this: Merge() that only merges nearby edges. It's conservative and gives up if the mesh is not close to manifold to begin with. Still, it's a reasonable place to start.

We do not expect a result free of self-intersections for this project - that's a separate project.

In general, a non-manifold mesh can require a lot of heuristic additional surfaces, so part of this project is artistic in nature: what additions make the most sense and look reasonable?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants