High Level Design
Our first step in the journey into VP-space begins with a diagram. The diagram is drawn for a general case of strings with length a and b, and we define the Cartesian coordinate system referenced at the upper left stepper motor with inverted y-coordinate, for convenience of derivations (see Figure 1). With this system in place, we may proceed to come up with a mapping from Cartesian coordinates to string lengths, but more specifically we can come up with differential changes in the respective strings that give rise to differential changes in the x-coordinate and y-coordinate at a given point, and for a given function.

Figure 1: VP-space

We use Pythagorean Theorem to put the string lengths a and b in terms of the Cartesian coordinates x and y. We next take partial derivatives of the string lengths with respect to each Cartesian dimension. And finally we put the differential of a and b into the Jacobian form which accomplishes our goal of relating the respective differential changes!

It's rather amazing how conveniently the math works out!

Having made these relations we have accomplished a substantial part of design. From here if we can store the values of the current lengths of each string and the current x and y-coordinate in the referenced Cartesian coordinate system, we thereby have all the information necessary to turn both motors the number of times required to satisfy the equations.

The remainder of the design becomes all user interface. We decided that the data necessary to draw objects will be acquired from keypad entry, and communication to the user will occur via an LCD display. We have a sketch of what we originally conceived of as the entire working system. Our final product ended up looking remarkably similar to this initial vision.

Figure 2: The Sketch