- Qt 6.8
- Qt Quick 3D
- QML Types
- QtQuick3D.Particles3D
- ParticleSystem3D
- Qt Quick 3D | Commercial or GPLv3

# ParticleSystem3D QML Type

A system which includes particle, emitter, and affector types. More...

Import Statement: | `import QtQuick3D.Particles3D`
Since: | Qt 6.2
Inherits: | Node

- List of all members, including inherited members

## Properties

- logging : bool
- loggingData : ParticleSystem3DLogging
- paused : bool
- running : bool
- seed : int
- startTime : int
- time : int
- useRandomSeed : bool

## Methods

- reset()

## Detailed Description

This element is the root of the particle system, which handles the system timing and groups all the other related elements like particles, emitters, and affectors together. To group the system elements, they either need to be direct children of the ParticleSystem3D like this:

     ParticleSystem3D {
         ParticleEmitter3D {
             ...
         }
         SpriteParticle3D {
             ...
         }
     }

Or if the system elements are not direct children, they need to use `system` property to point which ParticleSystem3D they belong to. Like this:

     ParticleSystem3D {
         id: psystem
     }
     ParticleEmitter3D {
         system: psystem
         ...
     }
     SpriteParticle3D {
         system: psystem
         ...
     }

## Property Documentation

logging : bool

Set this to true to collect loggingData.

Note: This property has some performance impact, so it should not be enabled in releases.

The default value is `false`.

See also loggingData.

loggingData : ParticleSystem3DLogging `[read-only]`

This property contains logging data which can be useful when developing and optimizing the particle effects.

Note: This property contains correct data only when logging is set to `true` and particle system is running.

See also logging.

paused : bool

This property defines if system is currently paused. If paused is set to `true`, the particle system will not advance the simulation. When paused is set to `false` again, the simulation will resume from the same point where it was paused.

The default value is `false`.

running : bool

This property defines if system is currently running. If running is set to `false`, the particle system will stop the simulation. All particles will be destroyed when the system is set to running again.

Running should be set to `false` when manually modifying/animating the time property.

The default value is `true`.

seed : int

This property defines the seed value used for particles randomization. With the same seed, particles effect will be identical on every run. This is useful when deterministic behavior is desired over random behavior.

The default value is `0` when useRandomSeed is set to `false`, and something in between `1..INT32_MAX` when useRandomSeed is set to `true`.

Note: This property should not be modified during the particle animations.

See also useRandomSeed.

startTime : int

This property defines time in milliseconds where the system starts. This can be useful to warm up the system so that a set of particles has already been emitted. If for example startTime is set to 2000 and system time is animating from 0 to 1000, actually animation shows particles from 2000 to 3000ms.

The default value is `0`.

time : int

This property defines time in milliseconds for the system.

Note: When modifying the time property, running should usually be set to `false`.

Here is an example how to manually animate the system for 3 seconds, in a loop, at half speed:

     ParticleSystem3D {
         running: false
         NumberAnimation on time {
             loops: Animation.Infinite
             from: 0
             to: 3000
             duration: 6000
         }
     }

useRandomSeed : bool

This property defines if particle system seed should be random or user defined. When `true`, a new random value for seed is generated every time particle system is restarted.

The default value is `true`.

Note: This property should not be modified during the particle animations.

See also seed.

## Method Documentation

reset()

This method resets the internal state of the particle system to it's initial state. This can be used when running property is `false` to reset the system. The running is `true` this method does not need to be called as the system is managing the internal state, but when it is `false` the system needs to be told when the system should be reset.