Completing the set of bounded grids

For general discussion about Conway's Game of Life.
Post Reply
User avatar
muzik
Posts: 5614
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Completing the set of bounded grids

Post by muzik » December 12th, 2021, 12:18 pm

Bounded grids are a feature which Golly and LifeViewer both currently support, allowing for a finite grid's edges to be glued together such that a pattern can be executed on a desired topological manifold. Not all possibilities (for a square) are possible yet, and this thread aims to document what currently remains to be added as well as propose notations for each.

Cylinder (finite)
Infinite cylinders can be supported by having a torus of size 0 on one of the two axes. However, finite cylinders are not a possibility.

In a finite cylinder, two opposite faces would be connected to each other, as is done in a torus. The other two opposite faces would act as sharp boundaries, like in the "Plane" topology.

The letter used to denote these isn't exactly easy to come up with: C for Cylinder is already taken for cross-surface, and T for Tube is taken for torus. The third option, which I'll use for now unless someone can come up with something better (I considered R for Ring but it seemed too forced), is A for Annulus.

A * would be neccessary for one of the two bounds, which would indicate which of the two sets of opposite faces would be connected. This is the same notation used to determine which of the sets of faces is twisted on a Klein bottle.

Code: Select all

x = 92, y = 44, rule = B3/S23
71bo$71b2o$2b40o10b40o$2bo38bo10bo18b2o18bo$2bo38bo10bo18bo19bo$2bo38b
o10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo
38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$
2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo26b
obo9bo10bo20bobo15bo$2bo11b3o9bo3bo10bo10bo11b3o7bo3bo12bo$2bo10bo3bo
8bo2bobo9bo10bo10bo3bo5bobo2bo12bo$b3o9b5ob3o4b3o11b3o9bo10b5ob3o6b3o
10bo$5o8bo3bobobo4bobo10b5o8bo10bo3bobobo6bobo10bo$2bo10bo3bob4obob3o
12bo10bo10bo3bob4o3bob3o10bo$2bo21bo16bo10bo23bo14bo$2bo38bo10bo38bo$
2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38b
o10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo
38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$
2bo38bo10bo18bo19bo$2bo38bo10bo18b2o18bo$2b40o10b40o$71b2o$71bo!
[[ VIEWONLY ]]
A functional mock-up of how A30,30* would work using ExtendedLife states:

Code: Select all

x = 30, y = 32, rule = extendedlife:T30,32
30E16$16.4A$15.A3.A$19.A$15.A2.A3$6.3A$5.A2.A$8.A$8.A$5.A.A5$30E!
Mobius Strip
This is a similar case to the cylinder above, in which two opposite faces are connected, and the other two are solid boundaries. The difference here is that the two connected faces are inverted, like is seen on Klein bottles and cross-surfaces.

It seems that the letter M is unused for bounded grids so far, meaning it's free to use for this new topology.

Again, a * would be needed to determine which of the two sets of faces have a connection.

Code: Select all

x = 92, y = 44, rule = B3/S23
72bo$71b2o$2b40o10b40o$2bo38bo10bo18b2o18bo$2bo38bo10bo19bo18bo$2bo38b
o10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo
38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$
2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo10b
o3bo11bobo9bo10bo10bo3bo5bobo15bo$2bo10b2ob2o8bo3bo10bo10bo10b2ob2o6bo
3bo12bo$2bo10bobobo8bo2bobo9bo10bo10bobobo5bobo2bo12bo$5o8bo3bob3o4b3o
11b3o9bo10bo3bob3o6b3o10bo$b3o9bo3bobobo4bobo10b5o8bo10bo3bobobo6bobo
10bo$2bo10bo3bob4obob3o12bo10bo10bo3bob4o3bob3o10bo$2bo21bo16bo10bo23b
o14bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$
2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38b
o10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo
38bo$2bo38bo10bo38bo$2bo38bo10bo18bo19bo$2bo38bo10bo18b2o18bo$2b40o10b
40o$71b2o$71bo!
[[ VIEWONLY ]]
A functional mock-up of how M30,30* would work, again using ExtendedLife:

Code: Select all

x = 30, y = 32, rule = extendedlife:K30,32*
30E12$15.A2.A$19.A$15.A3.A$16.4A7$6.3A$5.A2.A$8.A$8.A$5.A.A5$30E!
Flipping the Sphere
Spheres are also one of the topologies of bounded grids which are supported. The following are two ways to make a sphere, which can be considered mirror images of each other.

