Research Projects

GMap is an algorithm for visualizing graphs as maps; the GMap visualization system is fully functional online. Information visualization can be invaluable in making sense out of large data sets. However, traditional graph visualization methods often fail to capture the underlying structural information, clustering, and neighborhoods. GMap, provides a way to overcome some of the shortcomings with the help of the geographic map metaphor. While graphs, charts, and tables often require considerable effort to comprehend, a map representation is more intuitive, as most people are very familiar with maps and even enjoy carefully examining maps. The effectiveness of GMap is illustrated with examples from several domains, namely TV shows, Amazon books, and music. The last map led to over 630K views on a stumbleuppon.

Lombardi is a new force-directed spring embedder for graph drawing, inspired by the style of the American artist Mark Lombardi. The main features that set our Lombardi spring embedder apart from other approaches are that straight edges are replaced by circular arcs, and that the arcs around each vertex are evenly spaced out. The objectives of this approach are to improve readability and aesthetic appeal of graph drawings. Initial user feedback strongly indicates the aesthetic appeal of this style of drawing, with some associated keywords being “more natural”, “balloon animals”, “blobby”, “cute and cuddly." A picture gallery and movie gallery illustrates the approach.

Semantic Word Clouds: A word cloud consists of the most important words in a text document. In a semantic-preserving word cloud, related words are placed close to each other. Words are scaled by a factor roughly proportional to their importance. The clouds can be modified with various fonts, layouts, and color schemes.
Maps of Computer Science: The MOCS project provides a method to visualize concept maps of topics from the DBLP database of computer science research papers. We use the titles of papers in the database to extract prominent words and phrases and calculate their similarity based on cooccurrence in titles. These terms are clustered and laid out based on their similarity values, providing a visual representation of topic space. Heatmap overlays allow us to visualize the profile of a time frame, conference, journal, or author over the base map. Also, different base maps can be created: maps that are representative samples of all papers available in DBLP, or maps limited to specific time frames, conferences, journals, or authors. MOCS makes topic maps of the field, heatmaps of various conferences (e.g., STOC), journals over time (e.g., JACM first decade vs last decade), as well as researchers and groups.
Citizen Scientists for Trajectory Analysis: We study the use of games and crowd sourcing to capture and analyze scientific trajectory data. We design games to employ citizen scientists to trace (i) static objects in images and (ii) moving objects such as ants or bees in video data. We study the challenging data validation problem of selecting for each object, one accurate trajectory from the several (possibly inaccurate) trajectories which are submitted by the citizen scientists playing our game. For numerical values finding the consensus of several estimates is easily done by taking an average . Computing the consensus of traces is not as straight forward. We design algorithm which use clustering, geometric alignment, sampling, as well as other methods for this purpose.
Algorithms for Cartogram Computations: Cartograms are used for visualizing geographically distributed data by scaling the regions of a map (e.g., countries in Europe) such that their areas are proportional to the data associated with them (e.g., GDP). Thus the cartogram computation problem can be thought of as a map deformation problem where the input is a planar polygonal map and an assignment of some positive weight for each region. The goal is to create a deformed map where the area of each region realizes the weight assigned to it (no cartographic error) while the overall map remains recognizable (e.g., the topology, the relative positions and the shapes of the regions remain the same). Since achieving no cartographic error and preserving map readability are impossible to achieve simultaneously, all the cartogram generation algorithms tolerate some error in one or both of these criteria. We define some quantitative measures that can be used to evaluate how faithfully a cartogram represents the weights, as well as several measures for evaluating the readability of the final representation. We then study several early algorithms for computing cartograms and two new ones and compare them in terms of our quantitative measures.
GraphSET is our Graph Simultaneous Embedding Tool. We developed this software in order to have a pracatical way to study several types of problems in simultaneous graph embeddings: simultaneous geometric embedding, simultaneous embedding with fixed edges, and colored simultaneous embedding. GraphSET can be used to study theoretical problems in simultaneous graph drawing and to produce drawings from known algorithms for these problems. The software and the code are available for download together with a user guide, screenshots, and simultaneous embedding challenges.

SMorph: Spherical Graph Morphing

is a project that deals with morphing of graph drawings on the surface of the sphere. We are interested in the problem of intersection-planar graph morphing, and in particular, a generalization from Euclidian space to spherical space. We show that under certain conditions, there exists a continuous and intersection-free morph between two sphere drawings of a maximally planar graph, where sphere drawings are the spherical equivalent of plane drawings: crossings-free geodesic-arc drawings. In addition to the existence proof, we describe a morphing algorithm along with its implementation.

GRIP: Graph Drawing with Intelligent Placement

is designed for drawing large graphs and uses a novel multi-dimensional force-directed method together with fast energy function minimization. The algorithm underlying the system employs a simple recursive coarsening scheme. Rather than being placed at random, vertices are placed intelligently, several at a time, at locations close to their final positions. The running time and space complexity of the system are near linear. The implementation is in C using OpenGL for 3D viewing. GRIP allows for drawing graphs with tens of thousands of vertices in under one minute on a mid-range PC. To the best of the authors' knowledge, GRIP surpasses the fastest previous algorithms. However, speed is not achieved at the expense of quality as the resulting drawings are quite aesthetically pleasing. For a sample of what GRIP does, take a look a few animated examples.

TGRIP: Temporal Graph Drawing

