No fluid dynamics I'm afraid, but here's what I came up with
Preliminaries
n = {200, 200, 200};
dim = 2;
edges = {.015, .018, .024};
speed = {{0, -1}, {0, -1.5}, {0., -2}};
basePoly = {{0, -1}, {1/2, 0}, {0, 1}, {-1/2, 0}};
period = 3;
Initial position colour and orientation
angularVelocity = N[RandomChoice[Range[-8, 8], #] period Pi] & /@ n;
initPos = RandomReal[dim, {#, 2}] & /@ n;
initAngle = RandomReal[2 Pi, #] & /@ n;
colors = Transpose[ConstantArray[Hue /@ RandomReal[1, 200], 4]];
Visualisation
polygons[t_] :=
Graphics[Table[
Polygon[Function[{pos, ang, vel},
Mod[pos + speed[[i]] t,
2] + # & /@ ((edges[[i]] basePoly).RotationMatrix[
ang + vel t])] @@@
Transpose[{initPos[[i]], initAngle[[i]], angularVelocity[[i]]}],
VertexColors -> colors], {i, 3}],
PlotRange -> {{0, dim}, {0, dim}}];
Manipulate[polygons[t], {t, 0, period - .03, .03}]
Or to get an animated gif (note that exporting takes quite some time)
tab = Table[polygons[t], {t, 0, period - .03, .03}];
Export["confetti2.gif", tab]
![enter image description here][1]
[1]: https://i.sstatic.net/8IjyR.gif