optimized JS assets + requestAnimationFrame with polyfill for background canvas redraw