Two of my students, Mark Paruzel (RealMarkP) and Eric Yi Shen, are just finishing-up their project work, which is explore building a declarative markup for drawing to canvas. The idea is to embed drawing primitives (e.g., line, circle, rotate, etc.) within canvas, allowing for simplified expressions of complex drawing operations. The end results are pretty interesting, and I think point to the need for further investigation. I especially like the proof-of-concept bar graph example. Good work guys.