Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m planning to make a fairly simple drawing app in the browser. I\'m looking f

ID: 660252 • Letter: I

Question

I'm planning to make a fairly simple drawing app in the browser. I'm looking for a Javascript library that:

Has a permissive license (MIT or BSD, GPL is okay but not preferred)

Makes it simple to draw on the canvas, for example something like this:

canvas.init($("#my_canvas"), {"mode": "drawing"});

Supports touch out of the box (bonus points for multitouch/zoom)

Bonus points for doing it in a vector-style format

Getting the paths/points from the canvas should be possible/easy

I've found a couple that look promising (EaselJS, FabricJS), but I haven't investigated too deeply yet. For an existing example of the kind of thing I'm interested in, Xournal is a desktop version, though I'm also rather interested in the idea of infinite canvas (see MyPaint, though it's raster-only)

Explanation / Answer

Here are a few libraries that fit your criteria of search.
Pixi.js

Pixi is a Canvas rendering interface, which in my opinion is FAR better than other rendering engines.
Features:

MIT Licensed
Multi-touch interactivity
Full scene graph
Multi-platform
Sprite Sheet Support
Renderer auto-detect
Text support

Resources:

Website
GitHub
Documentations
Examples

Phaser:

MIT Licensed
Though Phaser is essentially a Game Framework it can most well be used for building Interactive applications like Paint. It uses Pixi.js as it's canvas interface. And has much more capabilities than Pixi, eg. has a Button class to build just buttons.
Links

Website
Github
Documentations
Examples