# Particle Systems

Reference: William T. Reeves, "Particle Systems - A Technique for Modeling a Class of Fuzzy Objects", Computer Graphics 17:3 pp. 359-376, 1983 (SIGGRAPH 83).

## Introduction

The use of Particle systems is a way of modeling fuzzy objects, such as fire, clouds, smoke, water, etc. These don't have smooth well-defined surfaces and are non-rigid objects, i.e., they are dynamic and fluid. Particle systems differ in three ways from "normal" representations for image synthesis:

1. An object is not represented by a set of primitive surface elements, e.g., polygons or patches, but as clouds of primitive particles that define its volume.
2. A particle system is not a static entity, its particles change form and move. New particles are created and old particles are destroyed.
3. An object represented by a particle system is not deterministic, its shape and form is not completely specified. Stochastic processes are used to create and change an object's shape and appearance. Note that particle systems can be used in a deterministic way to create certain objects, e.g., the human head in the video "Particle Dreams" by Karl Sims.

Particle systems are an example of stochastic procedural modeling, similar to fractals, and have some of the same advantages, such as the following:

1. Complex systems can be created with little human effort.
2. The level of detail can be easily adjusted. For example, if a particle system object is in the distance, then it can be modeled to low detail (few particles), but if it is close to the camera, then it can be modeled in high detail (many particles).

## Basic Model of Particle Systems

A particle system is a collection of many minute particles that model some object. For each frame of an animation sequence the following steps are performed:

1. New particles are generated
2. Each new particle is assigned its own set of attributes
3. Any particles that have existed for a predetermined time are destroyed
4. The remaining particles are transformed and moved according to their dynamic attributes
5. An image of the remaining particles is rendered

Since the creation and attributes of the particles are procedural, these can be the results of other computations, e.g. from science or engineering. This paper describes one way in which these particles can be generated and assigned attributes - using stochastic means.

## Particle Generation

Particles are generated using stochastic methods. Two ways to do this are shown below. In the first method the designer controls the mean number of particles generated per frame and the variance. So the number of particles generated at frame F is:

NpartsF = MeanPartsF + Rand() X VariancePartsF with -1.0 <= Rand() <= 1.0 , a uniformly distributed random number

A second method generates a certain number of particles per screen area. So MeanParts and VarianceParts refer to a number per unit screen area:

NpartsF = (MeanPartsSAF + Rand() X VariancePartsSAF) X ScreenArea

This method is good for controlling the level of detail required. Note: SAF means per screen area for frame F.

The designer may want to change the number of particles generated as time changes and can do this by a simple linear function:

MeanPartsF = InitialMeanParts + DeltaMeanParts X (F-F0)

The designer could do this by some function other than linear if needed or desired. So the designer must specify the initial parameters for the above equations and then everything is automatic.

## Particle Attributes

Each new particle has the following attributes:

1. initial position
2. initial velocity (speed and direction)
3. initial size
4. initial color
5. initial transparency
6. shape

A particle system has several parameters that control the initial position of the particles:

1. X, Y, Z (the particle system origin)
2. Two angles of rotation that give its orientation
3. A generation shape which defines the region around the origin in which new particles are placed, e.g., a sphere of radius R. These shapes can be simple or quite complicated.

The generation shape describes the initial direction of new particles, e.g., for a sphere the particles would move away from the origin in all directions. For a planar shape, e.g. a circle in the x-y plane, the particles would move up and away from the plane (not necessarily straight up, this would be determined by the rotation angles).

The initial speed of a particle can be given by:

InitialSpeed = MeanSpeed + Rand() X VarSpeed

The initial color can be:

InitialColor = MeanColor (R,G,B) + Rand() X VarColor(R,G,B)

The initial opacity can be:

InitialOpacity = MeanOpacity (R,G,B) + Rand() X VarOpacity(R,G,B)

The initial size can be:

InitialSize = MeanSize + Rand() X VarSize

There is also a parameter that specifies the shape of each particle, e.g., spherical, rectangular, or streaked spherical (for motion blur).

## 2.3 Particle Dynamics

A particle's position in each succeeding frame can be computed by knowing its velocity (speed and direction of movement). This can be modified by an acceleration force for more complex movement, e.g., gravity simulation.

A particle's color can be modified by a rate-of-color-change parameter, its opacity by a rate-of-opacity-change parameter, and its size by a rate-of-size-change parameter. These rates of change can be global, i.e. the same for all particles, or they can be stochastic for each particle.

## 2.4 Particle Extinction

When a particle is created it can be given a lifetime in frames. After each frame, this is decremented and when the lifetime is zero, the particle is destroyed. Another mechanism might be that when the color/opacity are below a certain threshold the particle is invisible and is destroyed. When a particle has left the region of interest, e.g., is a certain distance from its origin, it could be destroyed.

## 2.5 Particle Rendering

Particles can obscure other particles behind them, can be transparent, and can cast shadows on other particles. They can also interact with other, conventionally modeled primitives. In this system the authors made two assumptions. The first was that the particle systems do not intersect with other primitives (so the rendering system only has to handle particles). The other objects in a scene are rendered separately and then composited with the particle system images. If the particles do interact with other objects, e.g., go behind them, then the images are divided into sub-images which are composited.

A second approximation is that the particles are light sources, that additively combine according to their color and opacity values. This eliminates the hidden surface problem since particles do not obscure each other but just add more light to a given pixel. It also eliminates shadows.

## 2.6 Particle Hierarchy

Their system has a particle hierarchy system such that particles can themselves be particle systems. The child particle systems can inherit the properties of the parents.

Examples:

Last changed February 08, 2000, G. Scott Owen, owen@siggraph.org