let theShader;
let whirls = []
let whirlCount = 40
function preload(){
theShader = new p5.Shader(this.renderer,vert,frag)
}
let canvas;
let SIZE = 1200
function setup() {
noiseSeed(random()*5000)
canvas = createCanvas(SIZE,SIZE,WEBGL);
noStroke()
pixelDensity(2)
background(0);
fill(0)
rect(0,0,width,height)
let lastP = createVector(-5,-5)
mouseX = 900
mouseY = 250
for(var i=0;i<whirlCount;i++){
let p = createVector(random(),random());
//update random position if it's too close to the previous ball
// while(p.dist(lastP)<0.3){
// p = createVector(random(),random())
// }
whirls.push({
id: random(100000),
p: p,
r: random(0.5,0.9