Note: Canvas support is required (e.g. this will probably work in most browsers except IE)