function updateParticles(flow) {
flow
.process(cm.push, () => ({
location: cm.vec(0, 0),
velocity: cm.vec(cm.random(-1, 1), cm.random(-2, 0)),
acceleration: cm.vec(0, 0.05),
lifespan: 255
}))
.process(
cm.eachRight,
(d, i, array) => d.lifespan < 0 && array.splice(i, 1)
)
.process(cm.each, (d) => (d.lifespan -= 2))
.process(cm.each, (d) => {
d.velocity.add(d.acceleration);
d.location.add(d.velocity);
});
}