Counterpoint: Orchestrating Large-Scale Custom Animated Visualizations
Published at
VIS
| St. Pete Beach, Florida
2024
Abstract
Custom animated visualizations of large, complex datasets are helpful across
many domains, but they are hard to develop. Much of the difficulty arises from
maintaining visualization state across many animated graphical elements that may
change in number over time. We contribute Counterpoint, a framework for state
management designed to help implement such visualizations in JavaScript. Using
Counterpoint, developers can manipulate large collections of marks with reactive
attributes that are easy to render in scalable APIs such as Canvas and WebGL.
Counterpoint also helps orchestrate the entry and exit of graphical elements
using the concept of a rendering "stage." Through a performance evaluation, we
show that Counterpoint adds minimal overhead over current high-performance
rendering techniques while simplifying implementation. We provide two examples
of visualizations created using Counterpoint that illustrate its flexibility and
compatibility with other visualization toolkits as well as considerations for
users with disabilities. Counterpoint is open-source and available at
https://github.com/cmudig/counterpoint.