Processing.js

Processing.js is a JavaScript port of Processing, a programming language designed to write visualizations, images, and interactive content. It allows web browsers to display animations, visual applications, games and other graphical rich content without the need for a Java applet or Flash plugin.

Processing.js uses JavaScript to render 2D and 3D content on the HTML canvas element, and is supported by browsers that have implemented this element (the latest versions of Mozilla Firefox, Opera, Internet Explorer 9, Safari and Google Chrome).

The development of Processing.js was begun by John Resig and then picked-up by students at Seneca College after its initial release in 2008. A team of students finished the port of Processing.js, fixing more than 900 bugs, shipping 12 releases, and creating a vibrant community in the process. The project was done through a partnership between the Mozilla Foundation and Seneca College, led by David Humphrey, Al MacDonald, and Corban Brook. The students continue to maintain the project Processing.js

https://www.khanacademy.org/cs/ Great Online teaching resource uses processing.js

http://sketchpad.cc/ - Allows for online collaborative programming of Processing sketches. Has several great features for dojo - ability to track code revisions over time (see progressive elaboration at work), set up a "studio" area for a particular dojo or class, and tons of shared programs available for study.