home *** CD-ROM | disk | FTP | other *** search
- ****************************************
- Changes in Cellsim since previous releases
- Cellsim 2.5, February 1990
-
- The following is a concatenation of the changes between versions 1.0 and
- 1.5, 1.5 and 2.0, and 2.0 and 2.5 of Cellsim. You should skip to the
- section starting from the latest version of Cellsim you have. (E.g. if the
- last version of Cellsim you got was 1.5, skip to the "1.5->2.0" section).
-
- Any questions, complaints, or suggestions for further improvements should
- be sent to:
-
- Chris Langton cgl@LANL.GOV
- Center for Nonlinear Studies
- MS B258
- Los Alamos National Laboratory
- Los Alamos, NM 87545
-
- or
-
- Dave Hiebeler hiebeler@heretic.lanl.gov
-
-
- *********************
- Changes from 1.0->1.5
- *********************
-
- 1) Margolus neighborhood has been added.
- The Margolus neighborhood is a neighborhood that essentially
- partitions the array into 2x2 blocks of cells; the origin of
- the blocks of cells alternates between (0,0) and (1,1) in
- this implementation. In addition to the 4 normal spatial
- neighbors, there is also a global "phase" variable which counts
- through the range of states. That is, when running with a
- 4-state Margolus neighborhood, the "phase" pseudo-neighbor
- will count 0-1-2-3-0-1-2-3-0-1-2 and so on. This phase is
- seen as a neighbor by all cells.
- For an in-depth description of the Margolus neighborhood, how
- to use it efficiently, and the reasoning behind its invention,
- see the book "Cellular Automata Machines: A New Environment
- for Modeling", by T. Toffoli and N. Margolus, MIT Press, 1986.
- This book is an excellent overview of some applications of
- cellular automata in general.
-
- 2) Added zoom in and zoom out buttons, which increase or decrease the
- level of magnification by one.
-
- 3) Things like transition-file names, the number of steps to "skip"
- when running, all "remember" the last value used for them. So
- for example if you load an image from buffer 2, then next time
- you do an image-buffer operation, it will use 2 as the default
- buffer, unless you specify a different one.
-
- 4) "closeup" in 1-D CA now zooms in on the center of the bottom row,
- rather than the center of the middle row.
-
- 5) Black & white support is now implemented. When running in
- B&W mode, textures are used instead of colors.
-
- 6) Images and transition-tables can be saved and loaded in compressed
- format. When you try to load a compressed file, Cellsim will
- automatically detect that it is compressed (by the ".Z" suffix), and
- load it in properly.
-
- 7) Cellsim now looks in a default directory, in addition to the current
- directory, when attempting to load an image or transition-table or
- colormap. It will also look for compressed versions of files if it
- cannot find uncompressed versions. The default directories to use are
- defined in the makefile. For example, if you have defined
- IMAGE_DIR to be "/home/Cellsim/Images", and you try to load the
- image file "bbm.128x", Cellsim will look for the following files, in
- this order, until it finds one:
- ./bbm.128x
- /home/Cellsim/Images/bbm.128x
- ./bbm.128x.Z
- /home/Cellsim/Images/bbm.128x.Z
-
-
- 8) The "quick" random routine has been fixed. Originally, it set half
- of the cells to the zero state, and the other half of the cells had
- values distributed evenly among all other states. Now, it distributes
- the random values evenly among all states (not treating zero specially).
-
- 9) Cellsim can now save/load images in CAM-6 format. However, the
- correctness of the images written using this feature has not been
- tested yet. If you use this feature, we'd appreciate it if you let
- us know if the images it generates come out correctly.
-
- 10) Some more sample rules and images have been supplied; some of these
- are simply to demonstrate the new Margolus neighborhood.
-
- 11) If you have any of the following 3 environment variables set:
- IMAGE_DIR, TABLE_DIR, CMAP_DIR
- then Cellsim will look in those directories for images, transition
- tables, and colormaps, respectively, instead of the default directories
- defined in the Makefile, if it cannot find a file in the current directory.
- For example, if you keep all of your transition files in your
- directory /home/users/joe/Trans, and all of your images in your
- directory /home/users/joe/Images, then you could put the following
- 2 lines in your .login, or simply do them manually:
- setenv IMAGE_DIR /home/users/joe/Trans
- setenv TABLE_DIR /home/users/joe/Images
- Note that if you have these environment variables set, and Cellsim
- cannot find a file in the current directory or the directory specified
- in your environment variable, it will NOT look in the default directory
- defined in the Makefile. That is, the environment variables effectively
- override the default directories, when set. This means you can disable
- default-directory searching entirely by doing something like:
- setenv IMAGE_DIR
- In that case, if an image cannot be found in the current directory,
- it will not be looked for anywhere else.
-
-
- *********************
- Changes from 1.5->2.0
- *********************
-
- 1) 256-state "computed-function" rules can now be used. This greatly expands
- the range of rules that you can run, by calling an update-function for
- each cell in the array, rather than using a lookup-table. There is a
- price, however -- computed-function updates will run more slowly than
- lookup-table updates; just how slow they go depends on how complex the
- update-function is. Simple functions (for example the heat rule) are not
- intolerably slow; although on large arrays you will notice a big difference
- in speed. There are also two global parameters which get passed to your
- update-function, which you can set by selecting items from the "Rules"
- menu. This is useful with things like the "heat.m256.c" rule, where it
- is nice to be able to change a parameter without having to recompile
- your update-function.
- The way you actually use this feature is to write an update-function
- in C, and compile that file into a ".o" object-file. Cellsim can now
- dynamically link in that object file, and call your update-function.
- See the file "Rule_README" for more specific information on doing this;
- there are a few special things your file must have, in order to be
- properly linked in.
- When using the computed-function updating, there are provisions for doing
- more data-analysis. Before and after every array-update, you can arrange
- to have Cellsim call a function of yours, with a pointer to the current
- array as a parameter. Thus, your function can do whatever type of
- processing or analysis or even alterations on the array that you want.
- See the "Rule_README" file for more information, and the "heat2.m256.c"
- rule-file in the "Rule_src" directory for an example of this.
-
- Also, note that colormaps are now 1024 bytes long (256 entries times
- 4 bytes each), although Cellsim can still read colormaps that are 64 bytes
- (16 entries x 4 bytes) as they were in previous versions. However, you
- will immediately notice upon running Cellsim that when the cursor is
- in the Cellsim window, all other windows will suddenly go to strange colors
- (assuming you are using a color workstation). This is because Suns only
- have 256-entry colormaps, and since Cellsim needs all 256 entries, the
- other windows' colormaps get "swapped out". There is no way to avoid this
- and still be able to use all 256 entries. There are other
- limitations/problems with using a 256-entry colormap, which are documented
- in "Fcn.README".
-
- 2) You can now set an "FCN_DIR" environment variable, which works the
- same way as the "TABLE_DIR" environment variable, except that "FCN_DIR"
- is searched for computed-function rules (".o" files) that cannot be found
- in the current directory, while "TABLE_DIR" is searched for lookup-table
- files. Thus, you can keep the two kinds of files separate, if you like.
-
- 3) You can now invoke Cellsim once, and change neighborhoods, number of
- states per cell, or image size, without having to call up a new Cellsim.
- This process has also been automated, somewhat. If you are running
- Cellsim with an 8-state von-Neumann configuration, and try to load the
- transition table file "life.m2", Cellsim will *automatically* switch
- to the 2-state Moore neighborhood. Similarly, if you are using an
- image size of 128, and try to load "loop.256x", Cellsim will change
- the image-size to 256 and load the image. The file-name extension is
- used to determine what the new configuration should be. Thus, you are
- *strongly* urged to begin using the filename extension standards which
- have been used with Cellsim since V1.0 came out, if you have not been
- already.
- You can manually change the image size of neighborhood configuration
- from the "Defaults" menu.
- You can also disable the automatic changing of neighborhood configuration
- and/or image-size, from the "Defaults" menu; if you are using transition
- table files or image files with non-standard extensions, you should do this.
- Note that change the neighborhood configuration clears out the transition
- table, and changing image-size clears both the current image and all
- of the buffers! If you have something in a buffer which you don't want
- to lose, you must save it to a file. (Perhaps a later version of Cellsim
- will simply resize the current image and the buffers).
- If you change the number of states per cell, for example from 8 to 4,
- the current image will have a bitwise AND performed with a mask that
- brings it down the appropriate number of bits. In the example of going
- from 8 to 4 states, the 3rd bit would be cleared, because you would be
- going to a 2-bit configuration.
- Similarly, if you are in an 8-state configuration for example, and try
- to load an image which has 8-bit values (256 states), then all cells
- will be masked down to just the lower 3 bits. If you want the image to
- be read in properly, you must have enough states per cell (256 in this
- example); you would have to change the neighborhood configuration and
- reload the image.
-
- 4) You can now change the defaults for IMAGE_DIR, TABLE_DIR, FCN_DIR,
- and CMAP_DIR, from within Cellsim. Under the "Defaults" menu, there
- are various items which allow you to do this.
-
- 5) The "general" random routine is now much more general. It allows you
- to change the values of cells within an arbitrary rectangle in the
- array, and with more flexibility of the values you can set these cells to.
- Usage of the new general random routine is documented in "cell.doc"
-
- 6) You can now generate transition-tables by using a "lambda" parameter
- or "rho" parameters. Lambda is described in Chris Langton's article
- "Studying Artificial Life with Cellular Automata", published in
- Physica 22D (1986). More recent work with Lambda will be published
- in "Computation at the Edge of Chaos: Phase Transitions and Emergent
- Computation" by C. Langton, in the proceedings of the "Emergent
- Computation" conference, to be published in a special issue of Physica D,
- 1990.
-
- 7) If you press the middle mouse-button over one of the buttons in the
- control panel, it will automatically select the last item you selected
- from the menu under that button.
-
- 8) You can save images in Sun raster format. You can then use one of the
- various public-domain Sunraster -> PostScript conversion programs out
- there, to print the image on a laser-writer.
- Note that if the image is color, you will have to run it through some
- kind of color->monochrome converter of some kind, e.g. "rasfilter8to1 (1)".
- You can't yet load images that are in Sunraster format; perhaps a later
- version will have that feature.
-
- 9) It is now much easier to write C routines to generate a lookup table.
-
- 10) Tilde-expansion, and csh wildcard-characters will work in filenames now.
- Thus, you should be able to load/save files such as "~/Images/xyz.64x"
- or "~foo/Cmap/bar.cmap" or "abcdef*xyz.256x*".
-
-
- *********************
- Changes from 2.0->2.5
- *********************
- 1) You can now attach to a Connection Machine (either by running Cellsim on
- a Sun Front-End, or through the network). You can run both lookup-table
- rules and 256-state computed-function rules, on the CM.
- Lookup-table rules are the same as on the CM (in fact, you can load a table
- locally on the Sun, and send it to the CM from within Cellsim). The
- computed-function rules on the CM must be written in C/Paris, but this
- gives you a great deal of flexibility, such as the ability to work with
- more than 8 bits/cell, or even floating-point fields.
-
- 2) There is now a "defaults" menu which has several popup windows, that
- allows you to change the behavior of Cellsim more easily than before.
-
- 3) You can now create "button macros" through 5 user-definable "sequences".
- That is, if there is some sequence of buttons you find yourself hitting
- very often, you can define a Sequence to perform those actions, and then
- call up that Sequence with a single mouse-button-press.
-
- 4) The "random" functions have been moved to a "Draw" menu, which also lets
- you draw lines, hollow circles and "shaded" circles.
-
- 5) You can now use an image-size of 512, in addition to the normal 64, 128,
- and 256 of previous releases.
-
- The "feel" of many of the features of Cellsim have been changed in version 2.5,
- so you are advised to skim through the "cell.doc" file, even if you have been
- using Cellsim frequently since it came out.
-
- ****************************************
-
- If you create an interesting rule which you think others might be
- interested in, mail it (along with any images that go along with it)
- to hiebeler@heretic.lanl.gov or cgl@lanl.gov.
-
- We would like to collect interesting rules from Cellsim users, to
- maintain a user-contributed library of rules to distribute with later
- versions of Cellsim. Please compress and uuencode any lookup-tables
- or images before mailing them; C source code can be mailed "as-is",
- but please document the beginning of the file as the samples in the
- "Rule_src" directory have been, so that authors get appropriate credit
- for their code.
-
- ****************************************
-
- Sometime in the not-too-distant future, maintenance and distribution
- of Cellsim will probably be taken over by Automatrix, a new cellular
- automata company in upstate New York. They will be manufacturing
- CA hardware, and marketing CA software for different architectures,
- including a Cellsim-based package of rules implementing most of the
- examples given in the book _Cellular Automata Machines_, by Toffoli
- and Margolus. They will possibly be organizing a CA newsletter as
- well. You can get more information about Automatrix by writing to:
-
- Automatrix, Inc.
- P.O. Box 196
- Rexford, NY 12148 USA
-
- They do not yet have an e-mail address, but should soon.
-