Small changes after proof-reading of WolframAutomata README.
[screensavers] / hacks / WolframAutomata / README.md
index d3546d1..91fe6e8 100644 (file)
@@ -10,8 +10,9 @@ together, thereby forming a circular universe for the cells to inhabit.  This
 line is drawn horizontally on the screen.
 
 Over time, this line of cells evolves according to rules, with some cells
 line is drawn horizontally on the screen.
 
 Over time, this line of cells evolves according to rules, with some cells
-switching on or off. Each new iteration is drawn below its predecessor, leading
-the screen to scroll vertically over time.
+switching on or off. Each new application of the rule to the universe is drawn
+on the screen as a new line directly below the previous generation's line,
+leading the screen to scroll vertically.
 
 The rules which govern the time evolution of this system depend only on the
 current state of a given cell and the state of its two immediate neighbors.
 
 The rules which govern the time evolution of this system depend only on the
 current state of a given cell and the state of its two immediate neighbors.
@@ -26,11 +27,12 @@ discussed at length in a
 
 ![Rule 110 Animated Screenshot](/screensavers/.git/blob_plain/HEAD:/hacks/WolframAutomata/screenshot_rule_110.gif)
 
 
 ![Rule 110 Animated Screenshot](/screensavers/.git/blob_plain/HEAD:/hacks/WolframAutomata/screenshot_rule_110.gif)
 
-Commandline flags are provided enabling the user to tweak attributes such as
-length and speed of simulation, cell size, rule number, colors, starting seed,
-and other attributes. For example, the screenshot below depicts Rule 73 with
-different colors than the Rule 110 screenshot. Like the Rule 110 screenshot, it
-uses `-cell-size 2` and seeds the simulation with only a single active cell.
+Commandline flags are provided which enable the user to tweak attributes such
+as length and speed of simulation, cell size, rule number, colors, starting
+seed, and other attributes. For example, the screenshot below depicts Rule 73
+with different colors than the Rule 110 screenshot. Like the Rule 110
+screenshot, it uses `-cell-size 2` and seeds the simulation with only a single
+active cell.
 
 ![Rule 73 Animated Screenshot](/screensavers/.git/blob_plain/HEAD:/hacks/WolframAutomata/screenshot_rule_73.gif)
 
 
 ![Rule 73 Animated Screenshot](/screensavers/.git/blob_plain/HEAD:/hacks/WolframAutomata/screenshot_rule_73.gif)
 
@@ -64,9 +66,9 @@ else, edit the `Makefile` to suit your environment per the comments included in
 that file. Note that the `Makefile` assumes a copy of the screenhack library
 source code is located at `../screenhack/` relative to this directory.
 
 that file. Note that the `Makefile` assumes a copy of the screenhack library
 source code is located at `../screenhack/` relative to this directory.
 
-For assistance setting `$(DEFINES)` on non-FreeBSD platforms, consider
-downloading the XScreensaver source tarball, running `./configure` in the
-unpacked directory, and examining the resulting `config.h` file.
+For assistance setting `$(DEFINES)` in the `Makefile` on non-FreeBSD platforms,
+consider downloading the XScreensaver source tarball, running `./configure` in
+the unpacked directory, and examining the resulting `config.h` file.
 
 Although WolframAutomata can integrate with XScreensaver, the presence of
 XScreensaver is not strictly required.  WolframAutomata will both build and
 
 Although WolframAutomata can integrate with XScreensaver, the presence of
 XScreensaver is not strictly required.  WolframAutomata will both build and
@@ -123,7 +125,7 @@ CLI: Simulation Length
 ----------------------
 
 If neither of the following two options are passed, the simulation runs as
 ----------------------
 
 If neither of the following two options are passed, the simulation runs as
-thought `-length 5000` was passed.
+though `-length 5000` was passed.
 
   - **`-random-length`**: A random length smaller than 10,000 generations but
     large enough to fill the screen is selected.
 
   - **`-random-length`**: A random length smaller than 10,000 generations but
     large enough to fill the screen is selected.
