OptionalcapacityPool size: the most particles alive at once. Changing it rebuilds the GPU buffers.
OptionalcurvesShape over life (0 → 1), each an evenly spaced list of 1 to 8 keys.
Optionalcolor?: string[]Colour (#rrggbb); multiplied by the blackbody colour when render.blackbody.
Optionalopacity?: number[]Opacity multiplier.
Optionalsize?: number[]Size multiplier.
OptionalemitterSpawn shape and initial state.
Optionalposition?: [number, number, number]Centre, local space, metres.
Optionalshape?: EmitterShapepoint, box (half extents size), disc (radius size[0], on XZ), sphere (radius size[0]) or sources (see threejs-particles!ParticleSystem.setSources).
Optionalsize?: [number, number, number]Box half extents / disc and sphere radius in [0]; for sources, the jitter half extents around each source.
Optionalspread?: numberRandom extra speed in a random direction, m/s.
Optionaltemperature?: [number, number]Initial temperature range, kelvin (drives buoyancy, cooling and blackbody colour).
Optionalvelocity?: [number, number, number]Initial velocity, m/s.
OptionalforcesWhat moves particles.
OptionalambientTemperature?: numberAmbient air temperature, kelvin.
Optionalbuoyancy?: numberBuoyancy: up-acceleration = 9.81 × buoyancy × (T − ambient) / ambient (Boussinesq).
Optionalcooling?: numberExponential cooling towards ambient, 1/s.
Optionaldrag?: numberDrag towards the air velocity, 1/s.
Optionalgravity?: numberGravity, m/s² (down).
OptionalgridLift?: numberWith a grid: up-acceleration from the grid's channel 0 (heat h), gridLift × h / (1 + h) m/s².
Optionalturbulence?: numberCurl-noise turbulence, m/s².
OptionalturbulenceScale?: numberEddy size, metres.
OptionalturbulenceSpeed?: numberHow fast the eddies change, 1/s.
Optionalwind?: [number, number, number]Air velocity, m/s; drag pulls particles towards it.
OptionalwindShear?: numberWind grows by this share per 100 m above emitter.position.y (wind shear).
OptionallifeLife range, seconds.
OptionallightingShared light (default: one per system, filled from the scene each frame).
OptionalmaxMost particles spawned in one update (caps catch-up after a long frame).
OptionalmaxMost sources.
OptionalrateParticles per second. With emitter.shape: 'sources' this is per unit of source weight, so a
bigger fire front spawns more. Throttled so the pool never runs out (capacity / mean life).
OptionalrefReceives the ParticleSystemImpl instance.
OptionalrenderHow particles are drawn.
Optionalabsorption?: numberSmoke: light absorbed per unit of density.
Optionalalbedo?: [string, string]Smoke albedo for clean (white) smoke and dirty (dark) smoke; particles mix by their source tint.
Optionalanisotropy?: numberSmoke: Henyey-Greenstein anisotropy (0 isotropic … 0.9 strongly forward).
Optionalaspect?: numberHeight / width of each quad.
Optionalblackbody?: booleanColour from temperature (blackbody) instead of only the colour curve.
Optionalblending?: "additive" | "alpha" | "premultiplied"additive (sparks), alpha (smoke) or premultiplied (flames: emit light and partly hide what is behind).
OptionalcapHeight?: numberSmoke: height above the emitter (metres) where the plume caps into bright, dense, sharply billowing pyrocumulus-like cloud. 0 = off.
Optionaldetail?: numberPer-pixel noise detail 0…1 (0 = flat sprites, cheapest).
OptionaldetailDistance?: numberBeyond this camera distance (metres) the per-pixel detail and self-shadow taps fade out.
Optionalglow?: stringSmoke: warm light from below (#rrggbb), scaled by how hot the particle still is.
OptionalglowStrength?: numberSmoke: glow strength.
Optionalintensity?: numberBrightness multiplier (HDR; > 1 blooms).
OptionallightSteps?: numberSmoke with a grid: per-particle density steps towards the sun through the grid (0…8). Rebuilds the compute pass.
Optionalopacity?: numberOpacity multiplier.
Optionalrefraction?: numberHaze: screen-space refraction strength (fraction of the screen).
Optionalshading?: ParticleShadingBuilt-in shading: unlit sprites, noise-shaped flame tongues, lit volumetric smoke, thin spark streaks, refracting haze.
OptionalshadowSteps?: numberSmoke: per-pixel density taps towards the sun (0…4). Rebuilds the material.
OptionalsilverLining?: numberSmoke: extra forward-scattered light on thin edges when back-lit (silver lining).
Optionalsize?: numberBase size (width), metres.
OptionalsizeRandom?: [number, number]Random size multiplier range.
Optionalsoftness?: numberSoft depth fade against opaque geometry, metres (0 = hard).
Optionalsort?: booleanBack-to-front GPU sort (alpha blending).
Optionalstretch?: numberStretch along velocity: extra length = speed × stretch (seconds). 0 = camera-facing quads.
OptionalseedSeed for every per-particle random number (spawn position, velocity, size, life).
OptionalsourcesWeighted sources (SOURCE_STRIDE floats each), for emitter.shape: 'sources'.
Props of
<Particles>: every ParticleInput setting plus the ones below.