aiSee: Graph Animation

aiSee employs two different animation concepts. First, some internal layout calculations can be animated under the control of some options. Second, the entire aiSee tool can be used as an animation handler which animates a sequence of graph specifications (this is currently only supported by aiSee 2).

Animation of layout phases (aka smooth transitions)

Smooth transitions If a new layout is calculated for a graph and if animation of layout phases is turned on, the nodes move smoothly from their initial positions in the layout to the newly calculated ones, enabling the user to keep visual track of layout changes (see example). The GDL graph attribute amax: Int specifies the maximum number of animation steps. This number can be changed interactively in the View dialog box. Specifying 0 means animation is turned off.

Animating sequences of graphs

PAG Anim aiSee 2 can be used as an animation handler to animate a sequence of graph specifications. (Note that this has nothing to do with the -multi option.) For example, a program can continuously output GDL specifications to a file. When the program has produced one instance of output, it informs aiSee that the graph specification is available. Then aiSee displays the new instance of the graph. After visualization, aiSee indicates completion to the program generating the graph specifications, thus enabling the program to output the next graph specification.

Consequently, the program and aiSee represent a client-server model. The program calls aiSee with the option -a Int. After relayout, aiSee sleeps for Int seconds, then it attempts a callback to the parent process. aiSee has to have been started with the option -ddemsg (Windows) or -x11msg (Unix). Then the program and aiSee communicate with one another as a server and client. The Windows version communicates over a Dynamic Data Exchange (DDE) channel, the Unix versions use user signals.

Here is an example of a Unix shell script that uses aiSee 2 to animate all GDL files in the directory it is called from:

#! /bin/sh
files=`ls *.gdl`
tmpnam=`mktemp /tmp/temp.XXXXXX`

cat <<EOM > $tmpnam
graph: { title: "" }
EOM
aisee -a 1 $tmpnam &
pid=$!
sleep 2

for f in $files; do
    echo $f
    cp $f $tmpnam
    kill -s SIGUSR1 $pid
    sleep 3
done

rm $tmpnam
kill $pid

The following command line options are available:

These options are currently not supported by aiSee 3.