Dynasty is our graphical interface for browsing large (possibly infinite) directed graphs and hypergraphs. The target graph may change dynamically: it is a graph object maintained by some application.
In particular, a Dyna chart with backpointers -- a proof forest -- can be wrapped up as a hypergraph and browsed using Dynasty. Thus, Dynasty will be the core of the forthcoming Dyna debugger.
A Dyna chart may be huge or infinite. Dynasty shows only a small local subgraph around the cursor. This visible subgraph is constantly changing under multiple asynchronous influences:
- user navigation (or search) that brings new nodes into view
- dynamic relayout
- user operations such as selection, contraction and coloring
- the application's changes to the full underlying graph.
Most dynamic graph explorers do force-directed layout (spring models) of undirected graphs. Dynasty is different in that its Sugiyama-style layouts strongly emphasize the directional flow along edges. For example, in a parse tree or a proof tree, one wants parents to always be above their children. The order of siblings can also be semantically meaningful.
Another novel aspect of Dynasty is that it tries to make keyboard navigation usable. Even small subgraphs can contain tangles, so the arrow keys -- interpreted topologically -- are very helpful in finding related nodes and tracing paths through the graph. The design challenge is that "up" has to choose among many parents, and "left" has to choose among many siblings and mates. Our current solution required considerable experimentation and redesign. We find it interesting and usable, and would appreciate feedback.
Where to Learn More
Here is a screenshot. We should post a video as well.
Eisner et al. (2006) is a short paper about Dynasty, from InfoVis'06. You can also find a nice visual poster at that link with diagrams and details.
Feel free to contact us.
We have provided code to users on request. We are currently moving the source repository to a public site. Existing developers can access it here:
- svn co svn+ssh://kvetch.cs.jhu.edu/export/dynasty-svn/
We are currently designing a more general-purpose visualizer, which can handle not only graphs but other kinds of drawings (including animations). Drawings will be described as dynabases in the new version of Dyna. Thus, the elements of the drawing can be computed from other data, and will react to changes in those data.