In a cellular automaton, a puffer train, or simply puffer, is a finite pattern that moves itself across the "universe", leaving debris behind. Thus a pattern consisting of only a puffer will grow arbitrarily large over time. While both puffers and spaceships have periods and speeds, unlike puffers, spaceships do not leave debris behind.
The period of a puffer can be considered as the combination of two periods; the first is the period of the puffer itself, while the second is the apparent period of the pattern of debris produced. This is often the same as the period of the puffer, but sometimes is a factor of the period. A puffer for which the apparent period deduced from the debris is smaller than the period of the engine is a pseudoperiod puffer. Such puffers are typically produced by artificial means[clarification needed]. A true period puffer is one in which the period of the debris matches that of the puffer.
Puffers are divided into two classes, dirty puffers and clean puffers. While there is no precise distinction, a dirty puffer is one in which there is little apparent order in the debris (although the debris will still eventually be periodic). A clean puffer, conversely, has a small amount of debris that appears much more organized. A dirty puffer can sometimes be turned into a clean puffer by adding spaceships of the same velocity as the puffer that affect what debris results.
A puffer whose debris consists entirely of spaceships is called a rake.