Cellsprings Help: StateMate Controls

The StateMate is the collection of controls consisting of the StateMate menu, the tool-button shortcut for the StateMate | Reapply Operator menu item, and the universe/target dimensions entry fields. Basically it gives you a way of starting an orbit with the sorts of random and simple seeds favored by Cellsprings. It's no miracle of convenience, but it's a whole lot better than nothing.

General Operation

Any time the CA is seeded using StateMate the Current State Operator menu selection is applied to a target area of the cell matrix. The target either comprises the whole universe, or, if Substate Target Enabled is checked, a centered rectangular area whose dimensions are set using the rightmost textfields. If Pre-wipe Enabled is currently checked, the entire universe will be cleared (set to zeros) before the operation is applied. (If you have changed the universe size, however, pre-wipe always occurs, irrespective of this setting.)

Several things can result in application of the state operator: selecting a new operator, selecting a new @R-BinaryFill Density, pressing the Enter key in any of the textfields, or activating the Reapply Operator command by using either the menu item or its corresponding button or keyboard shortcut.

Randomizing Operators

The fill randomizers effect a replacement of whatever was in the target, whereas the others modify existing contents. All randomizing operators generate a unique state each time they are applied. (If for some reason you want to run two different rules starting with the same randomly-generated configuration, recover the initial state with the Run | Rewind menu item or its shortcuts and then switch rules while Presets | Linked to Rule is deselected.)

@R-BinaryFill Fills the target with randomly dispersed ones and zeros, the percentage of ones being determined by the currently selected @R-BinaryFill Density. (Note that you can get densities greater than 50% by selecting 100 - X% followed by an @Invert. If you want multiple applications select @R-ScrambleDevolved, reapplying thereafter.)
@R-UniformFill Provides a uniform distribution of cell values - that is, roughly equal densities of each of the C (i.e., cellsize) values. It is only useful for rules with a cellsize greater than 2, since otherwise it is equivalent to a binary fill set at 50%.
@R-PosPerturb Increases the density of 1-valued cells by 1% of the total number of cells in the target area (or by one cell in small targets). The main thing about the perturb operations is that, except for the few random cell replacements, they leave the existing target intact. So this is one way to go if you want to see the effect on an orbit of a small alteration in a seed state. (Another way to go would be to operate on a small target without pre-wiping.)
@R-PosPerturbUniform This is a positive perturb option along the lines of @R-UniformFill. It increases the densities of all nonzero-valued cells, rather than just the density of ones.
@R-NegPerturb Perturbs the state in the opposite direction from the above two options - that is, it decreases the density of nonzero cells.
@R-ScrambleDevolved Rewinds the orbit (returns to the seed state) and then scrambles the cells in the target.

Limitations

The size of the universe you can set with the StateMate has an upper bound of 2^15 - 1 = 32767 cells. In addition, the length or the width at the 100% zoom level cannot exceed the limits of the default display area. Thankfully, the Universe Dimensions fields will impose these limits, so you don't have to think about them.

You may wonder why the limits are so low compared to some other programs. Well, the reason for the specific cell limit is to save memory in the operation of the demographics window. And it's also the case that Java has some performance issues that we don't seek to emphasize. However, I am completely at ease with these limits, as they are entirely in keeping with the Cellsprings philosophy of getting more from less. When it comes to its inputs, Cellsprings takes an Occam's Razor approach, eschewing surfeit and excess. Our attitude is that the smallest universe that exhibits a given phenomenon is the best one.

I do hope this explanation will inoculate the present program from grousing, however oblique, of the sort I once heard about WebsideCA, Cellsprings' predecessor, which implied some link between size and seriousness. But now you know that this would be like grousing that a Bonzai grower's trees weren't big enough - "hey, why don't you do Redwoods?" Or like grousing that Copernicus' model of the solar system wasn't complete enough - "hey, where are your pericycles, aren't you serious?"

Glad we cleared that up :)


Copyright © 1998-2000 J. M. G. Elliott.