JSFiddle - React, Tailwind, and code Playground
HTML
<canvas id="myCanvas"></canvas>
JavaScript
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
c.width=800;
c.height=600;
v=450;
t=0;o=255;m=Math;
function i(){
t+=0.008;
w=611+m.sin(t)*100;
r=m.floor(m.sin(t*11)*o);
g=m.floor(m.sin(t*5)*o);
n=m.floor(m.sin(t*7)*o);
ctx.fillStyle="rgba(0,0,0,0.005)";
ctx.fillRect(0, 0, w, w);
ctx.fillRect(w, w, w, w);
ctx.fillStyle="rgba("+r+","+g+","+n+",0.1)";
ctx.fillRect(w, 0, w, w);
ctx.fillRect(0, w, w, w);
ctx.drawImage(c,0,w,w,w);
ctx.drawImage(c,w,w,w,w);
ctx.drawImage(c,w,0,w,w);
ctx.drawImage(c,0,0,w,w);
ctx.translate(v,v);
ctx.rotate(0.003*m.abs(m.sin(t)));
ctx.translate(-v,-v);
setTimeout(i,20);
}
i();