This is a great idea — i wonder if you could do this purely client side (no remote calls) with a sprinkling of JS with canvas?