Edit on
<canvas></canvas>
canvas
{
  position:fixed;
  top:0;
  left:0;
  
}
var c = document.querySelector('canvas');
c.width = innerWidth;
c.height = innerHeight; 
var g = c.getContext('2d');


var mxs = [];
var mys = [];
for(var i =0;i< 40; i++) {
  mxs.push(innerWidth/2);
  mys.push(innerHeight/2);
}

c.addEventListener('mousemove', onMouseMove);
var mouseMoved = false;
function onMouseMove(evt) {
  
  mouseMoved = true;
  gx = evt.clientX;
  gy = evt.clientY;
  
}

function repaint() {
  
  var agx = (Math.pow(Math.sin(new Date().getTime()*0.001),3)/4+0.5)*innerWidth;
  var agy = (Math.pow(Math.sin(new Date().getTime()*0.00153),3)/4+0.5)*innerHeight;
  if(mouseMoved) {
    
    agx = gx;
    agy = gy;
  }
  
c.width = c.width;
g.fillStyle = "rgb(255,240,210)"; g.fillRect(0,0,c.width, c.height);
g.fillStyle = "rgb(20,0,0)";
g.beginPath();
  var dr = 10;
for(var i =0;i< mxs.length; i++) {
  var ip = Math.pow(0.1, (i+1)/17);
  mxs[i] = ip*agx+(1-ip)*mxs[i];
  mys[i] = ip*agy+(1-ip)*mys[i];
    g.moveTo(mxs[i]+i*dr, mys[i]);
  

  g.arc(mxs[i], mys[i], i*dr, 0, 7);
  
  
}
g.fill('evenodd');  
  requestAnimationFrame(repaint);
  
}

var mx, my, gx, gy;
mx = my = gx = gy = 0;

repaint();
Rerun