.

Size (KB)LanguageLast updatedLicenseDocsForum/Group Unit testsModularDependenciesSVG ParserWebGL rendererIE<9Node.jsTouch supportWatchersForksProject pageCode repositoryMinified size (KB)

.

.

pixi.js87JavaScript7/18/2014MIT- [1]-62691232http://www.pixijs.com/https://github.com/GoodBoyDigital/pixi.js/

.

Paper.js167-200PaperScript / JavaScript7/31/2014MIT- [2]4589474http://paperjs.org/https://github.com/paperjs/paper.js

.

Easel.js79JavaScript7/25/2014MIT-partial [3] [4]unofficial39191066http://easeljs.com/https://github.com/CreateJS/EaselJS

.

Fabric.js77-225JavaScript8/13/2014MIT- [5]3759656http://fabricjs.comhttps://github.com/kangax/fabric.js

.

two.js50JavaScript7/22/2014MIT--2782185http://jonobr1.github.io/two.js/https://github.com/jonobr1/two.js

.

CutJS38JavaScript5/31/2014MIT---68391http://cutjs.org/https://github.com/piqnt/cutjs

.

Canvas Query30JavaScript6/4/2014MIT--50450http://canvasquery.com/https://github.com/rezoner/CanvasQuery

.

canvg57JavaScript8/15/2014MIT---369--https://code.google.com/p/canvg/57

.

CGSG90JavaScript7/25/2014MIT---9029http://gwennaelbuchet.github.io/cgSceneGraph/https://github.com/GwennaelBuchet/SceneGraph.js

.

Graphics2D.js39JavaScript28/11/2014MIT, LGPL-partial202http://keyten.github.io/Graphics2D/https://github.com/keyten/Graphics2D

.

Scrawl.js175JavaScript8/5/2014MIT [6]- [7]-60http://scrawl.rikweb.org.uk/https://github.com/KaliedaRik/Scrawl.js

.

Cango79JavaScript8/13/2014Public domain-----http://www.arc.id.au/CanvasGraphics.html-

.

Konva.js127JavaScript2/27/2015MIT-partial34313http://konvajs.github.io/https://github.com/konvajs/konva

.

.

.

.

Inactive / Abandoned

.

.

Kinetic.js109JavaScript8/14/2014MIT, GPL V2-partial [8]3005627http://www.kineticjs.com/https://github.com/ericdrowell/KineticJS/

.

LibCanvas180JavaScript12/12/2013MIT, GPL V2 [9]AtomJS [10] [11]-37280http://libcanvas.comhttps://github.com/theshock/libcanvas

.

goo.js3JavaScript10/13/2013MIT- [1]-655http://www.storminthecastle.com/projects/goo.js/https://github.com/johnrobinsn/goo.js

.

CAAT284JavaScript7/2/2013MIT---590111http://hyperandroid.github.io/CAAT/https://github.com/hyperandroid/CAAT

.

Processing.js226Processing7/30/2012MIT-- [12]1613498http://processingjs.org/https://github.com/jeresig/processing-js

.

HTML 5 Canvas Library12JavaScript10/1/2012MIT--7-https://canvastoolkit.codeplex.com/https://canvastoolkit.codeplex.com/SourceControl/latest

.

jCanvaScript58JavaScript9/20/2012MIT, GPL V2- [13]-11419http://jcscript.com/https://github.com/apsavin/jCanvaScript

.

bHive37JavaScript6/25/2012GPL-----http://www.bhivecanvas.com/-

.

CAKE211JavaScript2/9/2012MIT---272--https://code.google.com/p/cakejs/

.

gury.js10JavaScript8/9/2011MIT- [14]-37021http://guryjs.org/https://github.com/rsandor/gury

.

Artisan.js17JavaScript8/20/2011MIT, GPL---556http://www.artisanjs.com/https://github.com/davidbrooks/Artisan

.

HTML Canvas Lib25JavaScript4/11/2011MIT- [13]---http://html-canvas-lib.sourceforge.net/http://sourceforge.net/projects/html-canvas-lib/

.

doodle.js84JavaScript12/23/2011BSD- [15]-22015http://www.lamberta.org/doodle-js/-

.

Mootools Canvas Library8JavaScript5/31/2010MITMootools--293-https://github.com/Mtillmann/mootools-canvas-lib/

.

Layered Canvas Library21JavaScript5/17/2010GPL V3---13--https://code.google.com/p/layered-canvas-library/

.

canto.js56JavaScript10/18/2010MIT-partial [16]-85--http://code.google.com/p/canto-js/

.

burst56JavaScript3/2/2009MIT-partial--74-https://github.com/osteele/burst

.

.

Size values comparison may be unfair as some libraries compress source and some don't

.

.

✓ = Yes, ✕ = NoWhy isn't Raphael included here?

.

.

Last updated: Aug 18, 2014The table only includes <canvas>-based libraries, not SVG ones.
For SVG libraries see Raphael.js, Bonsai.js, svg.js, Snap.svg, d3.js, etc.

.

20102011201220132014

.

Corrections/suggestions:How often is the table updated?Fabric.js

.

Easel.js

.

kangax@gmail.comOnce in 4-6 monthsPaper.js

.

orKinetic.js

.

@kangaxWhy isn't Three.js included here?Two.js

.

Pixi.js

.

The table only includes 2D libraries; Three.js is mainly a 3D one

.

.

Why isn't InfoVis library included here?

.

.

The table includes mainly general-purpose libraries; InfoVis is very specific (data visualization)

.

[1] Uses `document.addEventListener`
[2] http://paperjs.org/about/#browser-support
[3] Experimental/incomplete: https://github.com/CreateJS/EaselJS/issues/339
[4] https://github.com/CreateJS/EaselJS/issues/83
[5] https://npmjs.org/package/fabric
[6] two versions available: scrawl.js purely for canvas manipulation; scrawl+stack.js includes basic CSS3 3d manipulation.
[7] doesn't import svg files, but can use them.
[8] http://www.kineticjs.com/forum/viewtopic.php?f=4&t=1310&p=4030
[9] Only Russian — https://github.com/theshock/libcanvas/tree/master/Docs/Ru
[10] https://github.com/theshock/atomjs
[11] Getters/setters — https://raw.github.com/theshock/libcanvas/master/libcanvas-full-compiled.js
[12] Unofficial support — https://github.com/halfninja/node-processing
[13] https://github.com/paperjs/paper.js/issues/22
[14] __defineGetter__ — https://github.com/rsandor/gury/issues/12
[15] Object.defineProperties — https://github.com/lamberta/doodle-js/blob/master/build/doodle-debug.js
[16] ES5 getters/setters — http://code.google.com/p/canto-js/source/browse/trunk/canto.js