Ask HN: Canvas Drawing Library

16 points by maresca ↗ HN
I'm currently testing out Canvas JS libraries. I'd like to build a simple paint type of web app using Canvas and JS. I'd like to be able to create layers, draw, erase, etc. I tested out PaperJS, but it seems PaperJS is more geared towards SVG and fails at erasing. What popular Canvas JS libraries is everyone using nowadays?

12 comments

[ 3.1 ms ] story [ 38.0 ms ] thread
If you're building something simple, why not just use the HTML5 Canvas API?

There's no reason to overcomplicate things, and it'll give you fine control over how things work and what you expect it to do. Layers and whatnot are pretty simple to implement a rough cut of, so why make things complicated?

Going with the native Canvas API is where I'm heading. I've used RaphaelJS in the past. This week I've tested out PaperJS and FabricJS. I'm trying to save some time and code manageability with a framework.
If you loved RaphaelJS you'll probably like Snap.svg [1] aswell. It's originally authored by Dmitry Baranovskiy (Raphael's author) and sponsored by Adobe.

[1] http://snapsvg.io/

I am a big fan of pixi.js (http://www.pixijs.com). I haven't explored its "erasing" capabilities, but it is a great library for performant 2d graphics programming in the browser.
I prefer PixiJS (http://www.pixijs.com), it comes with a ton of primitives and renders efficiently even on mobile. I've created layered drag-and-drop webapps with Pixi, draw & erase would not be much different.
I've allways been a fan of kineticJS (now Konva). Seems the most extensible and can handle a lot of objects.