
Created by Jürg Leni and Jonathan Pupay,
Paper.js is an open source vector graphics scripting framework that runs on top of HTML5 Canvas. It offers pure Scenegraph / DOM and many bright features to create and work with vector graphics and Bezier curves.
Paper.js is based on and is largely compatible with Scriptographer, the script environment for Adobe Illustrator, originally developed by Jürg and Jonathanan for over 10 years.

Feature Overview:
- Scene Graph / DOM for vector graphics: Working with nested layers, groups, paths, rasters, symbols, etc.
- The processing and drawing of these graphic elements is automatic and optimized, allowing you to create or modify your elements and styles and leave the Paper.js drawing commands.
- Well designed and battle-hardened programming interface.
- Paper.js offers the best Vector Math through its basic types, such as Poin, Size and Rectangle.
- PaperScript, a simple JavaScript extension, allows large-scale execution of scripts, without contaminating the global scope, repeated execution of scripts per page in their individual packed sandboxes, sharing library code, and manipulating Point and Size objects, using direct mathematical operations, as if were prime numbers.
- Simple, but carefully thought-out interaction of the mouse and keyboard.
- Create paths and manage their curves and segments in very convenient ways.
- Check and control the exact bounding rectangle of any element, supporting complex stroke styles with square ends and marginal corners.
- Smoothed curves, simplified paths of segments by fitting curves to points.
- Imitation of dotted lines, which are enough for Canvas, with high rendering speed.




By the way, one of them (lehni) wrote 100 thousand lines per week.