1. Kinetic
1.1. Kinetic general Description
Kinetic Surface Reconstruction is an algorithm implemented in the CGAL library [1] . It’s an algorithm that allows to repair mesh with different topology issue, as non-watertight mesh, self-intersected mesh or mesh with hole. It takes as input a point cloud with associated normals representing a 3D model and decomposes the point cloud into different detected planar shapes and reconstructs the mesh. it while adding different property to it, addressing the mentioned issues
We can get a look at what the algorithm can do in the CGAL Use Manuals of the package [1]

1.2. Kinetic theory
We can obtain a comprehensive understanding of how it works in general from the report by INRIA [2]
-
It uses geometric primitives to create planes due to their relevance in human-made environments.
-
There are multiple methods for plane fitting in a 3D model, such as Neural Network architectures or Energy-based Models. The algorithm employs the latter.
-
To evaluate the quality of a primitive configuration x with an energy U of the format + — U(x) = w_f U_f(x) + w_s U_s(x) + w_c U_c(x) — where all U functions pertain to fidelity, simplicity, and completeness, and all w are positive and weight.
-
It then utilizes geometric operations such as merging, splitting, transfer, insertion, and exclusion on different planes and closed primitives.

Here, we present pseudocode detailing how the exploration of the set of primitives works.

The priority queue represents the set of primitives to which we apply geometric applications.
To use the algorithm, we employ one from CGAL. Given a set of parameters and a file containing a point cloud along with the associated normals, the algorithm is applied. We were fortunate to have a meeting with Florent Lafarge, one of the creators of the algorithm, who explained to us which parameters are crucial for analysis and how each one can significantly influence the results. Two parameters stand out as particularly important:
-
'maximum.distance' indicates the distance between two points required to consider them for plane construction.
-
'min.region.size' represents the number of points used to construct a plane.