jsCanvasNinja is canvas library can transform objects, undo and redo etc.