Hi Paul and Addy,
We'd welcome introductions to the Greensock, TweenJS, Paper.js and D3 teams. Feedback about the API from them would be very valuable. It's probably better to point them to the polyfill (
http://github.com/web-animations/web-animations-js) than to the specification.
We have been working with multiple product teams in Google to discover typical web application requirements regarding animations. We've also presented the API at The Graphical Web 2012, in a GDL video, at
linux.conf.au, and in a number of blog posts and articles. The feedback from web developers has been overwhelmingly positive, albeit mostly via word-of-mouth / twitter.
Some other important points:
* Web Animations is primarily a unification model - it seeks to enable CSS Animations, CSS Transitions, and SVG Animations to be expressed in terms of the same set of underlying primitives. A lot of the design decisions are directly drawn from existing web platform declarative animations APIs!
* Three of these JavaScript animations libraries have direct and trivial mappings into the Web Animations API. Conversely, most (all?) of the Web Animations concepts have close analogues in one or more of these libraries. I don't see any substantial differences here.
* These four animations libraries seem to be too different to each other to conclude that there is a coherent design aesthetic for JS animations libraries that Web Animations is departing from. For example, TweenJS is unique in exposing chaining as an approach to constructing animations. Paper.js provides a frame callback and doesn't seem to support declarative animations at all.
* We are working closely with the creator of Raphael.js, one of the earlier and very popular animations APIs on the web. Dmitry Baranovskiy is in fact one of the editors of the specification.
* Web Animations doesn't compete with these APIs. In some cases it may enhance them, by providing direct javaScript access to animations that will run in the compositor rather than on the main thread.
* The polyfill has been publicly available for months now, and we've presented in a number of fora and published multiple blog posts about it and the specification. The fact that the issue tracker isn't full of basic specification issues is, if anything, a sign that people are happy with our approach.
Divya:
We've looked at splitting the specification into phases before, in particular in response to feedback from Dean Jackson of Apple. There are some feature sets that we have successfully managed to split from the specification - <media> element integration will now be explored in a separate spec, as will extensions to the timing function model.
We also looked at splitting the model definition from the API. Unfortunately, it turns out that doing so has very real costs (in particular, keeping the two versions in synchronization as various parts move through WD and CR stages would be extremely difficult).
On the other hand, I think splitting the implementation into multiple phases and using feedback from each phase to help shape the progress of the specification is a great idea, and is something that my team is interested in doing. For example, we're currently concentrating on the parts of the model required to support CSS Transitions and Animations, and could certainly release just the subset of the API that deals with these parts in advance of building out SVG support. I guess this is one reason why starting to release parts of the API behind a flag is important to do soon :)
We do intend to provide more examples that demonstrate the use cases in the specification. We probably won't put these directly in the spec as we are trying to limit its size - do you think a technical note or similar would be acceptable?
Cheers,
-Shane