Section: Scientific Foundations
Reliable geometric computations on curves and surfaces
Simple algebraic surfaces cover a variety of forms sufficient for representing the majority of objects encountered in the fields of design, architecture and industrial manufacturing. For instance, it has been estimated that 95% of all mechanical pieces can be well modeled by quadric patches (degree 2 surfaces, including planes, spheres, cylinders and cones) and torii  . It is important, then, to be able to process these surfaces in a robust and efficient manner.
In comparison with polygonal representations, modeling and manipulating scenes made of curved objects pose a large variety of new issues and require entirely different tools. It is for instance no longer realistic to assume that simple operations like intersecting two primitives take constant time. The usual notion of complexity has to be revised and needs to incorporate the arithmetic complexity of operations.
Geometric computing with curved objects is plagued with robustness issues. The numerical instability of geometric algorithms is intimately linked to the double nature of geometric objects. Indeed, a geometric object is two things: a combinatorial structure which encodes the incidence properties between the elements constituting the object and numerical quantities (coordinates, equations) describing the embedding of the object in space. Manipulating geometric data, without breaking the consistency constraints that govern the relation between combinatorial and numerical quantities, is usually hard and has led to the unfolding of the exact geometric computing paradigm.
The dependence of combinatorial decisions on numerical computations is encapsulated in the notion of geometric predicates . When working with algebraic objects, evaluating a geometric predicate often means determining the sign of a polynomial expression in the coefficients of the input. This sign encodes the answer to simple geometric queries like “are three given points aligned?” or “is a given line tangent to a given surface?”. The paradigm of exact geometric computing requires the predicates to be evaluated exactly, ensuring that the branching of the algorithm are correct, that the software will not crash, loop indefinitely or output a wrong answer, and thus that the topological structure of the output is correct.
In the context of exact geometric computing, we work on key problems involving curved objects, mainly two-dimensional curves, and low-degree three-dimensional surfaces such as quadrics. For instance, we study intersections of quadrics both from an algorithmic and an algebraic-geometric point of view. On the algorithmic side, we work on finding simple and usable parameterizations of the intersection of two arbitrary quadrics. On the algebraic side, we deal with finding simple (and ideally optimal) geometric predicates for classifying the intersection pattern and the positional relationship of two quadrics.
We also work on computing arrangements of curved objects, i.e. the partitioning of space induced by the objects, such as arrangements of curves on a surface, or arrangements of quadrics in 3D space. Note that intersections of 2 and 3 quadrics are building blocks for the constructions of quadric arrangements. We work on constructing simpler sub-arrangements, like the BRep (Boundary Representation) of a solid model (CSG). Exact CSG-to-BRep conversion is a key and long-standing problem in CAGD, where many conventional modelers work with volumes and rendering software based on the global illumination approach need surface patches.
Finally, we deal with geometric problems where low-degree surfaces appear indirectly, not in the input but as intermediate structures. A major problem in this category is the computation of the Voronoi diagram, or medial axis, of polyhedra in 3D. In particular, we work on the simpler instance where only lines and line segments in 3D are considered, the bisectors of pairs of lines being quadric surfaces.