Kamel Ghabte · Cours · Gratuit

Curl noise

Créer des flux sans divergence avec le curl noise en p5.js.

Le concept

Le curl noise est un champ de vecteurs dérivé du bruit de Perlin dont la divergence est nulle : les particules ne s'accumulent jamais ni ne créent de vide. On le calcule par : vx = dN/dy, vy = -dN/dx (dérivées partielles du bruit). Le résultat : des flux élégants et tourbillonnants.

Le code

// Curl noise particles
let pts = [];
function setup() { createCanvas(400,280); background(11,15,20);
  for(let i=0;i<300;i++) pts.push({x:random(width),y:random(height)});
}
function draw() {
  fill(11,15,20,12); noStroke(); rect(0,0,width,height);
  let e=0.01, t=frameCount*0.003;
  for(let p of pts){
    let n1=noise(p.x*0.005,p.y*0.005,t);
    let vx=(noise(p.x*0.005,(p.y+e)*0.005,t)-n1)/e;
    let vy=-(noise((p.x+e)*0.005,p.y*0.005,t)-n1)/e;
    p.x+=vx*2;p.y+=vy*2;
    if(p.x<0||p.x>width||p.y<0||p.y>height){p.x=random(width);p.y=random(height);}
    stroke(55,227,195,120); point(p.x,p.y);
  }
}

Pour aller plus loin

Explorez les autres cours gratuits sur la page Apprendre, ou réservez un appel pour discuter de votre projet.

Envie d'aller plus loin ?

Réserver un appel découverte →