Unity particles, rendered into a texture, then that texture fed into a custom shader on a plane that does metaballs.