alternative neighborhoods and HROT

Short description

The article explores alternative neighborhoods in cyclic KAs, going beyond Moore and von Neumann neighborhoods. The potential for creating new neighborhoods is only limited by imagination, and the article focuses on a less-researched area of KA enthusiasts. The article introduces the Mur neighborhood, denoted as NM, and provides examples of ornamental and random appearances. The article also discusses the von Neumann neighborhood, which is built based on the “Manhattan distance.” The notations for the neighborhoods include parameters such as neighbor search radius, number of cell states, values/ranges of the number of neighbors necessary for cell survival/birth, and the designation of the neighborhood used.

alternative neighborhoods and HROT

👾, Habre!

In the last article on cyclic KAs, we briefly touched on the topic of alternative neighborhoods, looking at several examples. Although we used only Moore and von Neumann neighborhoods before, there are many other named neighborhoods, and the potential for creating new ones is only limited by our imaginations.

Today’s review is compatible with one more extension: the LtL article mentioned that the cell birth and survival parameters can support multiple values ​​and ranges in some other configurations. First of all, of course, it was about HROT (Higher-Range Outer-Totalistic) – generalization LtL changes, in which our today’s examples will be.

The topic of alternative neighborhoods is extremely poorly researched by the community. KA enthusiasts are most focused on considering the already known rules, rarely deviating from generally accepted changes. And this is quite understandable – even the simplest B/S The configuration contains a multitude of rules and patterns, with any single expansion presenting almost infinite potential for exploration. We move precisely “in breadth”, considering not so much individual cases as the variability of the entire area.

1. Mur neighborhood

For the sake of order, it is worth mentioning all the named neighborhoods, and let’s start with a familiar example.

View of the neighborhood in radii 1-4

In the notation, this neighborhood is always denoted as NM. Unless the rule states otherwise, Moore’s neighborhood is taken as the default value.

In the future, we will denote a logical rule for constructing a neighborhood based on x and y coordinates, with the central cell (0, 0). For the neighborhood of Moore, we simply take all values [-R, R].

The central (considered) cell is never defined by the neighborhood. It is accepted not to include it in the count of neighbors, and for explicit inclusion a parameter is used M1 as a rule This app was introduced in LtL configurations, and, somewhat surprisingly, HROT generalization omits this point in classical notation, although, of course, nothing prevents us from using it.

We will accompany each neighborhood with examples with at least one ornamental appearance and one random one. Some examples are selected specifically to match the neighborhood, but do not forget that the neighborhood is not a determining parameter for the final appearance, but only part of the rule.

24 p., 200×200, 4×100% | R2/G40/M0/S8-24/B1,3,5,7,9/NM

:h Notation


– Neighbor search radius. Regulates the neighborhood.


is the number of cell states. The minimum is 2 (alive/dead), higher values ​​are responsible for the duration of “aging” of a cell, when it is no longer considered a living neighbor for other cells, but has not yet released a new cell for birth. If correct, it is customary to use in HROT and LtL


(Count of states).


is a boolean parameter, whether the cell’s own state is taken into account when counting neighbors. HROT does not have this parameter (=always assumed to be 0), but we will keep the option to use this parameter.


– values ​​and/or ranges of the number of neighbors necessary for cell survival. Ranges are written with a hyphen (if considering backward compatibility with LtL, a colon and ellipsis can be used or


), values ​​and ranges are separated by commas.


– completely similar


but is responsible for the number of neighbors necessary for the birth of a new cell.


– Designation of the neighborhood used. This is exactly what we are talking about today.


– separator between rule parameters. The correct notation uses “


» (yes, both between parameters and between ranges/values), but there is also a variant without separators between parameters.

Characteristics of the example – Animation duration; [ускорение анимации от 100мс. на фрейм, если есть]; field size; the size and percentage of central filling at the start.

23 p., 200×200, 100×10% | R2/G5/S2,4/B4/NM

2. Von Neumann neighborhood

The second most popular neighborhood, also known to us, is built according to the “Manhattan distance” or “metric of city blocks”, where only adjacent cells are taken into account, and diagonal cells are reached in two steps.

Marking: NN
Rule: abs(y) + abs(x) <= R

38 p., 200×200, 100×100% | R2/G5/S2.5-9/B3-4.10/NN

30 p., 200×200, 100×50% | R3/G6/S3-5/B4/NN

A few more interesting ships

30 p., 200×200, 100×50% | R3/G6/S3-5/B4/NN

25s., 400 400, 50 30% | R5/G8/M1/S4-6/B5/NN


19 p., 300×300, 10×100% | R3/G2/S1,3,5,7,9,11,13,15,17,19,21,23/B1,3,5,7,9,11,13,15,17,19,21, 23/NN

35 p., 200×200, 30×100% | R1/G2/M1/S2,4/B1,3/NN

