When comparing Snap.svg vs p5.js, the Slant community recommends p5.js for most people. In the question“What are the best JavaScript drawing libraries?” p5.js is ranked 2nd while Snap.svg is ranked 7th. The most important reason people chose p5.js is:
Reference documentation and lots of examples are available directly on the [website](http://p5js.org/).
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 Accessible documentation
Reference documentation and lots of examples are available directly on the website.
Pro Great community
p5 users benefit from the Processing community's 15+ years of growth and discovery. Processing code can easily be converted to p5.
Pro General programming concepts
As a continuation of the Processing project, this frameworks helps in understanding the general programming concepts that goes beyond drawing (connecting electronics, using sounds or the webcam etc),
Pro Easiest to learn to obtain high grade results
In a few days any body can understand extremely complex figures in a few minutes.
Pro A lot of YouTube tutorials
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.
Con No built-in rendering
If looking for something to build UIs with or similar, one might be disappointed by the lack of any pre-defined UI element objects and such in p5.js. One has to write all the rendering code for any objects one includes, integrating it appropriately with the loop.
