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.
- 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
- 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.
- 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
- 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
- zrender - A lightweight canvas library which providing 2d draw for Apache ECharts (incubating)
For other purposes, but still use canvas
- React Canvas - High performance
Resources
Where to discover more about Canvas.
Talks
Books
- [@jeresig](https://twitter.com/jeresig) - Creator of Processing.js
- [@mrdoob](https://twitter.com/mrdoob) - Creator of three.js
- [@soulwire](https://twitter.com/soulwire) - Creator of sketch.js and actively creating and sharing canvas/WebGL experiments
- [@spielzeugz](https://twitter.com/spielzeugz) - Actively creating and sharing canvas experiments
- [@paul_irish](https://twitter.com/paul_irish) - Active contributor and write a reference post about requestAnimationFrame
- [@end3r](https://twitter.com/end3r) - HTML5 game developer and EnclaveGames indie studio founder
Websites and Tutorials
- Mozilla Developer Network Canvas Tutorial - This tutorial describes how to use the
- 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 - A good font to study canvas. You can find application, games, tools and tutorials for the canvas HTML5 element.
- 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.
License
The content of this project itself is licensed under the Creative Commons Attribution 3.0 license.