WebsideCA - Supporting Information
[Note: Cellsprings, a new applet, has replaced
WebsideCA, and much of the information on this page is out of
date. No attempt has been made to update this page other than to change the
links that point elsewhere on the site to reflect this page's new location.
Please see Isle Ex's Java home for current
WebsideCA is a Java applet that allows you to
explore the behavior of all the CA rules featured in the
section of Isle Ex, and of a great many other 2D CAs besides.
(What's a CA? See the
CA music background info page.)
The main thing that sets WebsideCA apart from other Java 2D
CA-runners (that I know of, as of this writing, etc.) is the great variety of
CA rules it lets you define and run. In addition to the usual Moore neighborhood
(H9) binary outer totalistic rules, the applet currently supports:
In addition, members of another large class of nonbinary rules can be defined by
merely specifying up to 254 refractory decay states for any binary lookup table.
(See my CA rule reference for background
on the rule definition schemes implemented by Webside.)
- von Neumann neighborhood (H5) binary outer totalistic rules
- arbitrary H5 and H9 binary rules; this puts a mind-boggling number of
rules at your disposal
- cyclic rules (a special class of nonbinary rules)
- general nonbinary H5 rules of cellsizes 3 and 4 (these can be run but not
defined in the current version)
Another unique feature of the applet is that it will optionally
chart the progress, as the CA updates, of two key
variables. (It is such variables that I have mapped to music elsewhere on
Isle Ex. Read about it.)
Other features worthy of note include:
I happened across the Transers rule using a
development version of WebsideCA, and there must be many other gems
lurking out there in the vastness of rule-space awaiting discovery. Seldom has
such a noble calling beckoned the web-surfer with a little time to kill :)
These notes assume at least a passing familiarity with CA concepts (such as you
can obtain elsewhere on the site). Moreover,
provide exhaustive documentation of the applet. Instead, I have tried to
concentrate on those features that might otherwise require clairvoyance
- WebsideCA was written to the Java 1.0 spec and thus should
(in theory) run under any browser supporting Java. (But it will run a lot
better under some browsers than others. See the
performance and problems sections below.)
- The applet offers a variety of ways to seed
orbits "randomly" (density control, regional randomization, perturbation, etc.).
- The size of the CA universe, which in Webside is always closed,
is selectable. Universe size is an often neglected but
important codeterminant of the global properties of a finite CA. (See
more on CA universes.)
Main Panel: Orbit Initialization Subpanel
This bank of controls along the bottom margin of the main panel is for
setting a CA rule and initial state. Some of its more obscure features are
These buttons are handy if you've overridden the selected rule or orbit
with custom settings and then want to go back to it. (That is,
they exist solely to save you from having to do an embarrassing
Sets the CA rule to the last custom rule applied,
in case you have loaded one of the installed rules in the interim. (Custom
rules are created in the Rule Parameters Window.)
When this is checked, every time you select one of
the installed rules, the orbit list is refilled with a set of one or more
sample orbits for the new rule. Unchecking the box allows you to set the
rule independently of the orbit. When you do this, the current state
becomes the seed for the new rule. That way you can seed any rule with
any state showing in the display.
State operations subpanel
This nest of five controls on the far right of the orbit init panel,
together with their associated Apply>> button, are for seeding
the CA interactively (as opposed
to loading a file). The five controls are described below, moving clockwise
from the upper left.
- State operations (SOs) list
Various algorithms which seed the CA by setting cells in a centered
rectangular area of the cell matrix (which area is referred to herein
as the "state operation argument" or SOA).
If no substate is enabled the SOA is the entire
universe. The "perturb" options modify
existing contents, whereas the other operations do a replacement.
Note that randomizing SOs generate a unique state each time
they are applied. (If for some reason you want to run two different rules
starting with the same randomly-generated configuration, recover
the initial state by pressing the Devolve button and then switch rules
with Synch deselected.) Here's what the randomizing SOs do
(the others being obvious):
Fills the SOA with random ones and zeros, the percentage
of ones being determined by another of the
five SO subpanel controls.
Devolves the orbit (returns to the seed state) and then scrambles the
cells in the SOA.
Provides a uniform distribution of cell values - that is, roughly equal
densities of each of the C (i.e., cellsize) values. It's especially useful in
initializing orbits under certain "egalitarian" nonbinary rules (i.e., rules in which
no cell value is "special", such as
Under C=2 rules, of course, it has the same effect as
Increases the density of 1-valued cells by 1% of the total number of cells in the
SOA (or by one cell in small SOAs). The main thing about the
perturb operations is that, except for the few random cell replacements, they leave
the existing CA state intact. So this is one way to go if you want to see the effect
on an orbit of a small alteration in a seed state. (The other way to go
would be to operate on a small SOA.)
This is a perturb option along the lines of @Uniform.
It increases the densities of nonzero-valued cells, rather than just the
density of ones. Obviously, the results will only differ from
@Perturb+ under a C > 2 rule.
This perturbs the state in the opposite direction from the above
two options - that is, it decreases the density of nonzero cells.
- Percentage of 1-cells list
Choose a density level for the @RandBin operation.
- Universe size list
Choose among a set of universe sizes. The current state operation will be applied
in the new universe.
- Enable confined operation checkbox
Enables/disables the next control, the SOA field.
- State operation argument (SOA) edit field
Here you may type in the cell dimensions (number of columns by number of rows)
of a substate, formatted as a single string as per the default. If this
field is enabled by the preceding checkbox, the current SO
will be applied only within a rectangle of the specified size centered
on the CA matrix. Note that '1x1' is a legal entry, which allows you to set
a "dot" seed.
Main Panel: Status Bar
The far-left field denotes the current CA orbit using the notation
Rulename[Seedstate]. A leading '@' symbol in either component designates
an item created interactively (as opposed to having been
loaded from a file). The left middle field reports the universe size
(cols x rows), as well as the "zoom level" of the display, from 100%
("actual size" - i.e., cells are represented by single pixels) to
the maximum of 500%.
Main Panel: CA Display
A couple of things to note here: (1) the cells of the CA
are displayed using a consistent color map and (2) the entire universe is always
shown. The display dimensions of the cells (reported on the Status Bar as
a "zoom" level) is auto-adjusted to fit the display space, unless the universe
is smaller than 80x48, in which case the display shrinks while the cells remain
at 500% magnification.
[Note: For necessary background, make sure you
check out the CA rule section of the TME
Reference, especially its explanation of
This window is actually a stripped-down rule editor. Whenever it is
opened, it will be loaded with the current rule's parameters. It is a
modeless window, i.e., it can remain open as you work with the main panel.
If it is
already open when you load a new rule into the applet, it will be updated
with the newly loaded
rule's parameters and pulled back to the front to display them. (But this
may not work in MS IE4, as discussed below.)
The idea here is to provide for a sort of "live" rule-reference,
where you can easily
walk through the installed rules, viewing and comparing their parameters.
But of course that's just the beginning. You can also test your own
modifications to the installed rules, or create new rules from scratch. Just
press the Apply button to make your custom rule the current rule.
Applying a rule also "memorizes" it for later recovery
during the session using the main panel Recall
button. (Only one rule can be memorized at a time - each Apply
overwrites the memory space.)
In the General Binary lookup-table editor, each birth/survival pair
of table entries has a unique configuration of neighbor states, which are
shown for the currently-selected pair via the neighbor-state checkboxes.
If you change the states of these checkboxes, a different entry
pair, corresponding to the new neighborhood configuration, is selected. You can
a new entry pair by clicking on either grid with the mouse. As for
you can manipulate individual entries using the Is Born? and
Survives? checkboxes, which mirror the states of the selected
A few words need to be said about rule codes. A numerical encoding,
i.e., a conventional packed representation of a rule's lookup table, is implemented
for Outer Totalistic tables and 5-hood General Binary tables. (The
code formats are documented in the TME
Reference.) This feature
operates in two directions: the code updates as you alter the table by other
means, and the table updates if you enter a new code. (Please note that in the
latter case you have to press the Enter key after typing the code
for it to
take effect.) These codes provide a compact and unambiguous way of referring to
and entering particular rules, and also can be used to make
systematic changes to a table during editing.
Another feature expected to be quite useful in editing is a bit more
subtle. When you
change the rule group from Outer Totalistic to General Binary, the
OT table is used to
initialize the GB table. That is, you get the more diffuse GB representation of
the OT rule. This OT to GB expansion facilitates an approach
to designing rules in which one makes small nontotalistic modifications to
totalistic rules, as, for example, by discriminating between N and S
neighbors or between adjacent and opposite neighbor-pairs.
The Demographics Viewer
To record the demographic history of a CA, have the demographics viewer (DV)
open when you start the evolution. It need not have focus, however, and in fact
the evolution will run faster if the DV is in the background. You can then bring it
to the front as desired for viewing. Note that the DV is resizable, and should
rescale appropriately if you manually resize it. You can also open the DV at any
point into the CA
orbit, and it will record from that point on. This is useful if you want to
examine a region well into the orbit without having the horizontal scale
compressed. Finally, if you change CAs while the DV is open, it will reinitialize
in preparation for recording the new orbit.
[Version 1.01 update: WebsideCA now has 28 CA rules pre-installed for
your exploration, including 7 rules that were not in the original installation.
I've provided info on the new rules at the end of
the section, leaving the preliminary-version discussion largely intact.]
- Main Panel
|Go!/Stop||] (right square bracket)|
|Devolve||[ (left square bracket)|
|Apply>>||= (equal sign)|
Note to MSIE users: It has recently come to my attention that in some
versions of IE the above keys won't work if a dropdown list currently has focus
(i.e., is highlighted). Clicking somewhere else (such as the button equivalent
of the key, or the CA display) will move the focus and re-enable the keys.
- Rule Parameters Window
While editing General Binary rules, as long as
the table-grids have the focus (click anywhere on the grid), the
cursor keys (i.e., the arrow keys and Home, End,
PageUp, PageDown) provide another method for getting
around the table. As for table modification, the birth or survival state can be
toggled for the currently selected neighbor-state position by pressing the
B or S key respectively.
As part of my Transmusical Experiments Reference,
already posted information on some of the most important of the installed rules,
and I won't duplicate that material here.
the applet itself constitutes a rule-parameter reference, as
mentioned above, so there is no need for me to reiterate the
bare rule definitions. I would, however, like to make some general comments
about some of the rules that aren't listed in the TME Reference.
In the process of developing WebsideCA, I ran across this terrific
rule in the
BOT-with-decay family. As far as I know
not been described elsewhere, but
please let me know if I am mistaken. I've never seen a rule with so many
distinctive entities that occur "in the wild", with remarkable
inter-entity transformations. Besides various sorts of gliders, some of which
reflect upon collision, there are an abundance of naturally-occurring
glider-stream generators and editors (as I call them...a stream passes
in one side and a different stream passes out the other...sometimes it passes
out in a different direction.) The degree to which Transers is like a
self-organized erector set is amazing. Many of the sorts of objects that people
build with great contrivance in Conway's Life
occur here for free.
Mind you, unlike many BOTD rules, Transers is not just a pale imitation of
Brain, for it is populated with
many fixed entities, and in general is less chaotic yet more varied than
with fewer "species" but more "phyla" in its "natural history".
[In early 2001 as I update the links to Scott Ladd's site, I hasten to refer the
reader to the above disclaimer about the "deprecated" nature of
the info on this page.
Apropos of the present entry, rules similar to Swirl have been discovered.
See especially Pinwheels and Cyclones in my new
I learned of this intriguing rule at
Scott Robert Ladd's site.
(His LifeBox applet
runs CAs.) Ladd informs me that, as far as he knows, he is the rule's discoverer.
Swirl is unique in my experience for its self-organized rotating structures.
While spirals of one kind and another tend to be common in CAs (see the
and Cyclish), Swirl's whirlers seem a breed apart
because of their discrete nature - isolated "whirlpools" in an otherwise dead
sea. There are two sizes of whirlpools that occur regularly. Ladd calls
the smaller the "swirlpool" and the larger the "flamewhirl". Also there
is a glider with a flickering tail which Ladd aptly refers to as a fire or flame
The most peculiar object I've seen appear spontaneously in Swirl is one I've been
the "swirlybird". It's a glider that sends out two mutually annihilating
swirlpools with each flap of its "wings". It doesn't last very long in a closed
universe, though, because it runs afoul (afowl?) of its own, er, droppings.
(It's hard to resist seeing a moral in that.)
A number of the rules generate various Sierpinski gasket-oids, as discussed
in connection with FractalBeads in the
TME Reference. Besides FractalBeads,
WebsideCA features Springski, Fallski, Simpliski, and the Pinskilator.
Simpliski is the only one I actually adapted from a reference, the others were
originally generated at random with my DOS software. I subsequently simplified
the tables of all except the Pinskilator to their bare essences. I haven't done
anything with the Pinskilator, because my software doesn't yet
support viewing or manipulating the individual entries of general nonbinary
Besides the classic parameter set for the
Cyclic CA described in the TME Reference,
I've installed two others. The names I've used go
Cyclic51-10 is a trivial variation, chosen in order to get the self-organization
to occur in a smaller universe. (Small is good if you're impatient. Watch a
few runs in the demographics viewer and see the delta-density soar above 80%.
For the 80x48 universe, it usually it ends up at 100%, meaning every cell is
changing value on each step. As a consequence, cyclic
spells s-l-o-w...in Java, anyway.)
Cyclic93-3 is a very interesting rule in its own right, and
another good one for demographics-watching, where its virtues as an oscillator
can be easily appreciated.
These are all "my" rules, but the concepts of the first two are, I think,
pretty standard, and Slugfest's table, randomly generated, desperately needs
to be cleaned up (please volunteer). Cyclish is of course so named because
of its resemblance to the "true" Cyclic CA.
This classic rule was discovered by Gérard Vichniac. It is also known in
some quarters as "Vote", but it constitutes a rather peculiar election formula in
that a slight sub-majority wins over a small majority. This variation helps
break down the "gridlock" that occurs with straightforward majority rule.
(Here's some fun: change the table in the rule-editor so that a cell strictly
follows the state of the neighborhood majority, and note the difference.)
Anneal is a more interesting rule than first meets the eye. Try
it with multiple uniformly-distributed starts to better appreciate it. If
you're lucky, you might get an orbit with an especially long
transient, or one of the even rarer cases with a very long end cycle. These
orbits, marked by diagonal banding, can be captured more readily in the
small 35x21 universe. (I'm no topologist, but I guess the band is
sort of a helix on the surface of the torus - like a barber-pole stripe
with one turn, but where the barber "pole" has been bent into a ring.)
Speaking of barber poles, I once saw an orbit in which one of these helicoid
structures was not in a fixed position, but instead perpetually rotated around
the torus. Unfortunately, I failed to save the initial state, not realizing how
rare it was. I've not
been able to find another such orbit via manual shuffling. Looks like a job for a
search program. Of course, if you were going to take the trouble to write
such a program, you might as well equip it to do more extensive
state-transition mapping. (More openings for volunteers.)
That's my big-one-that-got-away story. I imagine that anyone who's played
with CAs for a while has one.
General nonbinary rules
For a given hoodsize (H) and cellsize (C) there exists an exhaustive tabular
representation containing CH entries. WebsideCA currently
supports only H5C3 and H5C4 tables, and you can't edit the tables.
There are presently four of these rules installed. Besides Pinskilator, which
has already been mentioned in connection with the other
there are Wired, Rewrite, and Sisypharm. All of these rules were encountered in
my DOS software using its brute table-randomization facilities, and, as such,
need to be "cleaned" up, but I haven't yet written a proper table-editor
for this rule group.
Featured in the version 1.0 installation are six rules that were not in the
preliminary versions, and many new orbits. Most of the new rules were
recently discovered by Mirek Wójtowicz
(see annotated link below). For now, I have
selected just four of my favorites from among Mirek's many discoveries.
These four, itemized below, are all in the totalistic-with-decay
class of rules ("Brain family").
As for orbits, in addition to installing various simple seeds as is my wont,
I've imported a few patterns of the more "engineered" variety. These patterns
shipped with Mirek's Win32 program MCell, and, to give credit where
credit is due, the corresponding seed-states in my applet are all named
'MCell' suffixed by a collating number. The descriptions that accompanied the
imported patterns attributed their construction to either Mirek himself or, in the
case of the two patterns for Conway's Life,
to no one.
Please be aware that these imported orbits offer but a small taste of the huge
number Mirek has assembled.
This new rule in the Brain family is included in
the version 1.01 installation. I encountered
it recently while working on WCA's successor. From a random
seed state of 30% ones, it tends to form stable "islands", with active coastlines
and fascinating inter-island "commerce". But an orbit's fate is
quite sensitive to the starting percentage. Below 25% or so the world remains
sparsely Brain-like, whereas somewhere above 30% the islands begin to accrete
into larger "landmasses", so that by 40% you nearly always end up with a
single huge "continent".
At the risk of offending devotees, this is what I'm
half-seriously calling the rule Mirek dubbed 'Star Wars'. The substitution saves
my American ears - which, owing to overexposure to our own
fakery, have become hypersensitive - from having to hear myself use a hackneyed
Hollywood name to denote a fresh and important CA rule. (Mirek is Polish so he
wouldn't have this problem.)
If I'm going to contribute to the export of my native market-hype, I'd
rather it were with a heavy dose of irony and wordplay. And nothing warlike, if
possible - I don't care to add to that particular trade surplus. Anyway, I figure
Mirek can't object, since I renamed the rule after him...er, sort of.)
MirekGro is especially suited to "engineering" projects in the tradition of
Conway's Life. In particular, it's notable
abundance, intricacy, and
variety of its glider guns, which both occur "naturally" and can be designed to
arbitrary specifications. Although still in the dawn of its publicity, MirekGro
already seems to have attracted a considerable following, with Mirek and other
MCell users busy at work creating extensive pattern libraries for
Of course, the immortal Brain rule - the
progenitor of other BOTD rules such as MirekGro - abounds in
glider guns also, but they are themselves all gliders. Indeed, the cynic might
say that a lot of the buzz around MirekGro boils down to the fact that its guns,
while Brain-like in other respects, tend to stay where you put them. Diehard Brain
fans such as myself may find ourselves vaguely troubled by this partial domestication.
If MirekGro is "Brain on meds", then the treatment may, as it often does
in the physical case, involve more loss than gain. (Or perhaps more accurately,
loss misinterpreted as gain.) One might
hazard a hope that someday CA engineers will instead learn to go with Brain's
flow, designing novel contraptions made only of interacting glider streams.
However, while I appreciate engineering
works, they're not really my cup of tea.
I'm more interested in spontaneity, emergence, whatever you want to call it. That
is, I'm most intrigued by CAs that do something interesting with a minimum of
contrivance. Hence, my own sample orbits tend to begin with either random or
From this "something for nothing" perspective, MirekGro is similar to
Transers, its close relative. There are, however,
important differences, perhaps the most obvious being that MirekGro tends to build
shifting skeletal structures. Transers, on the other hand, seems to particularly
favor the emergence of "editors" - those tiny widgets that both emit and absorb
gliders (or "laser beams"). Also, in general,
the self-organized objects in the Transers world seem to be more distinct
from one another.
A methodical comparison of these two rules, whether empirical or analytical, might
also take note of their undescribed cousins in the family designated by the
|Cellsize=4||(1) MirekGro||(2) [unnamed]
|Cellsize=5||(3) [unnamed]||(4) Transers
These four rules are by no means equivalent. Just for example, try
running each of them starting with the '2x2ecc' seed. Cool, huh?
- Pictures, Nova, Worms
These are the other rules of Mirek's I've added. They are all cool rules, with
distinctive features. The first two are especially intriguing. Rather than
blabbing on about them here, though, I'll just let the examples speak for
themselves in the applet.
When I installed this rule I thought it was one of Mirek's, but I now see
he attributes it to Rudy Rucker. Anyway, it's also a totalistic-with-decay
rule. Its main distinction is that it tends to build a variety of linear
Like Slugfest, this is a rule I encountered some years ago
engaged in the relaxing pastime of rule-table shuffling. Also like
Slugfest, it is (1) a Moore general binary (with decay) rule, and (2)
badly needs to be "cleaned up".
As for simple seeds, they often lead to surprising results. And the
rule clearly has great potential from the "engineering" standpoint.
Global content issues
Many of these rules - for example,
Swirl, and the Cyclic rules - will
not have been properly experienced until you have run a number of trials using
"random" initial states. A good baseline seed is the 15 or 30 percent 1-cells
option, or, for some rules, the uniform distribution option. Experiment!
The sample orbits are something of an unsystematic grab bag - whatever happened
to strike my fancy or seemed illustrative of something. The random
starts have often (e.g., with Brain, Transers) been selected for the sake of
their end results, which may take some waiting. There's a Transers orbit like
that, where something happens well after you might figure it's locked in its
terminal cycle. Surprise! Now it's done.
The other seed type for which WebsideCA shows a fondness is the
"simple" variety, which is a deliberately vague term, but you know it when you
see it. The simplest of simple seeds is of course the ever-popular single
1-valued cell (aka Dot).
In the case of those rules for which Dot is a font of plenty rather than a
bust, I have usually included it among the examples. But again, experiment!
For CA music lovers only: Preliminary tests indicate that many of the
rules described in this section have great musical promise, among them
Swirl, and Cyclic93-3.
[Version 1.0 note: Since the applet's "CA engine" hasn't changed since
the first version, this v0.8 material should still be valid. Of course,
the browsers have marched on.]
An inadvertent side-benefit of Webside's update speed readout
feature is the informal performance measure of your Java environment it can
provide. Below I list a few rates achieved on my own modest system, for
comparison purposes. As you can see, HotJava is the winner overall,
though Netscape equals it for many CAs. As is to be expected, each CA taxes a
different mix of resources.
System: AMD K5 PR-133, ATI VideoXpression+ 2MB
(800x600x24bit mode), Windows 95
[Version 1.0 note: The first several entries were seen under v0.8. Those
which haven't been
re-encountered are presumed to still occur under the right...or rather,
wrong...conditions, since the changes shouldn't have affected them.]
||Netscape 4.05||HotJava 1.1.4||Microsoft 4.01
Most of the infelicities of which I'm aware have only been observed under
particular Java implementations. No doubt other such
implementation-specific bugs will turn up, since I've only been able to test a
combos. (What doesn't seem to have been adequately anticipated for this otherwise
brilliantly conceived language is that its reliability would be at the mercy of
sundry 3rd party implementations.
However, things are definitely improving on that front, and I for one am rooting
for the language, because from the coding standpoint it makes C++ feel almost
as clunky as FORTRAN, and I haven't wanted to go back.)
IE4 popup-window issues
(a) The Rule Parameters Window and Demographics Viewer (DV) usually don't move
to the front when they're supposed to.
(b) There might be null pointer
exceptions when the DV opens while a CA is running. (Not sure about this one
because I haven't seen it since I reverted to Sun's Java 1.0 compiler.)
MS's AWT threads seem to take their own sweet time servicing requests and I
surmise that these two problems stem from that behavior. (Ideally I would
purge any implicit expectations as to AWT timing from my code, but that would
involve global restructuring of threaded-execution logic that I'm not inclined
to tackle at the moment.)
(a) You'll have to bring the windows to the front manually using
the taskbar (or whatever).
(b) If opening
the DV freezes CA evolution, close the DV and in the future only open
it when the evolution is paused, at least for fast CAs. Once it's open
you can start the evolution going again and bring the DV to the front as desired
without having to pause.
In IE 3.0 / Win95, if you move the mouse around while the CA is running, it
slows down and doesn't speed back up when you stop moving the mouse.
If you do want to do something with the mouse, Stop
the CA, do your thing, then Go! again. But if you should still
inadvertently "enable" the sluggishness, it seems to be curable by
Stoping and then Go!ing again.
Rule load failure
This is a Netscape thing. For reasons that
are obscure to me at the moment, a few rule files (the general nonbinary rules
and sometimes Fallski) don't load properly off the network, but load fine from
cache. Assuming you're running the applet from the
Isle Ex installation, you'll know this bug has bitten if you get
an error box saying that the CAR lookup table size is invalid.
Actually, I've built a work-around into the code that eliminates
this problem (from the users perspective) on most systems. But for
the infamous Netscape3/Mac Java the fix is only partially successful.
If you should encounter this problem using something else, let me know.
Press the rule (i.e., leftmost) <<Reload button. The second load
attempt will usually work.
Rule parameter window layout
These are minor annoyances. Some early Javas don't size this window as
requested (or the demographics viewer either). They come up too big. No big deal.
More annoying is another IE3/Win95 thing: for general binary rules, the neighbor
labels don't line up directly over their respective checkboxes. However, the
problem isn't fatal - you can tell which labels go with which boxes.
Blank CA on startup
So far this has only been reported under the Netscape/Mac Java.
The default CA will still run on pressing Go!, however.
This problem is an exception to the "implementation specific" rule, but the
Isle Ex installation avoids it. I mention it only because some of
you may run the applet offline and load your own files. If you do so, one of the
things you should know is that the universe size limit for the proper operation of
the demographics feature is presently less than that for the rest of the program.
For CAs whose demographics you want to track, the GIF files you load shouldn't
exceed about 32000 pixels.
CA display "bleeds" outside of canvas
This mysterious problem was reported under Apple's MRJ 2.1.4 (the current
version as I write this) - but only when using the standalone Applet Runner,
not MSIE. It seems that sometimes after you Apply a custom rule, when you
press GO! the new CA's display is messed up, with "cells" straying outside
the universe display.
The work-around is to hit the Devolve button. This reportedly fixes the
display if it's already messed up, and also acts as a preventative if you click
it before pressing GO!.
BTW, the recent MRJ, despite this problem, is by all accounts much the best Mac
Java - or maybe I should say that, as far as I've seen, it's the
only Mac Java.
Unlike the other entries, this one doesn't have anything to do with the Java
environment on the client - it's a server problem. Regrettably, the servers hosting
my new domain have so far been spotty in performance at best.
The presenting symptoms are that sometimes when you select a new rule or orbit it
seems to hang, while the "LOADING..." message displays in the upper left corner
of the main panel (you should also get a "waiting" mouse cursor). This can be
a bit disconcerting.
I can only say that anytime this has happened to me, the CA has eventually loaded.
You can move the
cursor off the applet and do other things, but
refrain from clicking applet controls in desperation, tempting though it
may be. (I guess I need a cancel function, requiring my own loading thread.
Ah, well, maybe next edition.)
Hourglass cursor persists after loading
This was noted using Netscape 4.08 on Windows - I'm not sure what
other environments it may apply to. The problem is that the
hourglass cursor doesn't revert to the arrow until you move the
mouse. The solution is to move the mouse :)
Also, take note of the other feedback mechanism, namely the "LOADING..."
message at the upper left of the main panel.
Main panel keyboard shortcuts sometimes don't work
This is another IE4 thing just noticed. The dropdown lists seem to
hog all the regular keyboard keys when they have the focus, for use
in matching items. (Never mind that the character is nowhere in the
list, the keypress will still be eaten instead of being passed up the
chain.) I may look into a possible work-around at the programming level, but
meanwhile, if you click somewhere else to remove the focus from the list you
can use the shortcut keys again.
1.01, November 15, 1999.
Minor maintenance revision.
1.0 beta, September 1, 1999.
- Removed the popup orientation tip, it having just come to my attention
that for some visitors the box was popping up repeatedly. Turns out certain
browsers reinitialize the applet
at a time when only a restart is expected (such as
returning to the page via the browser's back button). Anyway, that lame popup
would probably be an annoyance for repeat visitors even without the
hyperactivity, so I substituted an HTML version of the tip
that speaks only when spoken to.
- Added a new rule, SediMental, to the installation.
- [6-Dec-99] Today I made some minor changes to the orbit presets,
mainly for SediMental and Transers. I also
changed the former's name to mixed case, so as to emphasize the allusion to
Brain. The applet's executable code
0.81, May 2, 1999.
- Complete overhaul of the rule/state init panel
- More convenient navigation among rules and sample orbits. The
burgeoning number of presets could no longer be accommodated comfortably
by the original simple linear list scheme, so I switched to a dendritic
- The controls for setting initial states are both more powerful and more
convenient owing to the parallelism afforded by multiple controls (Again, formerly
there was just a linear multipurpose list of states and operations.) Of
course, things are still a bit clunky, but considering the amount of
screen real estate we have to work with, we're doing pretty well.
- separate universe-size control
- many more random density levels
- ability to specify an arbitrary rectangular SOA
- improved perturbation operations
- keyboard shortcut
- Changed the main panel hot keys to avoid conflicts.
- Added a popup orientation tip that greets you when you load
- Enhanced the presets (these are a feature of the installation rather than
the applet proper but who's got time for quibbles).
- Added six new rules (see itemization above).
- Replaced some sample orbits and installed additional ones.
- Renamed a couple of the existing rules and many of the states.
Minor maintenance revision.
0.80, August 16, 1998.
- Packaged the applet's classes, changing a few class names in the
process. These changes won't affect end-use, but were needed
to properly accommodate future applets and other Java programs.
- Added a few substate sizes to the SOA drop-down list.
- Repositioned the 1-valued cell in two of the four 'Dot' states (used for
setting the universe size), for consistency with the other two states and with
substate positioning (re: the previous item). The seed cell is now always
centered according to the famous formula i = (size - 1) / 2,
where i is a zero-based index and any remainder of the division is dropped.
- Made a few other changes too trivial to mention.
The following are some annotated links to Web-based CA resources that I have
found especially interesting and/or useful. The list is very far from exhaustive,
the selection being limited partly by the chaotic trajectory of my own
surfing activity. The sites are presented in no particular order.
Mitchel Resnick and Brian Silverman (the discoverer of the immortal Brain rule)
have created an excellent Java-based active essay on
complexity concepts, which uses several CA rules for illustration.
Highly recommended as an accessible hands-on way to quickly build the conceptual
background for getting more out of WebsideCA.
Stephen Wolfram's CA Papers
Landmark articles by one of the leading lights in CA research. These are technical
treatments, but more accessible than most such. I'm living proof that a
non-mathematician can get something from them. Also, Wolfram's
well-implemented HTML is an example others would do well to emulate for
the format of online research articles.
Alan Hensel's Life applet
For Conway's Life exploration, the conventional wisdom is "the bigger and faster
the better". And here's the biggest and
the fastest kid on the block, hands down. It's fitted with a rich assortment of
cell-patterns, and, though it's geared to Life, it will also run most other
rules of the standard H9 BOT persuasion. Very impressive.
Paul's Page of Conway's Life Miscellany
This site features a very convenient catalogue of Java-animated Life patterns
that Paul Callahan created from Hensel's collection. Callahan's applet is actually more than just
an animator, though - it's an innovative little Life simulator in its own right.
And there's much else to interest the CA-tician in his "miscellany".
Scott Robert Ladd's LifeBox applet
This visually appealing CA applet by an expert Java programmer and author is home
to the Swirl rule. LifeBox also runs many other rules,
specifically, in my parlance, any H9 BOTD rule of cellsize 8 or less. Ladd's
site also features a number of other intriguing applets in the complexity studies
As I add this link in the summer of '99, Mirek Wójtowicz,
using his excellent Win32 program MCell, has been exploring CA
rules at a feverish pace. His efforts have yielded some valuable Web
resources, including an extensive
and a corresponding
representative states. While most of these rules have not
been installed into WebsideCA, a goodly number can
be entered manually. Rules in Mirek's "Life" and "Generations" groups are
particularly straightforward to enter. Fall update: Mirek has
recently written an
At the moment, its main claim to fame is its very large number of installed rules.
Schaller's CAOS applet
Martin Schaller, a doctoral student at CERN, has posted the best applet
I've seen for running one-dimensional CAs. 1-D CAs offer much of the
behavioral richness of 2-D CAs in a simpler model, making it possible to view
whole CA histories at a glance. But seeing is believing, so load CAOS
and set the display to Size=1/Flow=scroll and
the rule group to Sites=5/Rule=symmetric, making sure that
Init=random. Wow! An extraordinary world
of interacting gliders. Now explore other 5-site symmetric rules by
toggling rule-bits along the right side (only some of which are enabled, because
of the symmetry). You should find some more terrific rules in no time. Great
The Primordial Soup Kitchen
The website of David Griffeath, an expert on self-organization in CAs and
discoverer of the quintessential CA in that regard, the Cyclic CA. Of the sites
I've visited, this one takes the "CA central" honors. A huge amount of CA lore
reposes here (far more than I myself have found time to examine). Besides
providing details, often Java-activated, of Griffeath's own cutting-edge
research, the site keeps abreast of sundry CA-oriented developments across