Declarative animation in VG.net

Hart asked a couple interesting questions in the last blog entry.

“Are you going to add some higher level animation api, like svg and avalon have”: we call this declarative animation, where you declare animation, instead of writing code.

Currently, you animate VG.net vector graphics by changing properties, in the Display timer event, or at any time. This is an excellent way to do animation if you are visualizing real-time data.

However, it is not so great for demos, cartoons, transitions between states, or advertising. Out of all these, we are only concerned with demos and transitions between states. We did not want VG.net to be a Flash replacement – people generally hate Flash ads.

We would like to add these things to VG.net, eventually:

  • A way to connect Pictures to real-time data, to animate without writing code.
  • A way to specify transitions between states for any graphical property. For example, gradual transition between various colors, based on an input value, or a transition between two positions on the screen.
  • A way to specify simulated data, for demonstrations, without writing code.

All of these require higher-level declarative animation objects. However, they will not necessarily look like SVG or Avalon animation objects. Our primary target is real-time data visualization, so we will produce an API and editor suited to that purpose. A secondary target is custom graphical controls, but these typically do not use fancy animation.

We did do some work on real-time data binding, but it has not made it into the product.

“How many man years would you estimate has gone into the development of this product”: Probably about 4 person years. Some of the ideas in the engine originated many years ago. We have much experience with vector graphics systems and editors, but Visual Studio integration was very difficult.

3 Comments

  • Both SVG and XAML animation are based on SMIL (Synchronized Multimedia Integration Language ) Animation Modules, although both are not exact implemenations of the spec. I would hope that you reuse as much as possible from SMIL, as it is a very easy model to understand (once you get the hang of declarative coding).

  • Yes, a good spec for multimedia, and good for transitions, but not necessarily what we want as the object model for real-time data binding.



    Visualize this a bit: a data flow diagram, with data sources feeding into transition objects, that modify properties on graphical objects. If you think of a simplified function block diagram, you will have an idea. Or perhaps you are familiar with LabView, or Simulink. The same concept.



    People who create cartoons and advertisements have different needs from people creating screens displaying real-time data.

  • Don, forgot to say thanks. Your opinion is important. We will take a hard look at that spec when we start to implement declarative animation. The first release of VG.net will not include that feature.

Comments have been disabled for this content.