is an application designed for interactive visualization of large weighted graphs that have a temporal component. TGRIP is designed for drawing large graphs and uses a novel multi-dimensional force-directed method together with fast energy function minimization. The algorithm underlying the system employs a simple recursive coarsening scheme. Rather than being placed at random, vertices are placed intelligently, several at a time, at locations close to their final positions. In most applications it is necessary to be able to visualize graphs in which vertices/edges have weights. The layout component should take into account these weights while doing the placement. A pair of vertices connected with a large weighted edge should be placed closer to each other than another pair with smaller edge weight for example. TGRIP handles this by introducing the weight concept to the general force-directed method. The graphs that we are interested in evolve through time. The changes in the graph include adding and removing vertices/edges. TGRIP allows us to control the tradeoff between readable drawings and mental map preservation between consecutive drawings. Finally, the system generates smooth animations between consecutive time steps.

GraphAEL: Graph Animations with Evolving Layouts

extracts three types of evolving graphs from the Graph Drawing literature and creates 2D and 3D animations of the evolutions. We study citation graphs, topic graphs, and collaboration graphs. We also create different graphs which capture the nature of change between two given time periods.


is a system that implements several classic force-directed layout methods, as well as several novel layout methods for non-Euclidean geometries, including hyperbolic and spherical. The system can handle large graphs, using multi-scale variations of the force-directed methods. Finally, the system can layout and visualize graphs that evolve though time, using static views, animation, and morphing. The current system is equipped with a core package of force-directed algorithms and visualization tools. In addition to putting together well-known algorithms and visualization methods, graphael contains several novel features. Some of these features include support for temporal graphs, interactive graph visualization, multi-scale layout algorithms for large graphs, and embedding graphs in non-Euclidean spaces, such as hyperbolic space and spherical space.


is a multi-user game utilizing a DiamondTouch table. The DiamondTouch table is a touch-sensitive input device that allows several users to interact with a program at the same time and do so using their hands. We describe our exploration of the capabilities and limitations of the DiamondTouch by focusing on TetraTetris, one of the first nontrivial applications written specifcally for the DiamondTouch hardware. TetraTetris is a multi-player game, loosely based on the popular game Tetris, in which players use their hands to manipulate objects moving around on the table; it illustrates some of the table's key advantages and drawbacks by comparison with conventional input hardware. In this paper we describe the DiamondTouch hardware, the rules of TetraTetris, the problems we encountered implementing it, and what TetraTetris can show us about the future of input devices like the table.

Simultaneous Embedding

Simultaneous Embedding
is a new graph theoretical problem. This project deals with the simultaneous embedding of multiple planar graphs. The goal is to produce aesthetically pleasing drawings for the two graphs by means of a heuristic algorithm and with human assistance. Our implementation uses the DiamondTouch table, a multi- user, touch-sensitive input device, to take advantage of direct physical interaction of several users working collaboratively. The system can be downloaded or the corresponding applet can be used online.

GMorph: Intersection Free Morphing of Planar Graphs

is an implementation of an algorithm for morphing of planar graphs. Morphing refers to the process of transforming one shape (the source) into another (the target) In planar graph morphing we would like to transform a given source graph to another pre-specified target graph. A smooth transformation of one graph into another can be useful for numerous problems from graph drawing. In particular, when dealing with dynamic graphs and graphs that change through time, it is crucial to preserve the mental map of the user. Thus, it is important to minimize the changes to the drawing and to create a smooth transition between consecutive drawings. Another important goal is to avoid creating any intersections throughout the morph. We designed and implemented an algorithm that can morph between drawings with straight-line segments, bends and it relies on a combination of techniques to achieve smooth transformations: rigid morphing, compatible triangulations, as well as morphing based on interpolation of the convex representations of the graphs. Here is a short (5 min) but large (200MB+) video overview of the project.

SIMG: Simultaneous Graph Drawing

Consider the problem of drawing and displaying a series of related graphs that share all or parts of the same vertex set. The graphs may represent different relations between the same set of objects. SIMG illustrates different approaches to simultaneous graph drawing. We have developed and implemented three different techniques for laying out a series of graphs to be simultaneously embedded. We have also designed and implemented three different schemes for visualizing multiple graphs. While each of these visualization schemes corresponds closely to one of our layout algorithms, any combination of a layout algorithm and a visualization scheme can be used. When visualizing a series of graphs that share all or parts of the same vertex set, it is important to display the graphs in such a way that the user can either focus on one graph at a time without being confused by the other graphs in the series or visualize the layouts of multiple graphs at the same time to get a mental map between the different relations represented by each graph.

Fat-Edges Graph Drawing

Traditionally, graph drawing algorithms represent vertices as circles and edges as closed curves connecting the vertices. In this paper we consider the problem of drawing graphs with edges of variable thickness. The thickness of an edge is often used as a visualization cue, to indicate importance, or to convey some additional information. We present a model for drawing with fat edges and a corresponding polynomial time algorithm that uses the model. A short movie and paper illustrate the algorithm.

SPLaT: Self-Plagiarism Tool

is a tool for self-plagiarism detection. The current version of SPlaT functions as a web spider that crawls through the web sites of fifty Computer Science departments, downloading research papers to search for instances of self-plagiarism by Computer Science academics. Instances of self-plagiarism for each author are reported so that they may be investigated in order to determine if they are truly fraudulent papers.

[ Home | Projects | Papers | Teaching | CV | Colleagues | U of A | U of A CS ]