3. Euclidean distance

The first unfamiliar neighborhood slightly rounds off the von Neumann neighborhood with all the familiar pants. For clarity, new, compared to the previous neighborhood, cells are marked in blue.

Marking: N2
Rule: (y**2 + x**2)** 0.5 <= R

21 p., 200×200, 80×100% | R2/G25/S4-8/B4,6-10/N2

45 p., 200×200, 70×50% | R3/G4/S10-15,19/B8-15,21-28/N2

25 p., 200×200, 150×50% | R3/G2/S5-8,17-18,21,24,26-27/B7-8,17,19,22-28/N2

4. Circle

We can achieve even greater rounding if we add cells whose inscribed circles have some area of ​​intersection with the circle from (0, 0) with radius



Marking: NC
Rule: ((y**2 + x**2)** 0.5 <= R) | ((R**2 - 0.25 + y**2 + x**2) / (R * 2 * (y**2 + x**2)**0.5) <= 1

I hope the comments will tell you how to make this rule simpler. Right here, in the first part, we took the cells corresponding to the Euclidean distance and added part of one of the formulas () to the area of ​​intersection of the circles. Since we do not need to calculate the area itself, but it is enough to make sure that the intersection exists, we simply check that acos is correct.

25 p., 550×550, 10×100% | R2/G5/S2-6/B1-2/NC

1024×1024; G3

27 p., 1024×1024, 10×100% | R2/G3/S2-6/B1-2/NC

33 p., 200×200, 100×50% | R6/G2/S37-64/B38-51/NC

5. Chess board

Probably the most valuable neighborhood, with a lot of the most interesting rules.

Marking: N.B
Rule: (y + x) % 2

14 p., 400 400, 400 100% | R3/G2/S0-5,8,11-22,24/B6,16/NB

15 p., “Rivers”, 200×200, 180×50% | R3/G3/S0-5,8,11-22,24/B6,16/NB


2 min., 10 runs, 200×200, 100×50% | R10/G2/S25-28/B72-133/NB

35 p., 200×200, 100×50% | R2/G5/S2-3/B3,8/NB

6. Chess board: inversion

This variation is much more interesting than it might seem. The inversion in this case makes one small, but very important change – the cell under consideration and all its neighbors in the neighborhood turn out to be of the same “parity”, which was not the case in the usual checkerboard form. This leads to the fact that we have two independent species coexisting on the field at the same time, which gives interesting results on some rules.

The inverted form has no established notation. I think adding “i” is the most logical option.

Marking: NBi
Rule: (y + x) % 2 == 0

20 p., 200×200, 10×100% | R5/G13/S9-33/B16-24/NBi

33 p., partial filling, 200×200, 150×50% | R1/G2/S1-10/B2-10/NBi

35 p., full fill, 200×200, 150×50% | R1/G2/S1-10/B2-10/NBi

7. Play

Marking: N#
Rule: (abs(y) == 1) | (abs(x) == 1)

25 p., 672×672, 1×100% | R2/G3/S2-4,6-9/B1/N#

54 p., 200×200, 100×15% | R2/G2/S4-6,12-16/B5-6,14/N#

8. Cross

Marking: N+
Rule: (y == 0) | (x == 0)

40s., speed ×3, 200×200, 7×100% | R4/G2/S3,6-12/B4/N+

After 10,000 iterations

This is the final look. Only small blinkers remained.

38s., speed ×2, 200×200, 7×100% | R3/G2/S5-9/B3/N+

24s., speed ×1.5, 200×200, 100×70% | R3/G2/S5-9/B3/N+

9. St. Andrew’s cross

Another neighborhood with a single “parity”.

The names of the last two neighborhoods are direct translations of the original English names “cross” (not jebus) and “saltire”, although the adaptation would probably be closer to “plus” and “[диагональный] cross”, respectively.



Rule: abs(y) == abs(x)

27s., speed ×2, 400×400, 8×100% | R3/G2/S6-10/B3,8/NX




30s., speed ×2, 400×400, 200×50% | R3/G2/S6-10/B3,8/NX

10. Star

A combination of two past “crosses”.

Marking: N*
Rule: (abs(y) == abs(x)) | (y = = 0) | (x == 0)

15 p., 250×250, 10×100% | R2/G12/S2-15/B1-3,6-12/N*

40 p., “Icebreaker”, 200×200, 200×10% | R2/G3/S0-2,4-8/B6-7/N*

As mentioned at the beginning, the topic of neighborhoods is rather poorly researched, and even the list of “recognized” neighborhoods with labels ends at number ten.

Even so, there are still neighborhoods for other grids, lots of user neighborhoods, and some very interesting details.

We will talk about everything. Don’t switch.

Read also

← Previous part


Next part (TBA) →

Related posts