I think that's got more to do with your computer and/or browser-of-choice than anything. I have to shoot 10+ fireworks at once, with `partCount` at 500+ in order to get below 20fps.
I wish I could make the launch of the firework a bit more realistic; it shouldn't accelerate against gravity. Maybe I just need to play with the settings a bit more, though I can't set an acceleration value less than 1.
Yes, it makes sense to wait with explosion for the highest point. Somehow I imagined fireworks are like rockets and should accelerate all the way to the explosion.
I think including air drag in the model would make it look more realistic. Normally subtracting a term that is quadratic in the velocity from the magnitude of the force vector does the trick.
Indeed, it looks like they're even using requestAnimationFrame.
It's still really slow on Firefox, which I've found to be one of the worst offenders when making canvas games.
The problem here might be fixed by splitting the physics loop from the animation loop.
I think it's doing all the calculations as fast as it draws.