Download compiled versions of
ddlabz08 for Linux, Mac, Cygwin and DOS.
The ddlabz08 source code
is available, including Makefiles, readme, GNU license, and notes.
Click figures to enlarge.
#x.x.x refers to the relevant
Section (or Figure x.x/Table x.x) in this
Feb 2021 pdf update
which includes new chapter 0 "Updates".
2d and 3d neighborhood templates #10.1.2

1d neighborhood templates #16.10.1
Even sized 1d ntemplates are skewed to the right,
but symmmetry in spacetime patterns (STP)
can be toggled onthefly with keyhit x (#32.9.1),
as shown below for v8k2 1d isorules.

isorule spacetime patterns from a singeton seed conserve symmetry, 2d and 3d
Figure 16.16

unslanting 1d STP of even k ntemplates
Figure 16.15

transforming the full lookuptable, rcode, to isorules #13.5.1
examples show majority rules as rcode, and transformed to the isorule (Figure 13.3)

When the rcode stringgraphic is active, options isoI/R/H/* (#16.10.4)
will transform any rcode into an isorule. This applies to the rcode version
of any other rule type such as totalistic. Data shown in the terminal will
include at least the isorule size and hex expression.
I transforms with no fuss. R transforms as above and changes the stringgraphic
from rcode to isorule, and gives new options isofile/rnd/groupf/R/G
(#16.10.5) described in the next panel. H for 2d binary Moore templates only, gives options for the Hensel notation
(#16.10.9) also described in the
Jan 2018 release. * (star) transforms as I but outputs extensive isorule data
in the teminal (Table 16.4).
The neighorhood matrix image itself can now be saved as a PostScript file;
default file name my mrxPS.ps (#14.11).
The sizes of the isorule for 2d and 3d are difficult to calculate analytically.
The tables below give isogroup sizes computed algorithmically in DDLab (Table 16.3)
 much shorter than rcode v^{k}

examples of isogroups Figure 16.18

Once the isorule stringgraphic is displayed with isoR (#16.4.1.1)
new options isofile/rnd/groupf/R/G are presented (#16.4.1.2),
described in #16.10.5:
f gives a topright prompt load/savel/s ASCIIL/S, hexh (16.10.5) xxload/savel/s the isorule as a binary *.isr file (#16.14). xxASCIIL/S the isorule as an ASCII string *.tbl file (#16.22). xxhexh allows the isorule to be set or amended in hexadecimal (#16.5). R for creating biased random isorules as in (#16.3). G to graphically display isogroups or the isorule prototypes (#16.10.6)
summerised below.
isogroups displayed graphically #16.10.6
Entering G above, a half screen right window opens with isogroup info,
this example for v2k9(2d):
isogroups(102) v2k9(2d) isoindex=101>0 group(size 1)
511
(and these prompts)
newgroup: downret/] up[ index(1010)
scale(7)e/c morem alla/A PScripp bactrackq
downret/] up[ for successive singe isogroups
for example the index 79 gives decimal equivalents 367 463 487 493 of neighborhoods
scale(7)e/c expand/contracts the graphics scale. alla show a list of isogroups, as much as will fit
the window. morem continues the list. The output is similar to
that shown on the left. allA shows all the isorule prototype neighborhoods, the first
in each isogroup with the lowest decimal equivalent.
Examples in the panel below. PScripp saves the info and graphics as a PostScript (.ps) file (#36).
Left: Examples of 3 sucessive isogroups shown graphically. The size of each
group and the number of groups depends on internal symmetries by reflection and spin.
The isogroups are ordered from high to low according to the decinal equivalent
of the prototype pattern, which sets the isoruletable index, for example 101 to 0
for the 2d Moore neighborhood v2k9.

isorule inputfrequency histogram (IFH), by value or log_{2} Figure 31.9

The dynamic Input Frequency Histogram (IFH) (#31.5) can be displayed
according to the isorule, but this needs to be selected by entering isoi
 at the prompt entropye isoi (#31.5.2)
Bar height is the proportion of each isogroup visited in an
adjustable moving window of timesteps (#32.12.8).
This height is amplified by onthefly by
keyhits ")" and restored by
"("  then if "(" is hit again
(a new option) bars are converted to log_{2} to clearly show all
active bars but still distinguishes between rare and frequent (#32.12.2).
There are other onthefly options "_/&" to shrink/increase the IFH window and bar layout (#32.12.3)
and "0" to reduce bars to 1 pixel (#32.12.1)..
The histogram reveals the key isogroups that maintain gliders and
gliderguns, as well as isogroups that are rarely or never visited.
Left: The logically universal v2k9 Sayab rule running its glidergun,
and showing bars both amplified and as log_{2}.
The cells in the spacetime snapshot are colored according to histogram calors instead
of value.

IFH progressive filter/unfilter Figure 32.30

The IFH allows the progressive filtering of
spacetime patterns according to frequency given by the height of
histogram bars with onthefly keyhits "f/F/a/=/" (#32.11.5).
Keyhit "f" filters from high to low frequency,
and "F" unfilters from low to high. For each frequency filtered/unfiltered,
a black block appears/disappears at the base of the relevant bar,
and the corresponding cell disappears/reapears in the spacetime
pattern. Keyhit "a" unfilters the entire
filter scheme, "=" (equals sign) toggles antifilter to reverse the filter scheme,
and "" (dash) toggles just the appearance of filtering on the STP.
When pattern colors correspond to histogram colors, filtering allows
cross referencing a particular isogroup index with its occurrence in
the spacetime pattern, so helps to reveal how complex structures,
gliders, eaters and gliderguns are built, and indicates the
sensitivity of isogroups to mutation.
Pattern filtering can be toggle off with keypress ""
(the minus sign  new option)
while the histogram filtering scheme remains active and visible.
Left: The v3k6 emergent spirals rule on a hex lattice
with a log_{2} isoIFH
size 92 in a moving window of 100 timesteps. Spacetime pattern
cells are colored according to the IFH bar responsible for
that cell. For the same timestep, 6 stages of filtering f1
(the initial state unchanged)
to f6 (high to low frequency) are marked with black blocks below the relevant
bar, and shown as filtered snapshots. In the dynamics of this
rule (v3k6x1.rul) gliders first emerge
and gradually selforganise into stable spirals.

isorule mutation/filter game Figure 16.23

The IFH allows an onthefly interactive mutation/filter game (#16.10.8)
while watching the effects on STP and conserving gliderguns.
Mutations are made with keyhits "1/?/2" (#32.5.4)
The algorithm works in conjunction with progressive filtering (panel above).
Keyhit "1" selects an unfilterd isogroup bar at random and
flips the output for a binary rule. For a valuerange v>=3 a random
value different from the current output is assiged. A red block is
shown at the base of the IFH bar  beside the black filter block if this
is also active. When the latest mutation is restored with
keyhit "2" its red block is removed. To select a specific
mutation index, enter "?".
Editing the rule stringgraphic can also be done at the pause prompt (#32.16.1).
Any number of mutations can be made in sequence, and restored in reverse
order to finally return to the start rule. When applied to an
isorule, mutations conserve isotropy, of course.
Left: The Spiral rule glidergun showing showing its log_{2}
IFH which was firstly completely filtered (black blocks), then neutral
outputs were randomly mutated (red blocks), with each mutation making one of the two
possible changes because v=3. The glidergun is preserved, though
other dynamics would be altered.

isorule inputentropy and minmax variability Figure 33.6

The entropy of the IFH, the inputentropy, can be measured
and plotted over time (#33.1).
The minmax entropy variability
is the greatest upslope for a run of timesteps, discounting
a short initial run to allow the dynamics to settle into its typical behaviour.
The average entropy and its variability over a
window of timesteps indicates the quality  ordered/complex/chaotic
 of the dynamics, very roughly as follows,
Top Left: 250 timesteps of the gameofLife from random 40x40 initial states
with a density of 30% shown as an axonometric projection where
timesteps progress from left to right. Colors follow the isoIFH.
Below Left: The entropy plot generated simultaneously:
xaxis timesteps 1 to 250,
yaxis normalised Shannon entropy from 0 to 1. The minmax entropy
is the greatest upslope after ignoring a short initial
run, in this case of 22 timesteps.

automatically classifying isorulespace Figure 16.16

The two measures, mean entropy and minmax entropy variability, are
applied for an automatic classification of rulespace by creating
scatter plots for large samples of rules from a set of random initial
states (#33). This example for 50000 v3k7 2d isorules. Measures were started
after 22 initial timesteps and taken over the subsequent 200
timesteps,
The plots distribute isorule behaviour according to a merging continuum of
order/complexity/chaos on a 2d surface, and allow a targeted
examination of individual rules or rule subgroups at characteristic
locations on the plot. Details and examples for creating, sorting,
probing and interpreting the scatter plots are provided in #33.
Hitherto the scatter plots were based on full ruletables or
totalistic rules. Now the scatter plots can also be based on the
isorule IFH.
Top Far Left: Meanentropy/entropyvariability (minmax)
scatter plots based on a 60x60 2d hex
lattice v3k7.
Each dot represents one or more isorules
falling within the squares of a 256x256 grid where the xaxis is
minmax entropy, and the yaxis is mean entropy, with dot colors
indicating the pileup frequency.
This presentation allows rulespace to be probed to examine rules
and dynamics. Two mouseclicks (or keyboard coordinates) define a
patch of rules, now indicated with a black (or red) rectangle
(#33.6.2).
Top Near Left: The pileup histogram with a zaxis showing log_{2} rule frequency.
Left: The typical shape of the xyz entropyminmax scatter plot
with characteristic dynamical behaviour found in different parts
of the landscape and the basis for a probing search avoiding the
chaotic peak. The high variability complex plain contains gliders
and interacting mobile structures but is unlikely to support
gliderguns because of overactive dynamics and rare stable
structures.

rcode neighborhood matrix graphic  save as PostScript
v2k5 Figure 13.1
Below: v8k4 Figure 14.5

The rcode neighorhood matrix is a graphic showing all k neighborhoods in a row,
stacked vertically for compactness, and in a descending order
of their binary (or vary) values from left to right which is also the rcode index
(#13.3, #13.5). Options in
#14.11 allow rescaling, showing just part of a large matrix, and a new option
to save the graphic as PostScrip file  default filenamename my_mrxPS.ps.
Left Top: The complete neighborhood matrix for v2k5 rcode..
Left Below:
The neighborhood matrix for v8k4 rcode starting on the left at the max index 4095,
and the same matrix zooming in and showing just 51%
starting at index 2088 on the left. Colors follow the value color key (#7.1).

Return to the
Discrete Dynamics Lab home page.
Last modified: Feb 2021