JSFiddle - React, Tailwind, and code Playground

by raxxla

HTML

<canvas id="canvas" width="800" height="600" style='border:1px solid;'></canvas>

JavaScript

var context = document.getElementById('canvas').getContext('2d');
var P=1, R=0.07, dl=1, l=200, color=10;
var H=(255/color-1)/l;
context.fillStyle = "black";
context.fillRect(0,0,canvas.width,canvas.height);

var intervalID = setInterval(draw, 100);

function draw() {
  var n=P*dl*l*l;
  var rc=gc=Math.round(255/(H*l+1));
  for (var i=1; i<n; i++) {
    var x=Math.random()*canvas.width;
    var y=Math.random()*canvas.height;
    var r=R*canvas.width/(l-dl*Math.random());
    context.beginPath();
    context.fillStyle = "rgb(" + rc + "," + gc + ",0)";
    context.arc(x, y, r, 0, 6.284);
    context.fill();
  }
  l-=dl;
  if (l<dl) clearInterval(intervalID);
}