Mathematica code:
r[n_] := ( SeedRandom[n]; RandomReal[])
Fireworks2[IS_, pr_, x_, y_, R_, P_, F_, g_, v_, u_, z_, o_, O_, w_, d_, q_, e_, A_, k_, s_, t_] :=
Graphics[
Table[
If[t < r[R*f] s, {Black, Opacity[0], Disk[]},
Table[
Table[
{Hue[r[R*f]],
Opacity[If[t - r[R*f] s - a == t - r[R*f] s,
If[t - r[R*f] s < o + r[R*f] s, O,
O*Exp[-d*(t - r[R*f] s - o)]],
If[(t - r[R*f] s - a) < q + r[R*f] s, 0,
O*Exp[-e*(t - r[R*f] s + a - q)]]]],
Disk[
{x + (v + u*r[2 R*f*n])*Cos[2 Pi*r[f*R*n]]*(t - r[R*f] s - a),
y + (v + u*r[2 R*f*n])*Sin[2 Pi*r[f*R*n]]*(t - r[R*f] s - a) - .5 g*(t - r[R*f] s - a)^2},
(z + .2 r[6 f*R*n])*k^a]},
{n, 1, P}],
{a, 0, A, .05}]],
{f, 1, F}],
Background -> Black, PlotRange -> pr, ImageSize -> IS]
ListAnimate[
Table[
Fireworks2[500, 40, 0, 7, 1, 50, 3, .2, 3, 1, .2, 3, .7, 2, .5, .1, .4, 7, .7, 2, t],
{t, 0, 9.5, .2}],
AnimationRunning -> False]
ListAnimate[
Table[
Fireworks2[500, 35, 0, 7, 2, 40, 4, .3, 5, 1, .2, 3, .7, 2, .2, .1, .2, 9, .6, 2, t],
{t, 0, 10, .3}]
AnimationRunning -> False]
ESPLODE!!!