Also read this important notice. For a summary of the input format used, read this short note.

NoodleView is a prototype for the interactive visualization of multivariate state transition graphs. It addresses the size and complexity of typical transition graphs by offering interactive attribute-based clustering. A number of other interactive features to facilitate exploration are also provided.

We described our approach in a paper for InfoVis 2006:

Visual analysis of multivariate state transition graphs
A.J. Pretorius and J.J. van Wijk
IEEE Transactions on Visualization and Computer Graphics, vol. 12, no. 5, pp. 685-692, 2006.

What are state transition graphs?
State transition graphs (also called state transition systems or state spaces) play an important role in Computer Science. They are used to describe the behavior of computer-based systems whose states evolve over time. A state transition graph consists of a number of nodes that represent the different states that a system can be in and a number of directed edges that represent transitions from one state to another.

Why visualize them?
Conceptually, state transition graphs are relatively simple structures. However, for modern computer-based systems they tend to be quite large. They often contain tens of thousands of nodes, or more. In the literature this is referred to as the state-explosion problem. As a result, their complexity increases and it becomes difficult to study the systems they model.

One approach for studying large state transition graphs is to visualize them. We have seen that giving a visual form to something abstract enhances communication between users. Visualization also enables users to get a better intuition about the systems being modeled, even if they don't have specific questions they want to answer. By enabling the user to interact with the visualization, it is also possible to analyze specific features and to answer specific questions.

OK, this sounds plausible, but couldn't you have come up with a better name?
I used NoodleView as a codename because the arcs reminded me of noodles. When I mentioned changing the name to Aad Mathijssen at lunch one day, he gave me a serious dose of the evil eye and then exclaimed: "what do you mean you're not going to call it NoodleView!?". This was the start of a long and emotional plead and the name stuck.

How does NoodleView work?
To try out NoodleView, download the program here (also read this notice). The program, as well as a number of files needed to run it, are all in a single zipped archive. You can extract these files anywhere on your hard drive.

When you have extracted and started up NoodleView, you should see the following (without the visualization).

To visualize a state transition graph, proceed as follows:

1. Load an FSM file by choosing File > Open. You can now browse to your favorite FSM file. (Some sample FSM files were included in the zipped archive and should be located in NoodleView/Samples after extraction.)

2. After the file has been parsed, you have to select a number of attributes on which to perform clustering in the check list at the top right (a).

3. After a number of attributes have been selected, clustering is performed by pressing the Cluster button at the bottom of the right-hand pane.

4. After the transition graph has been clustered, you will see it visualized in NoodleView's visualization window. At the top of this window is the clustering hierarchy, visualized as a node-link diagram (d); in the center is the abstracted transition graph resulting from clustering, visualized as an arc diagram (e); and at the bottom the number of nodes in every cluster of the clustering hierarchy is visualized as a bar tree.

5. It is possible to interact with the different elements in the visualization by left- and right-clicking with the mouse. To define focus regions, hold down the CTRL-key while interacting with the mouse buttons and scroll-wheel. Some of the visualization parameters can be set in the tabs on the right-hand side.

6. You can view the types associated with every attribute (b) and the domain of every type (c). Domains can be clustered be selecting a subset of the values at the lower right and pressing the Cluster button at the far right.

Thank you for checking out NoodleView!

For feedback, comments or suggestions, please contact Hannes Pretorius. NoodleView was developed by Hannes Pretorius and Jack van Wijk at the Eindhoven University of Technology. This research was done as part of the VoLTS project, funded by the NWO. This project is a collaboration between the TU/e Visualization and Systems Engineering research groups. We thank the members of these groups for their input and suggestions.

 Important notice: We experienced problems running our prototype on PCs with ATI Radeon X300 Series graphics cards running Catalyst Version 4.11. The problem was solved by downloading and installing the latest drivers from ATI (Catalyst Version 6.3 at the time of this posting). If you experience problems we recommend updating your graphics drivers.