Canis - A Language for Data-Driven Chart Animations

Canis brings your charts to life. It provides an easy-understanding JSON syntax, and generates animations of the given visualization charts to support storytelling or analysis. Canis can describe and create animations in a declarative format. To use Canis, our compiler compiles the specification into a corresponding relation between time and visual attributes of the graphical marks in charts. Then it generates Lottie JSON file to enable rendering natively on iOS, Windows, and Web.

High-level Specifications

Canis decouples specification from implementation and enables concise, high-level specifications of expressive chart animations.

Meaningful Partitions and Sequencing

Canis treats all data-encoded marks as one unit and partitions it into a set of elementary mark units in terms of data attributes. Mapping each unit to one time interval facilitates a meaningful ordering of animation sequences.

Cross-platform Deployment

Canis is able to target multiple platforms including Android, iOS, Web, and Windows. The ability to compile Canis specifications to widely-used animation specifications allows to natively run the animations on different platforms, making it easier for developers.