Code: Select all

x = 94, y = 44, rule = B3/S23
20bobo48bobo$20b4o46b4o$2b40o10b40o$2bo17b4o17bo10bo17b4o17bo$2bo17bob
o18bo10bo18bobo17bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2b
o38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo
10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo
38bo$2bo38bo10bo38bo$2bo15b4o19bo10bo14b4o5bobo12bo$2bo14bo23bo10bo13b
o10bo13bo$5o12b3o21bo10bo13b3o7bobo10b5o$b3o15b3ob3o13b5o6b5o13b3ob3o
15b3o$5o16bobobo14b3o8b3o16bobobo14b5o$b3o13b4o2b4o14bo10bo13b4o2b4o
14b3o$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$
2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38b
o10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo38bo10bo
38bo$2bo38bo10bo38bo$2bo38bo10bo38bo$2bo18bo19bo10bo19bo18bo$2bo18b2o
18bo10bo18b2o18bo$2b40o10b40o$21b2o48b2o$21bo50bo!
[[ VIEWONLY ]]
However, only the left version is currently supported. Compare the two patterns below:

Code: Select all

x = 30, y = 30, rule = B3/S23:S30
bo2$bobo2$3bobo23bo2$5bobo2$7bobo2$9bobo2$11bobo2$13bobo2$15bobo2$17bo
bo2$19bobo2$21bobo2$o22bobo$o$o24bobo2$4bo22bobo$4bo!

Code: Select all

x = 30, y = 30, rule = B3/S23:S30
28bo2$26bobo2$o23bobo2$22bobo2$20bobo2$18bobo2$16bobo2$14bobo2$12bobo
2$10bobo2$8bobo2$6bobo2$4bobo22bo$29bo$2bobo24bo2$obo22bo$25bo!
In the first, the barberpole survives. In the second, it cannot survive, and therefore dies out. The blinkers also become a traffic light in the second case.

As was proposed in the image, I'd suggest that the other form of the sphere be added simply by appending a * to the number, in which case the right hand version of the sphere mapping would be used. When run on this grid, the second pattern would work identically to the first.
Last edited by muzik on September 11th, 2022, 5:06 pm, edited 2 times in total.

GUYTU6J
Posts: 2200
Joined: August 5th, 2016, 10:27 am
Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
Contact:

Re: Completing the set of bounded grids

Post by GUYTU6J » December 12th, 2021, 1:22 pm

Let me go to extreme more or less on the relationship between edges. Try sending a knightship (represented by fishhook) to one side of the boundary, and there will be 17 possible outcomes. One of which stops the knightship as if it has hit a border of eternal OFF cells, which is the behaviour of plane. Each of the rest 16 corresponds to a red output location with respect to the green input:

Code: Select all

x = 34, y = 34, rule = B/S012345678History
34F$F32.F$F8.D3.2D4.2D3.D8.F$F6.3D3.D6.D3.3D6.F$F5.D4.D.D6.D.D4.D5.F$
F5.2D3.2D8.2D3.2D5.F$F3.2D22.2D3.F$F2.D.D22.D.D2.F$F2.D26.D2.F$F.2D26.
2D.F$F32.F$F3.2D22.2D3.F$F4.D22.D4.F$F.3D24.3D.F$F.D28.D.F$F.2A29.F$F
.A.A28.F$F3.A28.F$F3.2A27.F$F.D28.D.F$F.3D24.3D.F$F4.D22.D4.F$F3.2D22.
2D3.F$F32.F$F.2D26.2D.F$F2.D26.D2.F$F2.D.D22.D.D2.F$F3.2D22.2D3.F$F5.
2D3.2D8.2D3.2D5.F$F5.D4.D.D6.D.D4.D5.F$F6.3D3.D6.D3.3D6.F$F8.D3.2D4.2D
3.D8.F$F32.F$34F!
I'm gonna sleep so I won't provide a similar scheme for hexagonal or triangular bounded grids.

User avatar
muzik
Posts: 5614
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Completing the set of bounded grids

Post by muzik » December 12th, 2021, 2:01 pm

Hexagonal and triangular based bounded grids will definitely be a challenge to implement. I have an entire thread dedicated to the very, very many things regarding these things that need figured out if we're to have functional parity between all three.

