While either or both of those variables may be referenced by other constraints or scrubbed by the user, they collapse to a single variable as far as the solver is concerned — after all, once you know the value of one of them, you can compute the value of the other. Our new constraint system detects this, and instead of adding the second angle constraint, it introduces the variable θ BA and a linear relationship θ BA = θ AB + π . Another useful technique we developed for the constraint system is what we call “clustering”, i.e., the partitioning of the constraints and the variables on which they operate into clusters that can be solved independently.