canvas based ring with animation