The brightness buffer left behind by the lightning is rewritten every frame by averaging it with neighboring pixels — even after the line vanishes, a halo keeps spreading and cooling

diffusion · cooling canvas · ImageData · putImageData