Canis decouples specification from implementation and enables concise, high-level specifications of expressive chart animations.
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.
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.