[comp.theory.cell-automata] Who needs what?

hiebeler@cs.rpi.edu (Dave Hiebeler) (02/03/90)

  I'd like to address some points in Rucker's article...

In article <9002011758.AA00742@megalon.acad.com> rudy@megalon.UUCP (Rudy Rucker) writes:

> For $59.95, CA Lab gives you a pure software CA simulator.  On a fast
> 386, the speed can hit about 10 updates a second, as compared to the
> CAM-6's 30 updates a second.

  Well, a minor correction -- CAM-6 goes at 60 updates/sec, on a
256x256 array (you didn't mention what size your timing was done
with).  The speed of CAM-6 does not depend on the speed of the PC it's
plugged into -- it runs just as fast on an AT, XT, whatever.


> But speed isn't everything.  CA Lab uses 8 bits of state per cell as
> opposed to CAM-6's 4 bits per cell, meaning that in CA Lab you can create
> considerably more complex rules.

  Speed isn't everything, you're right.  But then again, it is
something.  I wouldn't exactly want to run FHP fluid-flow simulations
on my Apple II+.  :-)  But seriously, sometimes you want your
simulation to run like mad, so you can do a billion time-steps or so,
other times you want other things.

  Sometimes, I've had to really sit around and think for a while about
how to fit a rule into just four bitplanes, to fit it on CAM-6.
Sometimes, I gave up, and then a year later tried again and found it
very easy.  Sometimes, it just took a few minutes to get it down to 4
bits.  Other rules (say, heat diffusion) need more than CAM's 16
states/cell to work well.  In that case, you need to do one of the
following:
  - use CA Lab
  - use Cellsim (public-domain CA simulator for Suns)
  - use a Connection Machine
  - use CAM, by allocating extra memory buffers and swapping data around
  - or use some other general-purpose CA software not mentioned above,
    either on a small computer or mainframe.

  It really depends on how long you have to run your simulations, and
how much data you usually need per cell, and how much data-analysis
you want to do while running.

> 
> Create rules how?  Not in Forth, for God's sake, in C, Pascal or even
> Basic.  Yes, CA Lab allows you to write a short program in one of these
> languages calling on language specific include files that we provide.

  This is actually an important point.  I know some people who have
refused to use CAM-6 because they'd have to program it in Forth.
A good programming interface for creating rules is handy to have.  The
CAM-6 sure doesn't have what I'd call a good interface, although the
newer version, CAM-PC, will probably have C routines to create rules
(perhaps other languages as well, but I really don't know).

  I think that having a good programming interface for CA rules is a
pretty important subject.  In working on the new versions of Cellsim,
I've tried to improve the rule-generation facilities there, as I found
the rule-generation method in the first release of Cellsim pretty
unbearable.  I'm pretty pleased with the way it is now, although it
still can use some improvements.  [The next release of Cellsim will be
most likely coming out later this Spring, I think, so you can see what
I'm talking about.]

  Another important point is having a good interface for general use,
in addition to rule-programming.  CAM-6 actually wasn't too shabby,
although it was fairly simple.  The early Cellsim was OK, and my first
update was OK but not great.  I think the latest version of Cellsim
(still in progress) is not bad, for a SunView-based CA interface.

  So Rudy's article did bring up some important topics, although it
may have sounded more like a used-car ad. :-)

  I'd be very interested in seeing some discussion here, by people who
have encountered other interfaces (either for general use, or rule
construction) to cellular automata, and what was good and bad about
them.

Disclaimer: I'm speaking for myself, not as an employee/student/whatever.
-- 
Dave Hiebeler                Internet: hiebeler@turing.cs.rpi.edu (preferred)
Computer Science Dept.         Bitnet: userF3JL@rpitsmts  (last resort)
Amos Eaton Bldg.
Rensselaer Polytechnic Institute / Troy, NY 12180-3590