hacked together an example using Raphaeljs. The code is pretty bad, but I just wanted to see if all the parts worked. And so far, so good.