Beelse

Overview

For my 4th year of engineering school, I spent four months as a developer intern at Beelse.

In 2021, Beelse was a small Grenoble startup founded by Yannick Marion, Clément Chabert and Yannick Omnes. Its goal was to let companies 3D-print parts easily through a SaaS platform called BCM.

My Mission

My mission was to build a program that analyzes a 3D model file (STL), detects geometry errors and repairs them automatically.

There are 4 main types of errors in this kind of file:
  1. Inverted normals (faces pointing the wrong way).
  2. Holes (open or non-manifold edges).
  3. Degenerate faces (three collinear vertices).
  4. Self-intersecting faces.

To detect them, I built an edge adjacency map of the mesh: it exposes open edges (holes) and neighbouring faces with inconsistent orientation. Self-intersections were found with triangle-triangle intersection tests. The program then repaired all four types: it propagated a consistent orientation to flip inverted normals, walked each boundary loop and triangulated it to close holes, and removed or re-triangulated degenerate and intersecting faces.

The tool was later integrated into BCM, after my internship ended.

Here's an example result:

  • Left: the object fixed by my program.
  • Right: the original object with errors.