Metavisualization is exploratory visualization of coordination and other interactive structure directly inside a visualization's own user interface. Different kinds of visualization users might use metavisualization in different ways: end-users can use metavisualization to learn how to interpret and manipulate existing visualizations; designers can use metavisualization to design, build and debug visualizations; developers can use metavisualization to design, implement, evaluate, and optimize visualization systems; and researchers can use metavisualization to explore, evaluate, and formalize visualization techniques.
Metavisualization is implemented in Improvise by representing the structure of each running visualization as relational data. The views, coordinations, and screen layout of each visualization is translated into tables of records. These tables are dynamically updated to capture the ever-changing interactive state of the visualization. Additional tables record a history of high-level (variable change, query, render) and low-level (keyboard, mouse, painting) events in each visualization, such as for use in re-visualization of interactive events within their spatial context.
Metavisualizations are like any other Improvise visualization except that they are built upon these dynamically-maintained internal tables rather than those read from external sources. Metavisualizations use the existing Improvise coordination architecture and view library to reveal the evolving structure of its highly-coordinated visualizations during interactive data exploration. Metavisualizations are even composable and reusable across Improvise visualizations.