Made using Blender's particle system. The floor is a Collision object, and a Turbulence field adds a little randomness to the flight of the sparks.