Abstract: "The objective of design is to create a specification for functionally acceptable parts. Tolerances must be assigned to the design dimensions and play an important role in deciding if the design really exhibits the desired behavior when it is manufactured. It is therefore important that tolerance allocation is based on an understanding of the semantics of tolerance rather than adherence to convention. In this paper we introduce a means of explicitly reasoning about the effect of tolerances on the kinematic behavior of a part. The method is based on the use of configuration spaces to represent kinematic constraints. We show how algorithms to automatically generate and reason about configuration spaces can form the basis of a useful computer-aided design (CAD) tool."