久しぶりに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
コメントする