I wanted to build a canvas interface/abstraction and I felt this might be an interesting approach
No. I've spent like 2 hours on it so far.
Me.
If you look at this code and think "this is awesome"... I have a bridge to sell you.
MIT (because honestly if you decide to use this... it's really at your own peril)