Value noise maison transformé en vecteurs directionnels. Des milliers de particules suivent le courant — déplacez la souris pour perturber le champ.
// 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; });
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