When should you use requestAnimationFrame over setTimeout

You are animating both DOM and canvas updates. In real production code, when is requestAnimationFrame better than setTimeout, and what tradeoffs matter most for smoothness, drift, and battery usage.

WaffleFries