Curated list of awesome lists
Awesome Canvas
A curated list of awesome Canvas examples, related articles and posts. Inspired by awesome-python.
Contributing
Please take a quick gander at the contribution guidelines first.
Summary
Canvas
Definition
"Added in HTML5, the HTML <canvas> element can be used to draw graphics via scripting in JavaScript. For example, it can be used to draw graphs, make photo compositions, create animations or even do real-time video processing or rendering." by Mozilla Developer Network
Examples
Some good examples about creation with canvas.
Libraries
To draw using canvas
-
Akihabara is HTML5 games library for making pixel based games using Javascript and the canvas tag.
-
Chart.js is a lightweight JavaScript library for creating dynamic and visually appealing charts using the HTML5 Canvas element.
-
ChemDoodle is an open source chemistry and chem-informatics toolkit where canvas is being used to solve common chemistry related tasks, displaying the molecules in a variety of different ways.
-
d3 (or D3.js) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML.
-
EaselJS is a JavaScript library that makes working with the HTML5 Canvas element easy. Useful for creating games, generative art, and other highly graphical experiences. EaselJS is part of CreateJS - a modular libraries and tools which work together or independently to enable rich interactive content on open web technologies via HTML5.
-
fabric.js provides interactive object model on top of canvas element
and also has SVG-to-canvas (and canvas-to-SVG) parser
-
iio.js - A javascript library that speeds the creation and deployment of HTML5 Canvas applications
-
isomerjs - An isometric graphics library for HTML5 canvas
-
Javascript-Voronoi - A Javascript implementation of Fortune's algorithm to compute Voronoi cells
-
Konva - Konva.js is an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.
-
Origami.js - JS Lib to redesign canvas API interface
-
p5.js - p5.js is a JS client-side library for creating graphic and interactive experiences
-
Paper.js - Scriptographer ported to JavaScript and the browser, using HTML5 Canvas.
-
Pencil.js - Nice modular Javascript library with clear OOP syntaxe and lots of features.
-
Pixi.js - Super fast HTML 5 2D rendering engine that uses webGL with canvas fallback
-
Processingjs is a data visualization programming language.
-
Proton is a lightweight and powerful javascript particle engine. With it you can easily create countless cool effects
-
Pts.js - Pts is a javascript library for visualization and creative-coding.
-
Rough.js - Rough.js is a graphics library that lets you draw in a sketchy, hand-drawn-like, style
-
Scrawl-canvas - easily add multiple responsive, accessible and interactive <canvas> elements to a web page
-
Sketch - Cross-Platform JavaScript Creative Coding Framework
-
Three.js is a javascript library that makes WebGL - 3D in the browser, however you can render using canvas instead of WebGL
-
tsParticles is a lightweight library for creating easily particles animations. It includes ready to use components for the most used Javascript frameworks (ReactJS, VueJS, Angular, etc.)
-
Visualize is a JQuery plugin who creates charts and graphs from tabular data using the HTML canvas element.
-
zDog - Flat, round, designer-friendly pseudo-3D engine for canvas & SVG
-
ZIM - ZIM is a general Canvas Framework with simple, powerful JavaScript that lets everyone, from beginners to professionals, code creativity.
-
zrender - A lightweight canvas library which providing 2d draw for Apache ECharts (incubating)
For other purposes, but still use canvas
-
React Canvas - High performance rendering for React components.
Resources
Where to discover more about Canvas.
Talks
Books
Websites and Tutorials
-
Mozilla Developer Network Canvas Tutorial - This tutorial describes how to use the element to draw 2D graphics, starting with the basics. The examples provided should give you some clear ideas what you can do with canvas and will provide code snippets that may get you started in building your own content.
-
HTML5 Canvas Tutorials
-
31 days of canvas
-
Dev.Opera: HTML5 Canvas — the Basics - This article takes you through the basics of implementing a 2D canvas context, and using the basic canvas functions, including lines, shape primitives, images, text, and more. You are assumed to have mastered JavaScript basics already.
-
Breakout - a fantastic tutorial for any canvas programming wannabes, where he runs through the steps needed to create a Breakout clone. The tutorial consists of 12 very clear and concise steps, where you can view a demo of how your project should look so far.
-
Canvas Demos by David Walsh - 9 Mind-Blowing Canvas Demos with their respective source code.
-
Procedural Drawing in Canvas - a tutorial that explains more about how procedural drawing works so that others can also learn the skill and start producing their own patterns.
-
The canvas element in the HTML5 draft standard
-
Internet Explorer 9 Guide for Developers: HTML5 canvas element
-
Accelerated Game Programming with HTML5 and canvas - this tutorial describes the structure of a typical game class in JavaScript, drawing to the canvas, double buffering, map/tile representation and player movement.
-
Physics for Lazy Game Developers - Provides examples of velocity, acceleration, collisions, rotation and particle effects.
-
Draw Particles using HTML5 Canvas - Shortcut tutorial shows how create simple and colorful particles.
-
Create a game chracter with HTML5 and JavaScript - Part 1
-
Create a game chracter with HTML5 and JavaScript - Part 2
-
Khan Academy - Hour of Drawing with Code
-
Making a Lunar Lander in JavaScript - A 5 lesson tutorial that explain how to make a Lunar Lander game in JavaScript.
-
W3Schools Canvas Tutorial - Tutorial covering various features and methods and with many practical examples
License
The content of this project itself is licensed under the Creative Commons Attribution 3.0 license.