Druid is my Ph.D. dissertation, or more specifically, it is the program I developed for my Ph.D. research. One thing I learned during my Ph.D. is how to do technical writing. Well, I'm not sure I ever perfected the art, but my advisor tried very hard to hammer the concepts into me. However, in keeping with the spririt of the rest of my website, this page will maintain a tone of informality. Thank goodness.
Druid is a vector drawing program, like Adobe Illustrator, CorelDraw, x-fig, ivtools idraw, or MacPowerUser's iDraw. Druid stands out from the crowd in that is uses a completely novel representation for surfaces in a 2 1/2 D scene, a scene of surfaces which is fundamentally two-dimensional but which represents relative depths of surfaces in the third dimension.
Conventional drawing programs maintain the surfaces within distinct layers in order to readily resolve which surfaces lie above other surfaces. This assumption of layers imposes a DAG, or directed acyclic graph, on the relative surface depth relation. In other words, for any given pair of surfaces in the drawing, one must be above the other at all locations in the drawing. The constraint of relying on layers, and subsequently on DAGs, prevents the natural representation of scenes of interwoven surfaces, such as the Star of David, the Olympic rings, and Celtic knots. In addition to drawings consisting of cords, like those just listed (knots), there are also many scenes of interwoven surfaces that do not conform to knots, but which are nevertheless interwoven and cannot be naturally represented in a layered representation.
Druid handles interwoven surfaces with ease because it uses a representation which does not have layers at all. In fact, Druid's representation is proven to span the full space of 2 1/2 D scenes of oriented surfaces.
In addition to having a more general representation, Druid provides a very efficient user interface. We have attempted to design a user interface which would offer affordances (the way in which an object suggests that it may be used) that are isomorphic to the affordances of idealized surfaces. In other words, actions performed through the user interface should correspond to actions that could be performed on idealized surfaces. One user interaction we focused a lot of attention on is the flip interaction, in which the relative depth of two surfaces that overlap in a particular region is inverted for that region, so that the surface that was previously above moves below the other surface. Accomplishing this task in conventional drawing programs can be extremely tedious. Doing so in Druid, on the other hand, requires a single mouse-click, the simplest conceivable user interaction a user interface can provide.
The following movies are in quicktime format:
The following images illustrate some of Druid's capabilities. Note that while Druid is an excellent tool for constructing images of knots, it is not limited to knots. It can be used to construct scenes of interwoven surfaces which are merely interwoven, not necessarily knots.
|
|
|
|
|
|
|
|
|
|
|
|
I hope to have a version of Druid available for download soon.