When comparing Snap.svg vs ZIM, the Slant community recommends Snap.svg for most people. In the question“What are the best JavaScript drawing libraries?” Snap.svg is ranked 7th while ZIM is ranked 29th.
Ranked in these QuestionsQuestion Ranking
Pros

Pro Pure SVG library
Pro Written by a SVG Guru and pioneer
Dmitry Baranovskiy also wrote Raphael (project now owned by Sencha), this is the updated modern version of that library. Dmitry also is a champion directly affecting the future of SVG standards with W3C

Pro Backed by Adobe
Adobe is backing the development of snap.svg
Pro Features
Supports the newest SVG features like masking, clipping, patterns, full gradients, groups, and more
Pro ZIM lets you write less code
Here is a chart of examples showing ZIM at 37% less code the developer writes when compared to other frameworks such as PixiJS, Flutter, CreateJS, PaperJS, P5js, Phaser and the DOM.
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.
Pro ZIM has Style on the Canvas
Style = {
color:red,
Button:{
color:blue;
}
}
new Circle().center(); // red
new Button().center(); // blue
Pro The ZIM DUO technique of providing regular parameters or a configuration object literal is very handy.
For instance:
new Rectangle(100,100,undefined,undefined,undefined,20).center();
or
new Rectangle({width:100, height:100, corner:20}).center();
Cons
Con Not actively developed
During 2016 was few updates, more updates in 2017
Con Spotty exporting
Exporting doesn't work well (if at all sometimes) with SVGs exported from anything other than Adobe products.
Con Weak documentation
Explanations provided in the documentation can often be unclear, with some features missing from the documentation all together.
