We at the chair of geometry and visualization develop dynamic geometry algorithms. Basic building blocks are so called
geometric primitive operations.
Even if primitive operations are implemented in a way that does not introduce artificial degenerate situations, combination of those can produce such situations. Consider a geometric construction that should create a certain element depending on some free elements. As an example consider the calculation of an orthogonal bisector of two points $A$ and $B$. Very often a user will implement such a construction by applying a sequence of geometric primitive operations. One possible (perhaps not the most clever) way he could do this is by drawing two circles of radius $1$ around the points, intersecting them and then joining the two intersections. How should such a construction behave when the user moves the original points? It is clear that the two real points of intersection and their connecting line should be shown when the points are at a distance less then one. At a distance greater than one one could argue (and this is a modeling step) what the desired behavior should be. We propose the following behavior: the intersection points have become complex. Joining them creates a line with complex homogeneous coordinates. However a common factor can be extracted from this complex coordinate vector and the line can rightly be interpreted as a real line: The orthogonal bisector if $A$ and $B$. But what should happen if $A$ and $B$ are exactly in a situation were their distance equals $1$? In this case the two circle intersections coincide and we do not have a well defined connecting line. However, in a sense the situation behaves like a removable singularity. In an epsilon neighborhood of the singularity the position of the line stably converges to the same situation. The question is how to automatically detect such cases and automatically desingularize them.
We proposed to use so called
Non-standard analysis (NSA) to resolve such singularities. NSA introduces infinitesimal and unlimited numbers and we integrated them into (dynamic) projective geometry.