What is VWTk?

screenshot of VWTk showing multivariate annotation

VWTk stands for Virtual World Toolkit. It is a tool for visualizing information over 2D space. It is currently being developed for analyzing data from online virtual worlds, specifically ActiveWorlds. However, that is only one of its applications. VWTk is also an experiment in decoupling the logical and visual aspects of information visualization.

VWTk is being developed as a visualization engine that chooses not to worry about how things are to be drawn on the screen. By allowing users to specify a mapping from data to its visual representation, VWTk allows you full freedom to choose how things should look. This philosophy applies not just to static visualizations, but dynamic ones as well. VWTk lets you specify the logical part of what to animate, when to animate and how the animation should look but leaves the actual drawing to the drawing API.

How is that different from any visualization API?

Every visualization API makes assumptions about the range of visual representations available to you (e.g.: line, circle, polygon). In addition, it also assumes that each object has a limited number of attributes that can be changed (e.g.: line thickness, fill color). In addition, very often the visualization logic needs to be expressed using the visualization API as well.This may be completely adequate depending on the application, but it wasn't for me. I wanted a way to attach arbitrary new visual representations and attributes. I wanted a way to say 'show me importance using line stroke' and then later change that to 'show me importance by circle size' and finally 'tie metric x to importance' without worrying about the drawing API.

There needed to be a way to choreograph the dance between data and visualization without worrying about who exactly was going to perform it. The visualization logic shouldn't have to be re-written every time a better API is found.

That's right: VWTk is being written in a visualization API-agnostic manner.

Visualization API Agnostic

The version of VWTk you see here uses the excellent Piccolo toolkit, but VWTk doesn't know. You could replace Piccolo with Prefuse or Processing (why do they all start with 'P'?) and VWTk wouldn't care. There may be some features in Piccolo that you couldn't get with Prefuse. In cases like that, those features just wouldn't work. But the important thing is that you can simply switch from one to another without re-writing all your visualization logic. All you need to change are commands to the drawing API.

Is VWTk for me?

VWTk the tool is for end-users, but it is specialized for a particular type of data (spatio-temporal) in a particular application (virtual worlds).

VWTk the API is for programmers. At this point, if you cannot program in Java, you cannot take advantage of all the great features of this API.

In any case, this is an ongoing experiment and frequently entire chunks are removed and replaced with different code. The API will stabilize by the 1.0 release.