BuddyGraph

Overview | Projects | Examples/Demos



BuddyGraph: The Early Days

This page contains:

  • Background info on the origins of BuddyGraph.
  • Samples of the spring/wire system, which BuddyGraph uses to lay out names.
  • Early images / proof-of-concept from the original system.


    Background

    BuddyGraph grew out of some code I wrote while running a GISP at Brown University in the Spring of 1999. The GISP investigated large scale websites, and as part of the course created a Java applet which graphed the Memex data set maintained by Rosemary Michelle Simpson of the Brown CS Department (see the Memex and Beyond website).

    Sometime in late 2000, I realized that email contained a similar structure to that used by the Memex dataset. I wrote a quick parser which generated data files for the memex visualizer we created in the GISP. Since then, I've rewritten all of the Java system, and expanded it in many ways. The concept, however, has remained the same since 2000: show a graphical representation of the data contained within any given email data set.


    Sample of Wire/Spring/Magnet Algorithm

    BuddyGraph uses a spring/wire algorithm to determine x and y coordinates for drawing nodes on the screen. Here is a sample of the spring/wire system running on a simple dataset. (I looked at annealing algorithms but determined the complexity was unsuitable, especially when running 4,000 nodes!)

    Proximity graph is a dataset of ideal connections of a ~100 node sample. Note that this example is not based on email headers; rather it is included as an example of the BuddyGraph applet running on a custom dataset.

  • view 800x600 quicktime animation (2.4 MB) (30 seconds; precomputed frames)
  • view 800x600 quicktime with names, and isolate nodes removed (3.4 MB)
  • view 800x600 quicktime without names, and isolate nodes (under 4) removed (1.3 MB)
  • view 800x600 quicktime with names, and isolate nodes (under 4) removed (1.8 MB)


    Original concept images

    This series of images shows an interaction with the early buddygraph system. In the center of each image is the principal - the person we're investigating. Shown around them are the individuals with whom the principal has known communications, and then past those people, the individuals with whom those people communicate. Clicking on any name causes them to become the principal and redraws all the names around them. These images start by looking at one individual (in this case, a friend of mine from the CS Department), and stepping through various people known by them.