a 3d, live, dynamic visualization for social interaction online



In the real world, we interact with other people naturally. We are social creatures, and as such, have developed certain skills for understanding the social interaction that we see played out before us. These skills allow us to "read" groups of people by watching them--picking out, for example, the punk rocker or the pregnant mother from the mass of people who walk down the street--as well as interacting with with them--determining, for example, who the active participants are in a conversation group at a cocktail party and joining a group in which they are members.

Much of this ability stems from the dynamic, visual image that the crowd creates in the real world. We are at a loss, however, when we want observe the same social interaction phenomena in an online environment. Graphical chat systems provide one means for seeing the patterns that emerge from personal interaction, but people must all be using the same graphical chat client to be part of the observable group. There are myriad people that currently inhabit non-graphical chat systems, such as IRC or MUDs and MOOs. How can we gain an understanding of the social dynamic that takes place there? Can we leverage visual techniques to make clear those patterns of interaction that are invisible in the textual interface?

In this project, I propose a 3d, dynamic visualization for a text chat room. This system observes and portrays a live IRC channel, providing the viewer an opportunity to actually see what is going on within that social environment.


In preparing for this project, I first investigated some pure visualization ideas:

Here we show slices of time, perhaps each 1/10 of a second long, that portray aggregate data over that time period. We can have points on a circle, and each point has a theta, radius, hue, saturation, brightness, and alpha. Time flows backwards, and each time slice is added to the front, so that we have a constantly changing profile of the data that we are viewing. To add a dynamic quality to the visualization, we can show more information in the speed with which a point moves in and out of the circle.

This visualization is much like the cylindrical one above, however to clean up the visual display, lines are now shown along the horizontal axis instead of wrapping around a cylinder. Time still flows backwards. By changing the way the lines are displayed we create a cleaner chart, without the chart junk that Tufte warns us against.

How can we view multiple groups at once? In this view, we show each group on a face of a cube. This allows us to see multiple groups at once in a simple manner, a la Tufte's "small multiples."

While the interfaces above show short-term history for the chat room, we also want to portray long-term information, perhaps over a series of hours or days. In this view, the short-term information streams back in the z-axis, while the long-term, compressed view stream up the y-axis.

This is a much more abstract visualization. Each person is plotted on a horizontal disk. When an event occurs, a tentacle shoots out of their position and curves out and down. The width, length, saturation, brightness, and alpha, and particularly speed of movement of the stalk are all mappable dimensions of this visualization. We can also have stalks interacting with each other, perhaps wrapping around each other or being attracted, to signify related events.


The project takes certain social interaction measurements, both for the group as a whole and the individual, and portrays them in a 3d graph. The visualization portrays a live view of an IRC channel, dynamically portraying the social interaction within the group. Due to time constraints, I was unable to make available an applet version of this visualization. Below are screenshots of the interface in action. Please contact me at if you would like to have a live demonstration of the system. CoterieGL was implemented in Java, using the Magician OpenGL interface and a 950Mhz Athlon with a GeForce GL card.

Each person is given a hue. When a person posts a message, their distance from the horizontal will increase relative to the length of their message. Their color will become more saturated based on their participation rate in the channel. Over time, this saturation will become less if the person doesn't post. Each horizontal line represents second of activity in the group.


Through this visualization, we can begin to see some of the interesting social patterns that emerge in an online environment. For example, we can see that there are only a few people in this group of many that are actually talking. Further, most of the people post only small messages, and the activity is very sparse (no change in the height of the spike). These are basic aspects of the interaction that might become known in a text interface, but would require watching the channel for some time to see. With the visualization, we can make these characteristics apparent very quickly. Further, we can encode a good deal more information in this interface--many of the visual dimensions discussed in the ideas section are still not mapped to data from the channel.

Further work should be directed towards creating a sensible mapping for other statistics, as well as providing a longer term history view in the same display.