FRENAR
N°01 · Canvas 2D · Génératif

Champ de flux

Value noise maison transformé en vecteurs directionnels. Des milliers de particules suivent le courant — déplacez la souris pour perturber le champ.

déplacez · cliquez pour reseed
// Champ de flux — value noise maison, 0 librairie
const canvas = document.getElementById('c01');
const ctx = canvas.getContext('2d');

// PRNG déterministe (splitmix32)
function prng(seed) {
  return () => {
    seed = (seed + 0x6D2B79F5) | 0;
    let t = Math.imul(seed ^ seed >>> 15, 1 | seed);
    t = (t + Math.imul(t ^ t >>> 7, 61 | t)) ^ t;
    return ((t ^ t >>> 14) >>> 0) / 4294967296;
  };
}

// Value noise 2D (interpolation bicubique)
function noise2D(x, y, rand) { ... }

// Chaque particule suit l'angle du champ
particles.forEach(p => {
  const angle = noise2D(p.x * scale, p.y * scale, rand) * Math.PI * 4;
  p.x += Math.cos(angle) * speed;
  p.y += Math.sin(angle) * speed;
});
À toi de jouer

Change la seed pour obtenir un motif qui évoque un fleuve vu du ciel. Essaie une densité maximale avec vitesse minimale — qu'observes-tu ?

Envie de créer vos propres systèmes génératifs ?

Réserver un créneau