Pertaining to bounded grids in specific, one potential problem immediately jumps to mind: chirality. For rectangular grids, we take for granted the fact that we can stack squares together to get something completely mirror symmetric (every 2x2 square you see here is the same universe, just colored differently to highlight them and make the fact each universe is represented by a 2x2 square easy to see):

Code: Select all

x = 32, y = 32, rule = none
2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B
2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B
2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B
2A2B2A2B2A2B2A2B2A2B2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B2A2B
2A2B2A2B2A2B2A2B2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B2A2B
2A2B2A2B2A2B2A2B2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B2A2B2A2B
2A2B2A2B2A2B2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B2A2B2A2B
2A2B2A2B2A2B2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B2A2B2A2B2A2B
2A2B2A2B2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B2A2B2A2B2A2B
2A2B2A2B2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B2A2B2A2B2A2B2A2B
2A2B2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B2A2B2A2B2A2B2A2B
2A2B2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B2A2B2A2B2A2B2A2B2A2B
2A2B2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B2A2B2A2B2A2B2A2B2A2B
2A2B2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A$2A2B2A2B2A2B2A2B2A2B2A2B2A2B
2A2B$2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B
2A$2B2A2B2A2B2A2B2A2B2A2B2A2B2A2B2A!
[[ GRID ]]
When you try to stack hexagons into a sheet, though, mirror symmetry doesn't seem to be able to be preserved:

Code: Select all

x = 48, y = 38, rule = noneH
12.2C$12.3C2B$11.2B2C3B2A$11.3B2A2B3A2C$10.2A2B3A2C2A3C2B$10.3A2C2A3C
2B2C3B2A$9.2C2A3C2B2C3B2A2B3A2C$9.3C2B2C3B2A2B3A2C2A3C2B$8.2B2C3B2A2B
3A2C2A3C2B2C3B2A$8.3B2A2B3A2C2A3C2B2C3B2A2B3A2C$7.2A2B3A2C2A3C2B2C3B
2A2B3A2C2A3C2B$7.3A2C2A3C2B2C3B2A2B3A2C2A3C2B2C3B2A$6.2C2A3C2B2C3B2A
2B3A2C2A3C2B2C3B2A2B3A$6.3C2B2C3B2A2B3A2C2A3C2B2C3B2A2B3A2C2A$5.2B2C
3B2A2B3A2C2A3C2B2C3B2A2B3A2C2A3C$5.3B2A2B3A2C2A3C2B2C3B2A2B3A2C2A3C2B
2C$4.2A2B3A2C2A3C2B2C3B2A2B3A2C2A3C2B2C3B$4.3A2C2A3C2B2C3B2A2B3A2C2A
3C2B2C3B2A2B$3.2C2A3C2B2C3B2A2B3A2C2A3C2B2C3B2A2B3A$3.3C2B2C3B2A2B3A
2C2A3C2B2C3B2A2B3A2C2A$2.2B2C3B2A2B3A2C2A3C2B2C3B2A2B3A2C2A3C$2.3B2A
2B3A2C2A3C2B2C3B2A2B3A2C2A3C2B2C$.2A2B3A2C2A3C2B2C3B2A2B3A2C2A3C2B2C
3B$.3A2C2A3C2B2C3B2A2B3A2C2A3C2B2C3B2A2B$2C2A3C2B2C3B2A2B3A2C2A3C2B2C
3B2A2B3A$3C2B2C3B2A2B3A2C2A3C2B2C3B2A2B3A2C2A$.2C3B2A2B3A2C2A3C2B2C3B
2A2B3A2C2A3C$4.2B3A2C2A3C2B2C3B2A2B3A2C2A3C2B2C$7.2A3C2B2C3B2A2B3A2C
2A3C2B2C3B$10.2C3B2A2B3A2C2A3C2B2C3B2A2B$13.2B3A2C2A3C2B2C3B2A2B3A$
16.2A3C2B2C3B2A2B3A2C2A$19.2C3B2A2B3A2C2A3C$22.2B3A2C2A3C2B2C$25.2A3C
2B2C3B$28.2C3B2A2B$31.2B3A$34.2A!
[[ GRID ]]
We definitely get a periodic structure, but mirror symmetry goes out of the window, and I'm not sure if complications would arise because of that. A lot more consideration needs to be put into this and how it's to be handled.

Post Reply