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]