home *** CD-ROM | disk | FTP | other *** search
/ Photo CD Demo 1 / Demo.bin / cellsim / v2_5 / changes < prev    next >
Text File  |  1990-02-26  |  15KB  |  293 lines

  1.            ****************************************
  2.           Changes in Cellsim since previous releases
  3.               Cellsim 2.5, February 1990
  4.  
  5. The following is a concatenation of the changes between versions 1.0 and
  6. 1.5, 1.5 and 2.0, and 2.0 and 2.5 of Cellsim.  You should skip to the
  7. section starting from the latest version of Cellsim you have.  (E.g. if the
  8. last version of Cellsim you got was 1.5, skip to the "1.5->2.0" section).
  9.  
  10. Any questions, complaints, or suggestions for further improvements should
  11. be sent to:
  12.  
  13.   Chris Langton         cgl@LANL.GOV
  14.   Center for Nonlinear Studies
  15.   MS B258
  16.   Los Alamos National Laboratory
  17.   Los Alamos, NM 87545
  18.  
  19.   or
  20.  
  21.   Dave Hiebeler   hiebeler@heretic.lanl.gov
  22.  
  23.  
  24.             *********************
  25.             Changes from 1.0->1.5
  26.             *********************
  27.  
  28. 1) Margolus neighborhood has been added.
  29.     The Margolus neighborhood is a neighborhood that essentially
  30.     partitions the array into 2x2 blocks of cells; the origin of
  31.     the blocks of cells alternates between (0,0) and (1,1) in
  32.     this implementation.  In addition to the 4 normal spatial
  33.     neighbors, there is also a global "phase" variable which counts
  34.     through the range of states.  That is, when running with a
  35.     4-state Margolus neighborhood, the "phase" pseudo-neighbor
  36.     will count 0-1-2-3-0-1-2-3-0-1-2 and so on.  This phase is
  37.     seen as a neighbor by all cells.
  38.     For an in-depth description of the Margolus neighborhood, how
  39.     to use it efficiently, and the reasoning behind its invention,
  40.     see the book "Cellular Automata Machines: A New Environment
  41.     for Modeling", by T. Toffoli and N. Margolus, MIT Press, 1986.
  42.     This book is an excellent overview of some applications of
  43.     cellular automata in general.
  44.  
  45. 2) Added zoom in and zoom out buttons, which increase or decrease the
  46.    level of magnification by one.
  47.  
  48. 3) Things like transition-file names, the number of steps to "skip"
  49.    when running, all "remember" the last value used for them.  So
  50.    for example if you load an image from buffer 2, then next time
  51.    you do an image-buffer operation, it will use 2 as the default
  52.    buffer, unless you specify a different one.
  53.  
  54. 4) "closeup" in 1-D CA now zooms in on the center of the bottom row,
  55.    rather than the center of the middle row.
  56.  
  57. 5) Black & white support is now implemented.  When running in
  58.    B&W mode, textures are used instead of colors.
  59.  
  60. 6) Images and transition-tables can be saved and loaded in compressed
  61.    format.  When you try to load a compressed file, Cellsim will
  62.    automatically detect that it is compressed (by the ".Z" suffix), and
  63.    load it in properly.
  64.  
  65. 7) Cellsim now looks in a default directory, in addition to the current
  66.    directory, when attempting to load an image or transition-table or
  67.    colormap.  It will also look for compressed versions of files if it
  68.    cannot find uncompressed versions.  The default directories to use are
  69.    defined in the makefile.  For example, if you have defined
  70.    IMAGE_DIR to be "/home/Cellsim/Images", and you try to load the
  71.    image file "bbm.128x", Cellsim will look for the following files, in
  72.    this order, until it finds one:
  73.       ./bbm.128x
  74.       /home/Cellsim/Images/bbm.128x
  75.       ./bbm.128x.Z
  76.       /home/Cellsim/Images/bbm.128x.Z
  77.  
  78.  
  79. 8) The "quick" random routine has been fixed.  Originally, it set half
  80.    of the cells to the zero state, and the other half of the cells had
  81.    values distributed evenly among all other states.  Now, it distributes
  82.    the random values evenly among all states (not treating zero specially).
  83.  
  84. 9) Cellsim can now save/load images in CAM-6 format.  However, the
  85.    correctness of the images written using this feature has not been
  86.    tested yet.  If you use this feature, we'd appreciate it if you let
  87.    us know if the images it generates come out correctly.
  88.  
  89. 10) Some more sample rules and images have been supplied; some of these
  90.     are simply to demonstrate the new Margolus neighborhood.
  91.  
  92. 11) If you have any of the following 3 environment variables set:
  93.           IMAGE_DIR, TABLE_DIR, CMAP_DIR
  94.     then Cellsim will look in those directories for images, transition
  95.     tables, and colormaps, respectively, instead of the default directories
  96.     defined in the Makefile, if it cannot find a file in the current directory.
  97.     For example, if you keep all of your transition files in your
  98.     directory /home/users/joe/Trans, and all of your images in your
  99.     directory /home/users/joe/Images, then you could put the following
  100.     2 lines in your .login, or simply do them manually:
  101.       setenv IMAGE_DIR /home/users/joe/Trans
  102.       setenv TABLE_DIR /home/users/joe/Images
  103.     Note that if you have these environment variables set, and Cellsim
  104.     cannot find a file in the current directory or the directory specified
  105.     in your environment variable, it will NOT look in the default directory
  106.     defined in the Makefile. That is, the environment variables effectively
  107.     override the default directories, when set.  This means you can disable
  108.     default-directory searching entirely by doing something like:
  109.       setenv IMAGE_DIR
  110.     In that case, if an image cannot be found in the current directory,
  111.     it will not be looked for anywhere else.
  112.  
  113.  
  114.             *********************
  115.             Changes from 1.5->2.0
  116.             *********************
  117.  
  118. 1) 256-state "computed-function" rules can now be used.  This greatly expands
  119.    the range of rules that you can run, by calling an update-function for
  120.    each cell in the array, rather than using a lookup-table.  There is a
  121.    price, however -- computed-function updates will run more slowly than
  122.    lookup-table updates; just how slow they go depends on how complex the
  123.    update-function is.  Simple functions (for example the heat rule) are not
  124.    intolerably slow; although on large arrays you will notice a big difference
  125.    in speed.  There are also two global parameters which get passed to your
  126.    update-function, which you can set by selecting items from the "Rules"
  127.    menu.  This is useful with things like the "heat.m256.c" rule, where it
  128.    is nice to be able to change a parameter without having to recompile
  129.    your update-function.
  130.    The way you actually use this feature is to write an update-function
  131.    in C, and compile that file into a ".o" object-file.  Cellsim can now
  132.    dynamically link in that object file, and call your update-function.
  133.    See the file "Rule_README" for more specific information on doing this;
  134.    there are a few special things your file must have, in order to be
  135.    properly linked in.
  136.    When using the computed-function updating, there are provisions for doing
  137.    more data-analysis.  Before and after every array-update, you can arrange
  138.    to have Cellsim call a function of yours, with a pointer to the current
  139.    array as a parameter.  Thus, your function can do whatever type of
  140.    processing or analysis or even alterations on the array that you want.
  141.    See the "Rule_README" file for more information, and the "heat2.m256.c"
  142.    rule-file in the "Rule_src" directory for an example of this.
  143.  
  144.    Also, note that colormaps are now 1024 bytes long (256 entries times
  145.    4 bytes each), although Cellsim can still read colormaps that are 64 bytes
  146.    (16 entries x 4 bytes) as they were in previous versions.  However, you
  147.    will immediately notice upon running    Cellsim that when the cursor is
  148.    in the Cellsim window, all other windows will suddenly go to strange colors
  149.    (assuming you are using a color workstation).  This is because Suns only
  150.    have 256-entry colormaps, and since Cellsim needs all 256 entries, the
  151.    other windows' colormaps get "swapped out".  There is no way to avoid this
  152.    and still be able to use all 256 entries.  There are other
  153.    limitations/problems with using a 256-entry colormap, which are documented
  154.    in "Fcn.README".
  155.  
  156. 2) You can now set an "FCN_DIR" environment variable, which works the
  157.    same way as the "TABLE_DIR" environment variable, except that "FCN_DIR"
  158.    is searched for computed-function rules (".o" files) that cannot be found
  159.    in the current directory, while "TABLE_DIR" is searched for lookup-table
  160.    files.  Thus, you can keep the two kinds of files separate, if you like.
  161.  
  162. 3) You can now invoke Cellsim once, and change neighborhoods, number of
  163.    states per cell, or image size, without having to call up a new Cellsim.
  164.    This process has also been automated, somewhat.  If you are running
  165.    Cellsim with an 8-state von-Neumann configuration, and try to load the
  166.    transition table file "life.m2", Cellsim will *automatically* switch
  167.    to the 2-state Moore neighborhood.  Similarly, if you are using an
  168.    image size of 128, and try to load "loop.256x", Cellsim will change
  169.    the image-size to 256 and load the image.  The file-name extension is
  170.    used to determine what the new configuration should be.  Thus, you are
  171.    *strongly* urged to begin using the filename extension standards which
  172.    have been used with Cellsim since V1.0 came out, if you have not been
  173.    already.
  174.    You can manually change the image size of neighborhood configuration
  175.    from the "Defaults" menu.
  176.    You can also disable the automatic changing of neighborhood configuration
  177.    and/or image-size, from the "Defaults" menu; if you are using transition
  178.    table files or image files with non-standard extensions, you should do this.
  179.    Note that change the neighborhood configuration clears out the transition
  180.    table, and changing image-size clears both the current image and all
  181.    of the buffers!  If you have something in a buffer which you don't want
  182.    to lose, you must save it to a file.  (Perhaps a later version of Cellsim
  183.    will simply resize the current image and the buffers).
  184.    If you change the number of states per cell, for example from 8 to 4,
  185.    the current image will have a bitwise AND performed with a mask that
  186.    brings it down the appropriate number of bits.  In the example of going
  187.    from 8 to 4 states, the 3rd bit would be cleared, because you would be
  188.    going to a 2-bit configuration.
  189.    Similarly, if you are in an 8-state configuration for example, and try
  190.    to load an image which has 8-bit values (256 states), then all cells
  191.    will be masked down to just the lower 3 bits.  If you want the image to
  192.    be read in properly, you must have enough states per cell (256 in this
  193.    example); you would have to change the neighborhood configuration and
  194.    reload the image.
  195.  
  196. 4) You can now change the defaults for IMAGE_DIR, TABLE_DIR, FCN_DIR,
  197.    and CMAP_DIR, from within Cellsim.  Under the "Defaults" menu, there
  198.    are various items which allow you to do this.
  199.  
  200. 5) The "general" random routine is now much more general.  It allows you
  201.    to change the values of cells within an arbitrary rectangle in the
  202.    array, and with more flexibility of the values you can set these cells to.
  203.    Usage of the new general random routine is documented in "cell.doc"
  204.  
  205. 6) You can now generate transition-tables by using a "lambda" parameter
  206.    or "rho" parameters.  Lambda is described in Chris Langton's article
  207.    "Studying Artificial Life with Cellular Automata", published in 
  208.    Physica 22D (1986).  More recent work with Lambda will be published
  209.    in "Computation at the Edge of Chaos: Phase Transitions and Emergent
  210.    Computation" by C. Langton, in the proceedings of the "Emergent
  211.    Computation" conference, to be published in a special issue of Physica D,
  212.    1990.
  213.  
  214. 7) If you press the middle mouse-button over one of the buttons in the
  215.    control panel, it will automatically select the last item you selected
  216.    from the menu under that button.
  217.  
  218. 8) You can save images in Sun raster format.  You can then use one of the
  219.    various public-domain Sunraster -> PostScript conversion programs out
  220.    there, to print the image on a laser-writer.
  221.    Note that if the image is color, you will have to run it through some
  222.    kind of color->monochrome converter of some kind, e.g. "rasfilter8to1 (1)".
  223.    You can't yet load images that are in Sunraster format; perhaps a later
  224.    version will have that feature.
  225.  
  226. 9) It is now much easier to write C routines to generate a lookup table.
  227.  
  228. 10) Tilde-expansion, and csh wildcard-characters will work in filenames now.
  229.     Thus, you should be able to load/save files such as "~/Images/xyz.64x"
  230.     or "~foo/Cmap/bar.cmap" or "abcdef*xyz.256x*".
  231.  
  232.  
  233.             *********************
  234.             Changes from 2.0->2.5
  235.             *********************
  236. 1) You can now attach to a Connection Machine (either by running Cellsim on
  237.    a Sun Front-End, or through the network).  You can run both lookup-table
  238.    rules and 256-state computed-function rules, on the CM.
  239.    Lookup-table rules are the same as on the CM (in fact, you can load a table
  240.    locally on the Sun, and send it to the CM from within Cellsim).  The
  241.    computed-function rules on the CM must be written in C/Paris, but this
  242.    gives you a great deal of flexibility, such as the ability to work with
  243.    more than 8 bits/cell, or even floating-point fields.
  244.  
  245. 2) There is now a "defaults" menu which has several popup windows, that
  246.    allows you to change the behavior of Cellsim more easily than before.
  247.  
  248. 3) You can now create "button macros" through 5 user-definable "sequences".
  249.    That is, if there is some sequence of buttons you find yourself hitting
  250.    very often, you can define a Sequence to perform those actions, and then
  251.    call up that Sequence with a single mouse-button-press.
  252.  
  253. 4) The "random" functions have been moved to a "Draw" menu, which also lets
  254.    you draw lines, hollow circles and "shaded" circles.
  255.  
  256. 5) You can now use an image-size of 512, in addition to the normal 64, 128,
  257.    and 256 of previous releases.
  258.  
  259. The "feel" of many of the features of Cellsim have been changed in version 2.5,
  260. so you are advised to skim through the "cell.doc" file, even if you have been
  261. using Cellsim frequently since it came out.
  262.  
  263.            ****************************************
  264.  
  265. If you create an interesting rule which you think others might be
  266. interested in, mail it (along with any images that go along with it)
  267. to hiebeler@heretic.lanl.gov or cgl@lanl.gov.
  268.  
  269. We would like to collect interesting rules from Cellsim users, to
  270. maintain a user-contributed library of rules to distribute with later
  271. versions of Cellsim.  Please compress and uuencode any lookup-tables
  272. or images before mailing them; C source code can be mailed "as-is",
  273. but please document the beginning of the file as the samples in the
  274. "Rule_src" directory have been, so that authors get appropriate credit
  275. for their code.
  276.  
  277.            ****************************************
  278.  
  279. Sometime in the not-too-distant future, maintenance and distribution
  280. of Cellsim will probably be taken over by Automatrix, a new cellular
  281. automata company in upstate New York.  They will be manufacturing
  282. CA hardware, and marketing CA software for different architectures,
  283. including a Cellsim-based package of rules implementing most of the
  284. examples given in the book _Cellular Automata Machines_, by Toffoli
  285. and Margolus.  They will possibly be organizing a CA newsletter as
  286. well.  You can get more information about Automatrix by writing to:
  287.  
  288.    Automatrix, Inc.
  289.    P.O. Box 196
  290.    Rexford, NY 12148  USA
  291.  
  292. They do not yet have an e-mail address, but should soon.
  293.