home *** CD-ROM | disk | FTP | other *** search
-
- 1
-
- Automata
-
- Copyright © 1991 by Jerry Mack. All rights reserved.
-
-
- Automata is an extremely versatile, cellular-automaton simulation.
- Virtually every aspect of the simulation can be altered, saved and later
- recalled. Also, Automata supplies many powerful editing functions (e.g.
- patterns, rotations, reflctions, and more) for creating and modifying
- cell configurations. Additional features include editable icons, an
- immense variety of rules from which to choose, "music" which changes as
- the cell configuration changes and methods to speed execution from 3 to
- 60 (or more) generations per second.
-
-
- Introduction:
-
- A cellular automaton consists of the following: 1) a collection of
- cells; 2) a set of states, important because each cell must be in one of
- these states at all times; and 3) a set of rules which determine how the
- cell-states "evolve" with time.
-
- The cells in Automata are arranged in a 100x100 array known as the
- playfield. Each cell occupies a small square in the playfield, and each
- square has up to eight neighboring squares which touch it on a side or
- corner. Cells along the edges of the playfield have fewer than eight
- neighbors, but they can be treated as if they have more neighbors by
- connecting the edges. The way in which the edges are connected is known
- as the topology of the playfield. More on topologies later.
-
- Take any cell in the playfield and call it the home cell. Each home
- cell has a neighborhood associated with it. This neighborhood usually
- consists of some or all of the eight cells surrounding the home cell.
- Normally, each cell in the playfield has the same type of neighborhood.
-
- We can specify a "rule of evolution" for a cell based upon the home
- cell's state and the states of its neighboring cells. For example, we
- might require that if the home cell and three of its neighbors are ON
- during this generation, then the home cell will be ON during the next
- generation. However, if the home cell and MORE than three of its neighbors
- are ON during this generation, then the home cell will be OFF during the
- next generation.
-
- Another example can be taken from John Conway's popular game known
- as "Life":
-
- 1) If the home cell is ON and two or three of its neighbors are
- on, the home cell will be ON during the next generation.
-
- 2) If the home cell is OFF and three of its neighbors are on, the
- home cell will be ON during the next generation.
-
- 3) Otherwise, the home cell will be OFF during the next generation.
-
- The neighborhood in Life consists of all eight cells surrounding the
- home cell, and each cell can be in one of two states: ON or off. This
- simple rule gives rise to patterns which spin, crawl, breed, evolve and
- perform other amazing feats. Remarkable, when you consider that these
- patterns are no more than bits in the computer's memory.
-
-
- 2
-
- To observe some of these Life patterns, perform the following
- actions immediately after starting Automata:
-
- 1) Click on the Evolution gadget, putting you in Evolution mode.
-
- 2) Click on the Life gadget, giving you access to the Life models.
- The default rules (for the black background) are Conway's rules.
-
- 3) Click on the Accept gadget, returning you to the Main screen.
-
- 4) Click on the Population gadget so you can edit the cell patterns.
-
- 5) Click on the Randomization gadget (middle of the screen at the
- (right edge, a box with a bunch of dots in it) once or twice.
- This will add cell states at random locations on the playfield.
- Alternatively, you may click the left mouse button when the
- pointer is in the playfield. This will turn ON or OFF the cell
- underneath the pointer. If you hold down the left mouse-button
- while moving the mouse, you will continuously change the cells
- over which the pointer passes.
-
- 6) Click on the Accept gadget to return to the Main screen.
-
- 7) Click on the Flag gadget to start the evolution.
-
- You can stop the action (and regain control of Automata) by clicking the
- left mouse button.
-
- Among the many features of Automata is the use of four different ON
- states instead of just one. Thus, your rules of evolution can allow ON
- states to evolve into other ON states or into the OFF state. Also, you
- may have up to four different automata on the playfield, each with its
- own rule of evolution. Thus if you put the black automaton on the left
- half of the screen and the white automaton on the right half, then any
- patterns which cross from one side to the other will evolve differently
- than before. Just how differently depends on your choice of rules.
-
- The Evolution screen was designed to allow you to quickly change your
- rules and observe how the patterns respond. Likewise, many powerful and
- easy-to-use commands have been placed in the Populate screen, eliminating
- much of the tedium in creating and modifying patterns.
-
- The Music screen gives you considerable leeway in "composing" the
- music (noise?) the patterns can create. Unfortunately, I did not have
- time to implement the digitized sounds I had hoped to use (violin, flute,
- etc.). Thus, only a simple sine-wave pattern is available for sounds.
- If there is enough interest, I may correct this deficiency.
-
- The Icons screen allows you to change the icons for each state. The
- different icon sizes represent the different zoom factors available.
-
- You will need at least 768K of memory to run Automata. Sorry...
-
- Finally, there are many things I dislike about Automata, (the bugs,
- the region-handling, the music(?), etc.) but I can't spend any more time
- on this project. I hope you can find some enjoyment from Automata.
-
- Jerry Mack
-
-
- 3
-
- I) Main Screen
-
- Let me cover the features of the right hand side of the display,
- known as the control panel. First, there is the Topology gadget, which
- allows you to select what type of topology to assign to the playfield.
- Clicking on this gadget creates a pop-up menu underneath the pointer,
- allowing you to choose one of fifteen topologies. The topology assigned
- to the playfield when Automata starts up is the Torus, which connects
- the top and bottom edges together, as well as the left and right edges
- together. Thus, the cells along the top edge have the cells along the
- bottom edge as their neighbors and vice-versa (similarly for the left
- and right edges). Cells at the corners of a Torus have neighbors on
- every edge of the playfield.
-
- The available topologies are as follows:
-
- Square: Do not connect the edges;
-
- R Cylinder: Connect the top row to the bottom row;
-
- C Cylinder: Connect the left column to the right column;
-
- R Mobius Strip: Twist-connect the top row to the bottom row (connect
- the lower right cell to the upper left cell, etc.);
-
- C Mobius Strip: Twist-connect the left column to the right column;
-
- Torus: Connect the top row to the bottom row and the left column to the
- right column;
-
- UL Cone: Connect the left column to the top row;
-
- UR Cone: Connect the right column to the top row;
-
- LL Cone: Connect the left column to the bottom row;
-
- LR Cone: Connect the right column to the bottom row;
-
- ULLR Sphere: Connect the left column to the top row and the right column
- to the bottom row;
-
- LLUR Sphere: Connect the left column to the bottom row and the right
- column to the top row;
-
- R Klein Bottle: Connect the left column to the right column and
- twist-connect the top row to the bottom row;
-
- C Klein Bottle: Connect the top row to the bottom row and twist-connect
- the left column to the right column;
-
- Projective Plane: Twist-connect the top row to the bottom row and the
- left column to the right column.
- Note:
- R means row-connected,
- C means column-connected,
- UL means upper-left-connected,
- UR means upper-right-connected,
- LL means lower-left-connected,
- LR means lower-right-connected,
- ULLR means upper-left-to-lower-right connected and
- LLUR means lower-left-to-upper-right connected.
-
-
- 4
-
- Next, the Neighborhood gadget allows you choose which of the home
- cell's nearby cells will be considered as neighbors. Clicking on the
- Neighborhood gadget displays a pop-up menu beneath the pointer, allowing
- you to easily choose a neighborhood. The dark cell in the center of each
- neighborhood represents the home cell, and the light cells surrounding
- it represent which cells will be considered as its neighbors during
- evolution.
-
- The Switching item in the Neighborhood pop-up menu demonstrates
- another feature of Automata: dual neighborhoods. You can have Automata
- switch between neighborhoods automatically as often as you wish. The
- current neighborhood is indicated by the triangular pointer between the
- two neighborhood icons (underneath the Neighborhood gadget). Choosing
- the Switching item brings up a requester, allowing you to change the
- current neighborhood and to decide when to switch neighborhoods.
-
- The Sound gadget (below the Flag gadget) allows you to turn on
- (and off, fortunately) the "music" feature of Automata. Each of the
- four audio channels of the Amiga is assigned an ON state. The note and
- volume output by each audio channel is determined by the number of cells
- in the channel's associated state.
-
- The Flag gadget, as mentioned, allows you to start and stop the
- simulation. Actually, any mouse click will stop the simulation.
- Another method of starting/stopping the simulation is the Single-step
- menu item under the Special menu. This item starts the simulation for
- one cycle and then stops it. Use this when you want to examine closely
- how a particular configuration evolves.
-
- The Multi-step menu item is also related to the Flag gadget, in
- that you can set the number of generations Automata will evolve before
- stopping when you click on the Flag gadget. Thus, if you want the
- simulation to stop every fifteen cycles, choose the Multi-step item,
- enter "15" into the string gadget, and click on the Accept gadget.
- Whenever you click on the Flag gadget, Automata will stop the simulation
- after 15 cycles (or after a click of the left mouse-button).
-
- In case you didn't notice, I used the word cycles instead of
- generations the past few paragraphs. That is because the unit of
- evolution in Automata is the cycle. The unit of evolution for each
- state is the generation. Thus, each state may take more than one cycle
- before it evolves. You can use this feature to create fast-breeding
- states and slow-breeding states. Be careful, though, as slow-breeding
- states can be affected by other states (e.g. predators) while waiting to
- evolve. You choose the number of cycles each state waits before evolving
- by selecting the Generations menu item under the Special menu.
-
- Next in line in the Special Menu is the Updates item, which allows
- you to specify how many cycles to allow the playfield to evolve before
- redrawing the display. The default is to redraw the playfield every
- cycle, so that you can observe all the changes. If you only want to
- observe every fifth cycle, then choose this menu item, type "5" into the
- upper string gadget and select the Accept gadget. Now, whenever you
- turn on the simulation, the display will redrawn only once for every
- five cycles of evolution.
-
-
- 5
-
- The Updates menu item is one way to speed up the evolution of
- Automata. A more effective way is the use of Evolve regions, which
- restrict evolution to the region of the playfield you specify.
- Selecting the Evolve region menu-item under the Special menu highlights
- the current Evolve region, which is the entire playfield when you start
- Automata. If you press the left mouse button over one corner of the new
- Evolve region, drag the mouse to the other corner and release the mouse
- button, you will have specified a new Evolve region. All evolution will
- be restricted to this Evolve region, allowing substantial improvements
- in execution speed.
-
- Note: when the Evolve region is visible, you may keep redrawing
- the region until you are satisfied with it. You can remove the Evolve
- region display by clicking the mouse in the playfield, clicking on a
- gadget or making a menu selection.
-
- The final item in the Special menu is the Screen to back item,
- which allows you to access the other tasks running on your Amiga. No
- machine hogs here.
-
- The Display menu highlights the accounting features of Automata.
- These dislplays slow down the simulation somewhat, but offer information
- which will be of interest at various times during the simulation.
-
- The View menu allows you change your view of the playfield for
- better inspection and/or population. Specifically, you may zoom in (a
- maximum of two times) or zoom out; pan left, right, up or down; and
- you may quickly move to the corners or center of the playfield (useful
- when you've zoomed in).
-
- The Project menu allows you to save and restore virtually every
- feature of Automata. A caveat is in order: the file requester I am
- currently using does not work well, making it difficult to create new
- files. After several attempts to create a new file, it should send the
- name to Automata even after you click on the Cancel gadget. If you have
- the requester re-examine the contents of the directory, you will find
- your file and can restore it. Alternatively, you may create a dummy file
- from the shell and choose that file as you save file.
-
- I want to point out a final feature visible in the Main screen:
- multiple automata. As I mentioned, you can choose from an IMMENSE
- variety of evolutionary rules. What I didn't mention was that you can
- have different rules applied at different cells in the playfield.
- Automata allows you to have four sets of rules active, each set being
- referred to as an automaton. Thus each cell has an underlying automaton
- affixed to it, as well as the state currently assigned to it. The rules
- assigned to a state do not change during evolution, for they determine
- how the cell will change states as it evolves. The states, of course
- may or may not change as the cell evolves. The different rules are
- denoted by the underlying automaton icon assigned to each cell. The
- default icons are simply the colors black, dark grey, light grey and
- white. The state icons are drawn over the automaton icons, but the
- automaton icons are always present, allowing you to determine which set
- of rules apply at each cell in the playfield.
-
- The remaining gadgets in the Main screen (to the right of the Flag
- and Sound gadgets) activate the other modes of Automata. These modes
- allow you to modify the rules, change the cell configurations, alter the
- music created by the state configurations and modify the icons used to
- represent the states and automata.
-
-
- 6
-
- II) Evolution Models
-
- The number of rules available with eight neighbors and five states
- is IMMENSE (approximately 10^1730 or 10 followed by 1730 zeros). Most
- cellular-automaton simulations give you a choice of one rule, though
- some give you up to a dozen or two. Automata gives you a LOT more (e.g.,
- the Ecosystem Model alone contains more than 10^67 different rules).
-
- With such an IMMENSE variety of rules from which to choose, you
- need an easy and quick method of changing rules, since the whole point of
- this simulation is discovering new types of evolution on an automaton
- (and having fun, of course). The last thing you want is to spend 15
- minutes reading a manual every time you want to change a rule. Thus, I
- designed these models to be as intuitive and flexible as possible.
-
- All of the models have four icons displayed at the bottom of the
- screen, left of the Accept gadget in the control panel. These icons
- allow you to have four separate sets of (evolution) rules present on
- the playfield at any time. Clicking on one of these icons brings up the
- rules currently defined for the associated automaton. You can then
- change those rules and see what kind of configurations emerge. To find
- out which set of rules are in effect at any cell in the playfield, you
- need only look at the underlying automaton icon for that cell.
-
- Because cells can be in several ON states, it is possible for a
- cell to satisfy the conditions for more than one state at a time. In
- other words, a cell might be able to evolve into more than one state in
- the next generation. In order to resolve these conflicts as easily as
- possible, any cell in such a quandary will be OFF in the next generation.
-
- All of the evolutionary models have two main menus: a Project menu,
- with which you can save the current model or restore a saved model; and
- the Icons menu, with which you can view the icons in whatever size you
- are most familiar. Following are brief descriptions of each of the
- models available in Automata, from which you choose evolution rules.
-
-
- Life Model
-
- The icons on the left represent the ON states, and the numbers to
- their right represent the number of neighbors in that state required for
- the birth or continued life of a cell.
-
- For example, suppose the number 3 lies below the egg and to the
- right of the first state-icon. Then any cell which is OFF and has three
- neighbors in the first state will itself be in the first state the next
- generation. Likewise, suppose the numbers 2,3 lie below the sunrise-by-
- the-river icon and to the right of the first state-icon. Then any cell
- which is in the first state must have either two or three neighbors in
- the first state to remain in the first state the next generation.
-
- In the default rules, all of the states behave the same in a given
- automaton, though they behave differently for different automata:
-
- Neighbors of same state Neighbors of same state
- Automaton needed for a birth needed to avoid death
-
- black 3 2 or 3
- dark gray 2 2 or 3
- light gray 2 3 or 4
- white 2 1 or 2
-
-
- 7
-
- To change any of the values for the birth or life requirements,
- click on the left or right arrow in the appropriate row and column.
- The left arrow decreases the value(s) above it, while the right arrow
- increases the value(s). Any changes you make with the arrows apply only
- to the current automaton. To change the rules for another automaton,
- simply click on the gadget surrounding the desired automaton.
-
-
- Ecosystem Model
-
- The icons on the lower left of the screen represent the ON states
- available. Clicking on one of these brings up the rules applying to
- that state when it is in the selected automaton. The egg and sunrise
- icons have the same meaning as in the Life Model, only now you have a
- wider selection of neighbors for them. When the button image behind a
- number disappears, that number has been selected. Thus, the birth and
- life rules for the first (leftmost) state in the first (black) automaton
- are the same as in the Life Model: three like neighbors for a birth and
- two or three like neighbors to avoid death.
-
- The other two icons represent a predator (far left) and a virus (to
- the immediate right of the predator). The three states below these two
- icons represent the states other than the selected state. The selected
- state can prey upon or infect any of these states. The numbers below the
- predator and virus icons represent the number of neighbors required for
- the selected state to prey upon or infect another state. If a cell is
- preyed upon, that cell will be OFF next generation. If a cell is
- infected, that cell will become the selected state next generation. As
- always, conflicts result in the cell being OFF next generation.
-
- As an example, take the predator and infection rules for the first
- (black) automaton. If you select either of the first two states (lower
- left of the screen), you will find that neither of them preys upon or
- infects the other states. However, if you select the third state, you
- will find that it can infect the each of the remaining states. Select
- the prey state at the upper-left of the screen to examine/modify the way
- in which the third state preys/infects the other states. The default
- rules are as follows: if a cell in state #3 has 7 or 8 neighbors in state
- #1, then that cell will be in state #1 next generation; if a cell in state
- #2 has between 4 and 8 neighbors in state #1, then it will be in state #1
- next generation; and if a cell in state #4 has between 5 and 8 neighbors
- in state #1, then it will be in state #1 next generation.
-
- Following the same steps for state #4 instead of state #3 shows
- that state #4 only preys upon two of the other states. Thus, if a cell in
- state #1 has 2 or 3 neighbors in state #4, then the cell will be empty the
- next generation. Also, If a cell in state #2 has 1, 2 or 3 neighbors in
- state #4, then the cell will be empty next generation.
-
- By selecting different combinations of automaton, predator/virus and
- prey icons, you can quickly change the behavior of the patterns of states.
-
-
- Species Model
-
- Each non-empty cell evolves from state #1 to state #4 to an empty
- (dead) cell. Thus, a cell in state #1 will be in cell #2 next generation,
- in state #3 the following generation, then on to state #4 and will be
- empty again the generation following that.
-
-
- 8
-
- Births are allowed when an empty cell has the proper number of breeding
- neighbors. A neighbor is considered a breeder if it is in state #2 or
- state #3. The default rule for the black automaton allows an empty cell
- to give birth (i.e., become state #1 next generation) if between 2 and 5
- of its neighbors are breeders.
-
-
- Cycles Model
-
- The key to this model is the Palette, which allows you to choose
- an active state. This active state can then be inserted into the boxes
- to the right of an arrow or a colon.
-
- Look at the box labelled Cycles: this box shows you how a cell in
- a non-empty state will evolve the next generation. For example, in the
- default rules, the first line in the Cycles box has state #1 evolving
- into state #3, state #2 evolving into the off state (N stands for None),
- state #3 evolving into state #2 and state #4 evolving into state #3.
- Thus, a cell in state #4 would be in state #1 the next generation, state
- #3 the following generation, state #2 the generation after that and would
- finally become empty the subsequent generation.
-
- The Births section (in the center of the screen, top to bottom, 11
- rows with colons in them) details how empty cells will evolve based upon
- the type of neighbors they have. In the row near the top of the screen,
- again using the default rules, an empty cell having at least one neighbor
- in each state would be in state #2 the next generation. Likewise, a cell
- with at least one neighbor in state #1, at least one neighbor in state #2
- and at least one neighbor in state #3 (but no neighbors in state #4) would
- be in state #3 the following generation (second row).
-
- You can change the Birth and Cycle rules by clicking the mouse while
- the pointer is in any of the dark blue boxes to the right of a colon or an
- arrow. The contents of the selected box will be replaced with the icon of
- the currently selected state in the Palette. Thus, if you selected the N
- icon in the Palette box (no state) and clicked in each of the boxes to the
- right of arrow in the Cycle box, then all non-empty cells would be empty
- the next generation,
-
-
- Modulo Math Model
-
- In this model, each cell is a computer that you can program. Every
- state has associated with it a value and an operation. The value of the
- state can be found below the state's icon on the left of the screen. The
- operation associated with the state can be found to the right of the icon
- representing that state. The available operations are as follows, reading
- from left to right: addition, subtraction, multiplication, integer
- division, modulo division and exponentiation.
-
- The value of the state can be modified by clicking the left mouse-
- button when the pointer is over the value. A pop-up menu appears allowing
- you to select a value. If the chosen value is being used by another state,
- then that state's new value is the chosen state's old value. You may change
- the operation of a state by selecting the new operation.
-
- At the start of every generation, each cell is assigned the value
- associated with its state (empty cells are assigned the value 0). Each
- cell then has its value modified by its neighboring cells, starting with
- neighbors in state #1 and continuing sequentially through neighbors in
- state #4.
-
-
- 9
-
- In order to explain this model in more detail, I shall use examples
- from the default rules for the black automaton. The first state has a
- value of 2 and the operation of addition. Thus, whenever a cell has a
- neighbor in state #1, the value of 2 is added to the current value of the
- cell to yield the cell's new value. After this operation, the cell's
- current value is modified by modulo division, the base being the value
- shown at the lower-left of the screen. This modulo base may be changed
- via the Modulo menu available only in this model.
-
- This operation described above is repeated for each of the cell's
- neighbors in state #1. Thus, if a cell has four neighbors in state #1,
- then 2 would be added to the cell's value (modulo 10) to yield the cell's
- new value; this would be repeated three more times to yield the cell's
- value after interacting with its neighbors in state #1. After finishing
- with state #1, the cell would interact with its neighbors in state #2,
- state #3 and state #4 (in that order). Empty neighbors have no effect
- upon the value of the cell.
-
- The new state of the cell is determined by the value the cell has
- after interacting with its neighbors: if the new value corresponds to
- a value associated with a state, then the cell will be in that state the
- next generation; otherwise, the cell will be empty the next generation.
-
- Finally, the method in which the operations are carried out requires
- explaining. In all cases, the value of a cell is operated UPON by the
- value of its neighbors. So if a cell currently has the value 4 and the
- neighbor being tallied has the value 2, then the possible operations are
- as follows:
-
- ADDITION 4 + 2 = 6
- SUBTRACTION 4 - 2 = 2
- MULTIPLICATION 4 * 2 = 8
- INTEGER DIVISION 4 / 2 = 2
- MODULO DIVISION 4 % 2 = 0
- EXPONENTIATION 4 ^ 2 = 6
-
- The value for exponentiation is 6 instead of 16 because each operation is
- divided modulo 10 (in the default rules).
-
-
- Circuits Model
-
- This model is similar to the above model, except that the values are
- bit-patterns and the operations are the logical operations AND, OR, XOR,
- NOT, NAND, NOR and XNOR. The operations are carried out in the same manner
- as in the Modulo Math Model, starting with neighbors in state #1 and ending
- with neighbors in state #4. Also, because these are logical operations
- upon bit-patterns, no modulo division is performed after each operation.
-
- If a cell has a bit-pattern of 0101 and the neighbor being tallied
- has a bit-pattern of 0011, then the new bit-pattern of the cell is as
- follows for each of the logical operations:
-
- 0101 AND 0011 = 0001
- 0101 OR 0011 = 0111
- 0101 XOR 0011 = 0110
- NOT 0101 = 1010
- 0101 NAND 0011 = 1110
- 0101 NOR 0011 = 1000
- 0101 XNOR 0011 = 1001
-
-
- 10
-
- Voting Model
-
- The icons represent four political factions: liberal (dove),
- conservative (hawk), independent (middle-of-the-road) and extremist (time
- bomb). The default voting rule is that the the plurality wins, meaning
- that a cell will evolve into the state of which the cell has the most
- neighbors. Thus, if a cell has three neighbors in state #1, two neighbors
- in state #2, two empty neighbors and one neighbor in state #4, then the
- cell will be in state #1 the next generation (regardless of the cell's
- current state).
-
- You can limit or disable the default rule via the Elect menu, which
- allows you to specify bounds within which a state can "win" an election.
- For instance, suppose a cell has three neighbors of state #3 and no
- others. Normally, that cell would evolve into state #3 next generation.
- However, if the election limits are from 4 to 6 (bottom left corner of
- the screen), then the cell will be empty next generation because the
- plurality wasn't large enough.
-
- You can alter the default rule further by invoking the special rules
- of "siege" conversion, internal dissent and persuasion. Any cell which
- has the specified number of neighbors for each special rule will invoke
- the special evolution indicated. As in all the models, any conflict
- results in an empty cell next generation. The range of values which can
- invoke a special rule can be changed by clicking the left mouse-button when
- the pointer is over that rule's value-box. A pop-up menu will appear which
- allows you to select a new range of values or to disable the special rule.
-
- Consider the default rules for the black automaton: in the following
- explanation of these special rules, I shall use the synonyms HAWK, MODERATE,
- DOVE and EXTREMIST for states #1, #2, #3 and #4, respectively. Then the
- special rules are as follows:
-
- If a cell has and the cell then the cell
- as neighbors is in state will become a(n)
-
- Siege conversion #1: 4 or more HAWKS DOVE EXTREMIST
- Siege conversion #2: 5 or more DOVES HAWK EXTREMIST
-
- Internal dissent: 3 or more EXTREMISTS EXTREMIST EMPTY
-
- Persuasion #1: 5 or more DOVES MODERATE DOVE
- Persuasion #2: 4 or more HAWKS MODERATE HAWK
-
- The five special rules above, if activated, have precedence over the
- plurality rule, regardless of the election limits. As always, any conflict
- over the future of a cell results in that cell being empty next generation.
-
-
- Battle Model
-
- This model is designed to create pattens which can "move" about the
- screen like spaceships in a video game. While the general rules are fixed,
- you can specify what happens when ships collide or are near a collision.
- In the following discussion, I shall use the synonyms SHIP #1, COLLISION,
- SHIP #2 and ENGINE for states #1, #2, #3 and #4, respectively.
-
-
- 11
-
- The three rules you can modify are as follows: 1) When a cell which
- contains SHIP #1 has a neighbor containing a COLLISION, you can choose for
- the cell to contain either a COLLISION or SHIP #1 next generation. 2) When
- a cell which contains SHIP #2 has a neighbor containing a COLLISION, you
- can choose for the cell to contain either a COLLISION or SHIP #2 next
- generation. 3) When a cell contains SHIP #1 has a neighbor containing
- SHIP #2, you can choose for the cell to contain a COLLISION, SHIP #1, or
- SHIP #2 the next generation.
-
- For those interested in recreating this model (or some variant) on
- their own, I include the pseudocode for the one-ship case; the two-ship
- case is too complex to describe here. Since only one ship is allowed, no
- collisions are possible, so there are only three states possible: ship,
- engine and empty. Here is the algorithm (comments are in parentheses):
-
- IF cell IS engine THEN
-
- cell BECOMES empty
-
- ELSE IF cell IS ship
-
- cell BECOMES engine
-
- ELSE (cell IS empty)
-
- IF cell HAS 2 ship-neighbors THEN
-
- cell BECOMES ship
-
- ELSE
-
- cell REMAINS empty
-
- ENDIF
-
- ENDIF
-
-
- This rule is simple enough that you can experiment on your own by
- adding collisions, more ships, etc. If there is enough interest, I may
- release the two-ship algorithm that I use.
-
-
- III) Population Mode
-
- This is essentially a sophisticated paint mode, except you are working
- with cell states and automata instead of colors. All of the features below
- operate upon the Edit region, unless otherwise specified. The Edit region
- is a rectangle on the playfield which you can resize by selecting the Edit
- region menu-item under the Special menu. You then press the left mouse-
- button (don't release it yet) when the pointer is at one corner of the new
- region and drag the pointer to the other corner, where you finally release
- the left mouse-button. The contents of the region are copied to a buffer
- for later pasting.
-
- The Paste All menu item allows you to paste the entire contents of
- the edit region anywhere in the playfield (an outline of the new region
- will follow the pointer). The Paste some menu-item is similar, except
- that it only copies non-empty cells in the edit region. Finally, the
- Paste one menu-item only copies the cells in the currently-selected state.
- To get out of copy mode, select one of the patterns in the Pattens menu.
-
-
- 12
-
- The upper gadget allows you to choose between the cell states and
- the automata. The palette will display the state (automaton) icons when
- you are modifying the cell-state (automaton) configurations. The name
- below the palette refers to the pattern which will be on the playfield
- where you click the left mouse-button. Thus, in Point mode you will
- change individual cells, whereas in Block mode you will change four
- cells at a time. There are 64 patterns available in the Patterns menu
- plus the Point mode in the Special menu.
-
- The row-and-column indicator displays the row and column of the
- cell under the pointer. When the pointer moves out of the playfield,
- the row and column numbers are erased.
-
- The Replace gadget allows you to replace one state/automaton with
- another (remember, these operations are performed upon all cells within
- the Edit region). When you click on this gadget, a prompt appears
- asking you to select an icon. The state/automaton you select will
- replace whatever state/automaton was previously selected.
-
- The Swap gadget works much the same as the Replace gadget, except
- that any occurrence of either of the two states/automata will be
- replaced by the other state/automaton.
-
- The Remove gadget removes all instances of the selected state/
- automaton from the Edit region. The Clear gadget removes all states
- from the Edit region when editing cell states. When editing automata,
- automata #2, #3, and #4 will be replaced by automata #1, since each cell
- must have an automaton (a set of evolutionary rules) assigned to it.
-
- The Flood gadget will insert the selected state/automaton into
- every cell of the Edit region.
-
- The Undo gadget will undo the most recent populate operation
- performed.
-
- The Reflection gadgets are, from left to right: ULLR (upper-left
- to lower-right), LLUR (lower-left to upper-right), Vertical and
- Horizontal. The names refer to the direction within the Edit Region
- through which the cells are reflected. Thus, if the Horizontal reflec-
- tion is selected, the cells in the Edit reflection will be reflected
- across the vertical line through the middle of the Edit region.
-
- The Randomization gadget fills a random distribution of cells in
- the Edit region with the selected state/automaton. The density at which
- it populates cells within the region can be modified by choosing one of
- the menu-items below the Randomization Density menu-item in the Special
- Menu.
-
- The Rotation gadgets (90°, 180° and 270°) work the same as the
- Reflection gadgets, with the exception that the cells within the Edit
- region are rotated about the center of the region instead of being
- reflected. Since only square regions can be rotated, the rotation
- will only be performed upon the largest square which can fit wholly
- within the Edit region.
-
- The Translation gadgets shift the Edit region Left, Right, Up and
- Down. The shifts occur entirely within the Edit region; thus, a Right
- translation will move the right-most column in the Edit region to the
- left-most column in the region. The number of cells to shift is given
- by the value in the integer gadget right of the Translation gadgets.
-
-
- 13
-
- The Project Menu allows you to save/restore specific regions of
- the screen. You can save/restore either cell-state or automaton
- patterns. When saving, only the cell states or the automata are saved,
- depending upon which is being populated (see gadget at top of control
- panel).
-
- The View menu allows you to pan and zoom through the playfield,
- which can significantly reduce the effort involved in creating precise
- patterns of cell states and/or automata.
-
-
- IV) Music(?) Mode
-
- Automata allows you to create "music" based upon the cell patterns
- at each generation. Each of the ON states is assigned to one of the
- Amiga's audio channels. After each generation, the number of cells
- in each state are counted and the notes and volumes to be played are
- calculated. Then the calculated notes are played until the next
- generation or until the "music" is turned off by clicking the Music
- gadget (earmuffs when off, musical notes when on).
-
- The notes to be played are calculated as follows: If the number of
- cells in a state fall within the Low and High thresholds for that state,
- a note will be played in the associated audio channel. The note to be
- played will fall between the Low and High note. There is a direct
- relationship between how far is the note played from the Low note and
- how far is the number of cells in that state from the Low threshold.
- The lower the number of cells in that state (while still between the
- thresholds), the lower the note will be played. Likewise, the higher
- the number of cells, the higher the note played.
-
- The Project menu allows you to save and/or restore Music config-
- urations. The Icons menu allows you to display the icons with which you
- are most familiar.
-
-
- V) Icons Mode
-
- This is a paint mode which allows you to modify the icons used to
- represent the states and automata. Because you can zoom in and out to
- three levels within the playfield, there are three sets of icons which
- you can edit. The Small, Medium and Large gadgets switch between those
- three sets of icons.
-
- Below the icon-size gadgets lies the color palette. The selected
- color is the one which most paint operations will use. If you click the
- left mouse-button inside the magnified image of the selected icon, the
- underlying pixel will be changed to the selected color. The only
- exception is color #1 (black), which is actually transparent for cell
- states, allowing you to see part of the underlying automaton.
-
- The upper row of icon gadgets (below the magnified icon) are the
- icons of the cell states; the left column of icon gadgets are the icons
- of the automata. Selecting any one of these gadgets will display a
- magnified image of the associated icon, allowing you to make pixel-level
- changes to the icon. The matrix of icon images displays every possible
- combination of cell states overlying automata. This is of use in
- avoiding icons which are difficult to distinguish from each other,
- especially when the underlying automata icons show through.
-
-
- 14
-
- The Copy gadget allows you to copy one icon to another. When you
- select the Copy gadget, a prompt appears asking you to select an icon.
- The icon you select will be replaced by the previously selected icon.
-
- The Swap gadget works much the same way as the Copy gadget, except
- the two selected icons are swapped.
-
- The Dye gadget allows you to replace a color in an icon with
- another color from the palette. When you select the Dye gadget, you are
- prompted to select another color. The color you select will replace the
- previously selected color within the currently selected icon.
-
- The Flood gadget will fill the selected icon with the selected
- color.
-
- The Undo gadget will undo the most recent icon-edit operation.
-
- The Reset gadget will restore the icons which were in effect when
- you entered the Icons Mode.
-
- The Project Menu allows you to save/restore icon images you
- create. If you don't like what you see, you can always change it.
-
-
-
- Bugs (things I did not have time to fix or replace):
-
- 1) The Randomization Density menu-items in the Population mode
- do not work correctly in this version. I could neither find
- nor recreate the original version of Automata, so you'll have
- to be satisfied with this beta version. Sorry...
-
- 2) The file requester (from Inovatronics) won't allow you to
- create files, at least not easily. Thus, if you want to save
- the environment of any portion of Automata, you might want
- to first create a dummy file with the desired name.
-
- 3) When you run Automata, the memory allocated for the Micro and
- Led fonts is not deallocated. Thus, the first time (and ONLY
- the first time) you run Automata, you will see a loss of about
- 5K of memory. This memory isn't really lost, since these fonts
- can be allocated by other tasks.
-
- 4) I wanted to replace the simple sine-wave patterns I send to the
- audio channels with digitized samples of violins, flutes, or
- some other instrument. I probably would have allowed you to
- load digitized sounds from SMUS or IFF files or whatever.
-
-
- VI) Limitations
-
- While Automata was designed to work in a multitasking environment,
- it is possible to overload the Amiga when running Automata. Running two
- copies of Automata is one way to crash the Amiga (but only if both
- copies are drawing to the screen). Other tasks which directly access
- the blitter may also experience difficulties when Automata is running,
- though I have not tested this exhaustively.
-
-