久しぶりにCAM-PCのムービーを作成してみた。
今回は、「GREEN.EXP」というルールセットだ。 ランダムなシードからスタートして幾何学的な形状が次第にカオス的なものに変化していくところは、以前に紹介した「HEX-BANG」と似ている。
時間的にリバーシブルであるところも同じだ。
ムービーでは、途中でステップを逆転して初期状態に戻るまでを示している。 末尾にCAM-FORTHで記述されたソースコードを示すが、かなり込み入ったコードになっている。これはさすがにCAM-PCのマニュアルがなければ理解不能だろうと思うので、PDF化したものをここ(CAM-PC-Manual)に置いておく。
また、ソースコードの冒頭に記述されている「CAM book」というのは、The MIT Pressが出版した"Cellular Automata Machines A New Environment for Modeling" (Tommaso Toffoli and Norman Margolus)を指す。米AMAZONでも時折、古本で売られている。また、Google Bookでも一部を除き閲覧可能だ。
現在のPCのマシンパワーを考えると、いまやこのようなハードウェアを用いている人など皆無だろう。発売元のAutomatrix Inc.も、今や連絡先すらわからずマニュアル掲載の許諾を得ることすらできない(automatrix.comでヒットするのは、全く別の会社である)。そのような訳で、マニュアルについては、同社からクレームがあれば掲載を取りやめるので悪しからず
\ Greenberg-hastings, reversible GH, and Langton rule 16Feb89nhm
  These rules are due to Pablo Tamayo and Hyman Hartman, and
are based on earlier rules due to Greenberg, Hastings, and
Langton.
  The simplest rule involves the von Neumann neighborhood.  A
cell fires if any of its four neighbors are active, as long as
the cell hasn't fired too recently.  Once a cell fires, it
becomes refractory and remains inactive for 2 steps.  The
reversible version remembers the past state of each cell and
uses subtraction modulo 3 to achieve reversiblity, as discussed
in Section 14.2 of the CAM book.  A slight variation is also
available.
  We start with the Reversible Greenberg-Hastings rule.  An
interesting initial condition is a few ones (say, 15) in
plane 0 -- this is our initial pattern.
\ Greenberg-hastings, reversible GH, and Langton rule 25Jul87nhm
NEW-EXPERIMENT    CAM-A   N/VONN   &/CENTERS
: OR4                      NORTH  SOUTH  EAST  WEST  OR OR OR ;
: OR4'                     NORTH' SOUTH' EAST' WEST' OR OR OR ;
: PRESENT                                             CENTERS ;
: PAST                                               &CENTERS ;
: REFR'                                     OR4 OR4' OR 1 XOR ;
: SUBMOD3                               - DUP 0 < IF 3 + THEN ;
: GREENH                         PRESENT { OR4 2 0 0 }  >PLNA ;
: REV-GREEN          PRESENT { OR4 2 0 0 } PAST SUBMOD3 >PLNA ;
: REV-LANG       PRESENT { OR4 2 REFR' 0 } PAST SUBMOD3 >PLNA ;
: -IRGB      ALPHA ALPHA' BETA BETA' PAIR PAIR PAIR NOT >IRGB ;
\ Greenberg-hastings, reversible GH, and Langton rule 16Feb89nhm
: Greenberg-Hastings          MAKE-TABLE GREENH    ;   ALIAS H
: Reversible-Green            MAKE-TABLE REV-GREEN ;   ALIAS G
: Reversible-Lang             MAKE-TABLE REV-LANG  ;   ALIAS L
: Reverse.time                     1 0 3 2 PERMUTE ;   ALIAS R
: -IRGB.map                        MAKE-CMAP -IRGB ;   ALIAS F2
CAM-B  N/VONN  &/CENTERS
: PRESENT>PAST &CENTERS >PLNB ;
MAKE-TABLE PRESENT>PAST
Reversible-Green  DECIMAL 15 0 RND>PL

 
  
 
 
 
 
コメントする