You might be interested in paper.js: http://paperjs.org/ which is an evolution of Scriptographer. It has full support for the usual add, subtract, difference sort of boolean shape operations. Beyond that difference, I'm still trying to suss out the differences between rune.js and paper.js. Rune feels like it might provide more grid and typesetting tools, but still, the lack of boolean shape operations is disappointing.