Settings

Theme

Ask HN: Canvas Drawing Library

16 points by maresca · 12 comments · 1 min read


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?

9 threads
doublerebel

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.

angersock

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?

  • marescaOP

    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.

    • mindcrash

      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/

lochlan

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.

fgtx

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

skuunk1

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

http://www.createjs.com/easeljs

jvanveen

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.

Aaronneyer

Check out LiterallyCanvas: http://literallycanvas.com/

  • marescaOP

    Excellent example, thanks! Looks like that has a dependency on React. I'm currently trying out Angular but I'll give this a shot too.

irenkai

I've allways been a fan of kineticJS (now Konva). Seems the most extensible and can handle a lot of objects.

gandydancer

How about http://fabricjs.com

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection