2. What is a particle system?

A particle system can be described as an alternative process to mathematical analysis using recursive or non-recursive methods to approximate a solution.  In many cases, it is difficult (or even impossible) to approximate a solution to a system without using recursive methods.  However, in some cases (such as in application in physics) it is preferable to use a non-recursive method to find a solution to prevent the calculations from rapidly becoming unmanageable.

So, what is a recursive method?  A recursive method is a function such that a value F(n) is found using the solution for F(n-1):  F(n)=F(F(n-1)) è F(n)=F(F(F(n-2))) = F(F(...F(F(1))...)).  As is quickly seen, a recursive function of large n can be quite unwieldy.  An example of a recursive method can be seen in figure 2.1a, where the Fibonacci sequence has been defined.  In theory, there is a recursive method for all non-recursive functions, and vice-versa.  In practice, this theory has limits based upon the brainpower the scientist is willing to pore over the problem in question to find both a recursive method and a non-recursive method for an arbitrary problem. 

In the case of studies of cellular automata (Boids are an example of one of these), recursive methods are generally less time consuming to set up properly than other methods, and with a powerful enough computer, fast enough to make it worthwhile to approach the problem from this direction.

After briefly defining what a particle system is, it would probably be best to go into further detail about the structure of a such a system.  Every particle system model can be represented by a tree structure.  Figure 2.2b illustrates the visualization.  At the base, where all branches converge into a trunk, is the universal definition of the model.  The universe definition model consists of all over-arching conditions of the model, such as the boundary constraints, ambient temperatures, and physical constants.  In addition, the universe definition consists of the model itself--the array of data to be modeled; the rules the simulation must obey, and how to display the simulation. 

Imagining, once we get above the trunk of the tree, that all three remaining parts are separated on their own branch, it’s best to start with the data and describe its structure.  The data of the system can be considered either as another tree, or as an n-dimensional array holding each and every Boid to be modeled.  If it is visualized as a tree, then each boid must be considered as both a branch on that tree and as a tree consisting of all the data pertaining to that bird:  position, velocity, acceleration, orientation, etc.  While visualizing the model as a tree may make it easier to comprehend for humans, usually specialized “tree walking” functions must be designed for a computer to understand them in a similar fashion, making n-dimensional arrays more convenient to work with from the computer’s perspective.  If the flock as a whole is to be visualized as an array, then each Boid must be contained by the array.

The second branch of the system consists of the modeling rules to be used on the data.  These can be as simple as declaring that each boid must not occupy the space of another boid, or as complicated as stating that the force of attraction generated by a boid is asymptotically related to the distance to that boid in space.  The rules branch defines the way the data is handled during each iteration of the system.

The third and final branch of the system deals with the output generated by the model.  After all, a model is no good to anyone if it cannot be used to illustrate a point, or allow someone to visualize the model’s behavior.  In most cases, a list of numbers as long as one’s arm is fairly hard to visualize.  This is where graphics come into play, and allow a modeler to show off his or her skills.  Figure 2.2a shows an example of a graphical representation of the boids model.  The rules and procedures behind graphical output of a model are beyond the scope of this paper, but will be used in the example without explanation.

BACK

NEXT