Improvise is an environment for building and browsing visualizations of relational data. Like other visualization systems, Improvise enables users to load data, create views, specify visual abstractions, and establish coordinations interactively. Unlike other systems, Improvise provides a rich visual abstraction language that can be coupled with a shared-object coordination mechanism, thereby increasing the expressive power of both.
Improvise enhances data exploration by offering users fine-grain control over the appearance of visualized data while preserving their ability to work quickly and easily. Improvise combines a simple, direct coordination mechanism called live properties with a more powerful, indirect coordination mechanism called coordinated queries. The combination is a significant improvement over existing coordination approaches because it enables users to define complex interactive dependencies between the appearance and behavior of views.
In Improvise, a symmetric update and notification mechanism connects views and other controls through shared objects. Controls interpret the shared objects as basic formatting information (colors, fonts, etc.), limits to abstract spatial extent (ranges, angles, etc.), data, and data querying operations (projections, filters, etc.) Visual abstractions are created by projecting and filtering data using expressions that can themselves be defined in terms of shared objects. By editing the expressions used by views to project and filter data, users are able to customize the visual and spatial abstractions that specify what data to draw, how to draw it, and where to draw it in a visualization using a wide variety of coordination patterns.
Improvise also supports metavisualization, in which the interactive structure of coordinated visualizations can be explored and analyzed by visualizing it in situ, directly in the visualization interfaces themselves.
Improvise is written in Java. Visualizations are saved to and loaded from disk as serialized XML documents (using Xerces). Improvise and the documents it produces are platform-independent.