butterfly - use requestAnimationFrame