In the demo it’s 8000 I think. My code is super-optimized, so even 100,000 particles work without much delay,
At the start particles are… well, they are always somewhat transparent, at the start they start with about 0.3 opacity, though that works multiplicatively, so if the sprite has transparent areas (which it does) - you end up with some transparency in those areas. I think that’s pretty clear though, so I think I didn’t get your question 
About particle size, they are different sized, but the distribution is only about 33%, minumum size is 0.2 and maximum is 0.3 (in world space measurements, that’s about 20 and 30cm respectively).
here’s the particle definition if you’re interested:
{
"position": {
"x": 9.17416,
"y": -1.90031,
"z": 12.06082
},
"scale": {
"x": 1,
"y": 1,
"z": 1
},
"rotation": {
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"parameters": [
{
"name": "scale",
"itemSize": 1,
"defaultTrackValue": {
"itemSize": 1,
"data": [
1
],
"positions": [
0
]
}
},
{
"name": "color",
"itemSize": 4,
"defaultTrackValue": {
"itemSize": 4,
"data": [
1,
1,
1,
1
],
"positions": [
0
]
}
}
],
"preWarm": false,
"readDepth": true,
"softDepth": true,
"blendingMode": 0,
"layers": [
{
"imageURL": "data/textures/particle/smokeparticle.png",
"particleLife": {
"min": 1,
"max": 1.6
},
"particleSize": {
"min": 0.2,
"max": 0.3
},
"particleRotation": {
"min": 0,
"max": 0
},
"particleRotationSpeed": {
"min": 0,
"max": 0
},
"emissionShape": 1,
"emissionFrom": 1,
"emissionRate": 0,
"emissionImmediate": 4000,
"parameterTracks": [
{
"name": "color",
"track": {
"itemSize": 4,
"data": [
0.6431372549019608,
0.6039215686274509,
0.5372549019607843,
0.3,
0.6,
0.5764705882352941,
0.5215686274509804,
0.265,
0.7098039215686275,
0.6745098039215687,
0.615686274509804,
0
],
"positions": [
0,
0.7957639171068672,
1
]
}
},
{
"name": "scale",
"track": {
"itemSize": 1,
"data": [
0.9235456523622187,
0.9685843530893341,
1.0034300604871111
],
"positions": [
0,
0.31176470588235294,
0.7647058823529411
]
}
}
],
"position": {
"x": 0,
"y": 0.6,
"z": 0
},
"scale": {
"x": 0.9,
"y": 0.5,
"z": 0.65
},
"particleVelocityDirection": {
"direction": {
"x": 0,
"y": -1,
"z": 0
},
"angle": 0
},
"particleSpeed": {
"min": 0.1,
"max": 1.7
}
}
]
}
Particle engine itself is already in meep, so you can use that any time you like 