Although geometry has been a flourishing discipline for millennia, most of it has seen either no practical applications or only esoteric ones. Computing is quickly making much of geometry intriguing not only for philosophers and mathematicians, but also for scientists and engineers. What is the core set of topics that a practitioner needs to study before embarking on the design and implementation of a geometric system in a specialized discipline? This book attempts to find the answer. Every programmer tackling a geometric computing problem encounters design decisions that need to be solved. What may not be clear to individual programmers is that these design decisions have already been contemplated by others who have gone down some system design path only to discover (usually much later) that the design decisions that were made were lacking in some respect. This book reviews the geometric theory then applies it in an attempt to find that elusive right design.