from Hacker News

Ask HN: Canvas Drawing Library

by maresca on 10/8/15, 5:48 PM with 12 comments

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?
  • by doublerebel on 10/8/15, 7:59 PM

    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.
  • by angersock on 10/8/15, 6:05 PM

    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?

  • by lochlan on 10/8/15, 7:55 PM

    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.
  • by fgtx on 10/8/15, 9:36 PM

    In simple cases like you described, you can always create your own. I've done something sorta like that in here: https://github.com/felipegtx/Raska
  • by skuunk1 on 10/8/15, 10:08 PM

    If you have an ActionScript background, I highly recommend Easel JS.

    http://www.createjs.com/easeljs

  • by jvanveen on 10/9/15, 7:49 PM

    i really liked to use fabric.js(http://fabricjs.com) for a small collaborative drawing tool(https://github.com/wearespindle/dotd). It runs both on node.js and in the browser, has pretty awesome serialization options and has all batteries included in general.
  • by Aaronneyer on 10/8/15, 6:38 PM

    Check out LiterallyCanvas: http://literallycanvas.com/
  • by irenkai on 10/9/15, 11:53 PM

    I've allways been a fan of kineticJS (now Konva). Seems the most extensible and can handle a lot of objects.
  • by gandydancer on 10/8/15, 10:12 PM