Concept
The basic idea is to use cellular automata to transform images. Cellular automata is a simple method of applying transformation rules to values in a grid. In this case, digital image data, already existing in grid (x,y coordinates) is used as the starting population. Random rules are "taken" from the image data, then applied to the whole image. Here is a link (new window) that gives a short introduction to cellular automata.
Application
I use the plugin mainly as a tool to explore a range of alternate image states early in the development process. The plugin "jumps" images into new states. Since the process is random, the results are unpredictable, presenting me with new possibilities and challenges. It is a combination of the image data (initial population of the xy grid) and the random rules that produce results, and I have found that some images will rapidly produce a range of interesting results while others don't produce anything I would use. The plugin does allow for various blending modes to allow more subtle application (moderate the "jumps"), and in this sense, it can be used in a way similar to other plugins.
The default mode is to operate at the pixel level (cell size of 1). Each pixel of the original image (the default state) is mapped into a new color, based on the transformation rules. If the cell sizes are greater than 1, then the target is not only a specific color, but a color that is matched to a cell size. For example, a source pixel may be mapped to red, with a cellsize of 10 pixels. With the random option, each target color can have a unique cell size, producing a significant degree of abstraction of the image.
Compatibility
The plugin has been tested with Photoshop and Paintshop Pro. It should work in other applications that support Photoshop plugins, but this has not been verified. It runs under Windows only.
Basics
There are two primary controls that drive the results.
Number of Cell States: This defines the number of states (colors) that are used in the transformation. It defines the maximum amount of colors that will be contained in the new image state (although the Blending control provides the ability to increase final colors).
Random: This generates the random "rules" for transformation, based on the Number of Cell States.
Using these two controls provides a good initial range of new image possibilities. All the other controls basically add variations that increase the range of possibilities.
The Controls
Method: N is the default, normal method. The other methods are useful when looking for additional image possibilities.
Calculate: The default mode is to use all three color channels to derive the transformation rules. Alternatively, these rules can be derived from one or two color channels. Useful when working with "difficult" images.
Apply: By default the results are applied to all three color channels. Alternatively, the results can be applied to one or two color channels only. For example, if R is deselected, the red channel will remain unchanged.
Neighbors: Defines the number of pixels that are used in calculating the transformation. I don't use 2 neighbors, so I'm thinking of changing this to use the 3 neighbors in the previous row.
Time: Delayed is the default. Instant will produce cellular artifacts (Sierpinski Triangles, sliders, etc.).
Initial State - Change Initial Population: This adjusts the image matrix, prior to the calculations. Basically, it shifts the image color values in a very simple way. Useful for some images.
Blending: Two controls, a drop down list with blending modes, and an Amount control. Changing the blending mode can produce very interesting results. When used with larger cell cizes, it produces results with more colors, an interesting gradient type effect.
Cell Sizes:
Horizontal Size: The number of pixels in the horizontal dimension.
Vertical Size: The number of pixels in the vertical dimension.
Fixed: The cell sizes are fixed, all the same size.
Random: The cell sizes are random, with the upper range being the largest possible. As of now, the random cell sizes are constrained to specific rules. For example, if the Number of Cell States is 9 (9 transformation rules), each rule will be associated with a unique cell size.
After changing the Horizontal or Vertical Cell size, the Fixed or Random button must be clicked for the new sizes to take effect. Each click of the cell Random button will generate new random cell sizes.
S Random: This is a super random button. It is the same as clicking both the cell size Random and the main Random buttons. Random cell sizes are generated and new rules are generated.
Save/Load: Essentially memory buttons that Save or Load the random settings -- the transformation rules and the random cell sizes. The R button loads the settings from the last execution of the plugin. Note, that the R button does not accurately restore the random cell sizes from the last execution. It works fine if cell sizes are 1, but there appears to be a rounding problem with larger cell sizes. The S/L buttons work OK.
Issues/Problems
The Preview is only an approximation of the final result. The processes are scale dependent, so what appears as large scale cellular structures in the preview will shrink when applied to the larger image.
Running the Plugin using Photoshops Last used option. The plugin will not work in this mode -- it will result in a blank image. . The development software that I'm using (FilterMeister) processes the image in two modes -- Preview and Execution. When invoking the plugin with the last used option, the Preview mode is not run, only the Execution processes. However, the plugin uses the Preview mode to generate the random rules/cell sizes. If this was done in the Execution code, the results would always be random, not matching the preview. Basically, in normal operation, you cycle through the preview mode, randomly generating results. When you click OK and run the program, no further random process are used. I think there is a way to program around this (duplicating the random processes in the Execution code, but only invoking this when run with the last used option), but it is a significant effort. Something I will attempt when the plugin approaches a final state.
When the plugin is launched, it generates a first set of random rules. It would be nice to have it come up with the last set of rules used. I'm still considering on how to do this -- would you want the last set of rules if you are working on a new image? Simple in concept, but a little more complicated in making it work.
Using the R button to load the rules from the last execution of the plugin will not accurately reproduce cell sizes greater than 1. I think this is a scaling/rounding problem. The S/L buttons work correctly.
I have been disappointed by the number of expensive plugins that will not run on larger images. This plugin does have a limit on the images sizes it can process, but I would characterize it as moderate in comparison to the severe limitations of some other plugins. The actual limit to image size will be determined by the amount of memory available to Photoshop.