Example 06 — createSampler
Swarm Flows
Four createSampler() calls — each a different wave formula — steer 120 particles through a shared canvas. Particles wrap at edges; each sampler produces its own distinct flow pattern.
Core snippet
// Four samplers with distinct wave shapes steer 120 particles.
// Each particle uses its assigned sampler for x and y velocity.
var waveNames = ['classic sine', 'wobble sine', 'pulse', 'meta sine'];
var samplers = [];
for (var i = 0; i < waveNames.length; i++) {
samplers.push(Waves.createSampler({
wave: waveNames[i], seed: i * 11, range: [-1.8, 1.8]
}));
}
// In draw():
p.x += samplers[p.s].sample(p.y * 0.009, t) * 2.2;
p.y += samplers[(p.s + 2) % 4].sample(p.x * 0.009, t) * 2.2;
// wrap edges…