1. In a digital computer having a processor and memory, a method of determining the configuration of a system comprising a collection of geometric entities satisfying a set of constraints, comprising the steps of: representing the geometric entities in terms of degrees of freedom and storing the geometric entities in memory; building an assembly plan comprising a plurality of plan fragments using said processor to incrementally satisfy constraints and systematically reduce the degrees of freedom, including the substeps-- using a first plan fragment for a first geometric entity and a first constraint which transforms the geometric entity to a first configuration satisfying the first constraint and reducing at least one degree of freedom, using other plan fragments for other geometric entities and other constraints satisfying constraints and reducing degrees of freedom; determining possible configurations of the collection of geometric entities using said assembly plan.