Growing Squares: Animated Visualization of Causal Relations Niklas Elmqvist * Philippas Tsigas † Department of Computing Science Chalmers University of Technology SE-412 96 G¨ oteborg, Sweden Abstract We present a novel information visualization technique for the graphical representation of causal relations, that is based on the metaphor of color pools spreading over time on a piece of paper. Messages between processes in the system affect the colors of their respective pool, making it possi- ble to quickly see the influences each process has received. This technique, called Growing Squares, has been evaluated in a comparative user study and shown to be significantly faster and more efficient for sparse data sets than the tradi- tional Hasse diagram visualization. Growing Squares were also more efficient for large data sets, but not significantly so. Test subjects clearly favored Growing Squares over old methods, naming the new technique easier, more efficient, and much more enjoyable to use. CR Categories: D.1.3 [Programming Techniques]: Con- current Programming; D.2.5 [Software Engineering]: Testing and Debugging; H.5.1 [Information Systems]: Multimedia Information Systems—Animations; H.5.2 [Information Sys- tems]: User Interfaces; I.3 [Computer Methodologies]: Com- puter Graphics Keywords: causal relations, information visualization, in- teractive animation 1 Introduction The notion of cause and effect is pervasive in human thinking and plays a significant role in our perception of time. Soft- ware systems, in particular parallel and distributed ones, are permeated by this causality, and the human mind is espe- cially well-suited to detect instances of this concept. For instance, we can all easily trace a rolling billiard ball back to the ball that struck it and set it in motion. However, as the number of actions and reactions in a system grows, it quickly becomes difficult to follow and gain an understand- ing of its general flow. Accordingly, a billiard table where all 16 balls are moving is impossible to comprehend fully in real- time. Traditional visualizations, notably directed acyclic ∗ elm@cs.chalmers.se † tsigas@cs.chalmers.se graphs (DAGs) and Hasse diagrams (also called time-space diagrams), can allay this problem somewhat, but become inefficient as a system grows due to their fine granularity; users can see the individual relations, but not get a good picture of the system as a whole. This paper presents a novel visualization technique based on animation, colors and patterns to provide an alternate graphical representation of causality in a system that fa- cilitates quick overview. By representing each process (i.e. active entity) in the system as a color-coded square, laid out in a suitable way, we intuitively “grow” each process as time progresses and have the events that causally relate them af- fect their coloring, somewhat akin to how color pools would spread out on a piece of paper (see Figure 1). We have de- veloped a visualization framework for causal relations that allows us to compare the Growing Squares method with tra- ditional Hasse diagrams (see Figure 2). In addition, this framework allows the user to select different visualizations of causal relations on the fly. A formative evaluation, using a focus group consisting of researchers working on distributed systems, was conducted at the onset of the project in order to identify the tasks as- sociated with causal relations and shape the design of the visualization. Furthermore, a user study was performed at the end to ensure the validity of our findings. Our results show that the Growing Squares method is significantly faster and more efficient than Hasse diagrams for sparse data sets, and more efficient also for dense data sets, but not signifi- cantly so. In addition, test subjects clearly favored Growing Squares over Hasse diagrams for all analysis tasks performed. Overall, the subjective ratings of the test subjects showed that the Growing Squares method is easier, feels more effi- cient, and is more enjoyable to use than Hasse diagrams. In modern usage, the notion of causality is associated with the idea of something (the cause) producing or bring- ing about something else (its effect). In general, the term “cause” has a broader sense, equivalent to an explanatory or reasoning tool. Identifying causal relations in a complex system can be the first step towards understanding the un- derlying mechanisms that determines the system’s laws. As such, causal relations cover a wide variety of software do- mains where causality might be of importance. More specifically, causal relations play a central role in parallel and distributed software development; they are used extensively in collecting and analyzing data needed to evaluate the correctness and the performance of such pro- grams. Visualization and debugging environments for paral- lel and distributed software commonly offer animated views of causal relations. The extensive use of causal relations in these fields comes from the fact that in such software sys- tems, only partial views of the complete set of programs can be taken at any time. Causally consistent views are the only way to construct a complete view of a whole distributed or parallel software system. For example, causal relations are