Javascript HTML5 canvas 2D framework