This started as a few bits of commentary about the [particlesystems.com] link on Interesting Links.
DWM: I'm not exactly sure what this is, but it looks interesting and seems to be related to computer graphics.
Dave Hettmer: particle system are for things like smoke, explosions, bees.
DWM: I finally got that. I wonder why they're limited to that, though? How about a swarm of spaceships?
Dave Hettmer They're not, really. They'd work nicely for a swarm of Hamiltonesque combat wasps. "Swarm" is a key adjective because it also describes the intelligence level and goals of each particle.
DWM: The series of papers titled [Physically Based Modelling: Principles and Practice] has a discussion of particle systems, along with a simple example implementation. This is where I first saw an explanation of what they are. Reading through the article, it wasn't clear that typical applications were for low-intelligence object swarms, and I kept trying to relate the description to a full physical model implementation.
As far as I can tell, the interesting thing about particle systems is the mathematical treatment. You take the position and velocity vectors of each object and glom them into a large n-vector that describes the entire system state. Additionally, for each particle you have a mass and a force accumulation vector. At each sim step, you calculate forces on all particles. Uniform forces, like a uniform gravity field, are very easy to apply. Things like particle-to-particle forces are fairly straightforward too. Then you go through a step where you apply the force vectors, and operate on the entire state vector to get a new one.
On a first read, I didn't see any compelling reason that this couldn't be extended to simulate arbitrary systems of objects in space, but perhaps the technique is overkill in some instances. A possible disadvantage is the scattering and gathering of the system vector. Also, it might not mesh well with dead reckoning techniques, or distributed systems where the boundaries of a "system" of objects are fuzzy and differ from one network node to another.