Recs.
Updated
ZIM is a general JavaScript Canvas framework to code creativity. It adds many components, conveniences and controls to a base of CreateJS including one-line drag and drop, multiple hit tests, dozens of components, style, accessibility, Generator for Processing-like relative drawing, user editable paths with animation, dragging on paths, tree-shaking, and much more. Supports chaining, dynamic parameters, and using regular parameters or a config object. There is a huge learn section and the code is constantly coming in at under half the code of other frameworks.
Specs
Pros
Pro ZIM supports chaining
It is quite common in ZIM to not even store an object in a variable as chaining is available for almost all methods and there are short chainable methods for most properties.
new Circle().center().drag();
new Rectangle()
.loc(100,100)
.alp(0) // alpha
.animate({x:200, alpha:1}, .5);
Pro ZIM has dynamic parameters
new Tile(new Circle(20, series(red, blue, green), 10, 10).center();
// tiles 10x10 circles with colors is series of red, blue or green
new Emitter([new Circle(), new Rectangle()]).center();
// emits random circles and rectangles
interval({min:1, max:3}, ()=>{});
// each interval is between 1 and 3 seconds
So passing in a series lets you pick in order, passing in an array lets you pick randomly, passing in a min/max range picks from the range, passing in a function picks the result of the function. These can be applied to all styles too.