Reverse engineering of CAD models via clustering and approximate
  implicitization
  In applications like computer aided design, geometric models are often
represented numerically as polynomial splines or NURBS, even when they
originate from primitive geometry. For purposes such as redesign and
isogeometric analysis, it is of interest to extract information about the
underlying geometry through reverse engineering. In this work we develop a
novel method to determine these primitive shapes by combining clustering
analysis with approximate implicitization. The proposed method is automatic and
can recover algebraic hypersurfaces of any degree in any dimension. In exact
arithmetic, the algorithm returns exact results. All the required parameters,
such as the implicit degree of the patches and the number of clusters of the
model, are inferred using numerical approaches in order to obtain an algorithm
that requires as little manual input as possible. The effectiveness, efficiency
and robustness of the method are shown both in a theoretical analysis and in
numerical examples implemented in Python.