@@ -225,15 +227,59 @@ example, with prerequisite steps spelled out:
     git clone git://git.subgeniuskitty.com/screensavers
     cd screensavers/hacks/WolframAutomata
     make clean all
     git clone git://git.subgeniuskitty.com/screensavers
     cd screensavers/hacks/WolframAutomata
     make clean all
-    cp WolframAutomata /usr/local/bin/xscreensaver-hacks/
+    cp WolframAutomata /usr/local/bin/xscreensaver-hacks/wolframautomata
 
 
-Now create the file `WolframAutomata.xml` wherever your system stores
+Now create the file `wolframautomata.xml` wherever your system stores
 XScreensaver config files and populate it with the contents shown below. For
 example, on FreeBSD:
 
 XScreensaver config files and populate it with the contents shown below. For
 example, on FreeBSD:
 
-    vi /usr/local/share/xscreensaver/config/WolframAutomata.xml
-
-    TODO: Finish writing this file after the command line options are finalized.
+    vi /usr/local/share/xscreensaver/config/wolframautomata.xml
+
+    <?xml version="1.0" encoding="ISO-8859-1"?>
+    
+    <screensaver name="wolframautomata" _label="WolframAutomata">
+    
+      <command arg="-root"/>
+    
+      <string  id="rule_number"   _label="Rule number: "      arg="-rule %" />
+      <boolean id="rnd_rule"      _label="Random rule"        arg-set="-random-rule" />
+    
+      <string  id="seed_density"  _label="Seed density (%):"  arg="-seed-density %" />
+      <boolean id="seed_left"     _label="Seed left"          arg-set="-seed-left" />
+      <boolean id="seed_center"   _label="Seed center"        arg-set="-seed-center" />
+      <boolean id="seed_right"    _label="Seed right"         arg-set="-seed-right" />
+    
+      <string  id="length"        _label="Length (gen):"      arg="-length %" />
+      <boolean id="rnd_length"    _label="Random length"      arg-set="-random-length" />
+    
+      <string  id="delay"         _label="Delay (usec):"      arg="-delay %" />
+      <boolean id="rnd_delay"     _label="Random delay"       arg-set="-random-delay" />
+    
+      <string  id="cell_size"     _label="Cell size (px):"    arg="-cell-size %" />
+      <boolean id="rnd_cellsize"  _label="Random cell size"   arg-set="-random-cell-size" />
+    
+      <string  id="color_index"   _label="Color index (int):" arg="-color-index %" />
+    
+      <string  id="admiration"    _label="Admiration (sec):"  arg="-admiration-delay %" />
+    
+      <_description>
+    Displays the time evolution of elementary cellular automata.
+    
+    These automata consist of a line of cells, each of which may be either on or
+    off. To ensure every cell has neighbors, the two endpoints of the line connect
+    together, thereby forming a circular universe for the cells to inhabit. This
+    line is drawn horizontally on the screen.
+    
+    Over time, this line of cells evolves according to rules, with some cells
+    switching on or off. Each new iteration is drawn below its predecessor,
+    leading the screen to scroll vertically over time.
+    
+    The rules which govern the time evolution of this system depend only on the
+    current state of a given cell and the state of its two immediate neighbors.
+    These rules are formalized as Wolfram codes, where the code number is directly
+    convertible into a rule set.
+      </_description>
+    </screensaver>
 
 The next step integrates WolframAutomata into an individual user's XScreensaver
 config via the file `~/.xscreensaver`. If preferred, it could instead be done
 
 The next step integrates WolframAutomata into an individual user's XScreensaver
 config via the file `~/.xscreensaver`. If preferred, it could instead be done
@@ -254,7 +300,7 @@ demonstrated.
                                     xplanet -vroot -wait 1 -timewarp 400          \
                                       -label -origin moon                       \n\
       GL:                           fireflies -root                             \n\
                                     xplanet -vroot -wait 1 -timewarp 400          \
                                       -label -origin moon                       \n\
       GL:                           fireflies -root                             \n\
-                                    WolframAutomata -root                       \n\
+                                    wolframautomata -root                       \n\
                                     blitspin -root                              \n\
     <snip>
 
                                     blitspin -root                              \n\
     <snip>