Add precise animation loop