Paper.js – Vector Graphics Scripting Framework
Besides being a wrapper for the "canvas", it has much more to offer like working with nested layers, groups, paths, compound paths, rasters, symbols, etc.
These items are handled and drawn automatically by Paper.js so you can focus on styling and/or modifying them.
It tries to use the code smartly for faster execution and less CPU usage.
The framework has methods for mouse and keyboard interaction. And, it has the well-known blend modes from Illustrator and Photoshop with JS emulation like: multiply, screen, overlay, soft-light, hard-light, color-burn, darken, lighten, hue, saturation, luminosity, color and more.