Thread for basic non-CGOL questions

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

Re: Thread for basic non-CGOL questions

Post by GUYTU6J »

Chai wrote: September 1st, 2023, 12:54 pm When running a single dot in the rule B1/S012345678, at generations (2^n)-1, as n approaches infinity, the pattern's density *appears* to approach 1/3. Does it actually approach 1/3? If so, why? (if there's a meaningful answer to the second question)
hotdogPi wrote: September 1st, 2023, 1:53 pm I'm getting 4/9, not 1/3.
hotdogPi wrote: September 1st, 2023, 8:18 pm I am getting 1/3 for B1c rather than B1. Is that what you meant?
注意力集中

Code: Select all

x = 1, y = 1, rule = B1c/S012345678
o!
Apparently at generations 0, 1, 3, 7, ..., 2^n-1, the bounding box is 1^2, 3^2, 7^2, 15^2, ..., [2^(n+1)-1]^2 and the population is 1, 5, 21, 85, ..., [4^(n+1)-1]/3 with recurrence relation pop_(n+1) = 4*pop_n+1 suggested by a substitution rule of patterns. So the density is {[4^(n+1)-1]/3}/{[2^(n+1)-1]^2} ≈ {4^(n+1)/3}/{4^(n+1)} = 1/3.

Code: Select all

x = 1, y = 1, rule = B1/S012345678
o!
Apparently at generations 0, 1, 3, 7, ..., 2^n-1, the bounding box is 1^2, 3^2, 7^2, 15^2, ..., [2^(n+1)-1]^2 and the population is 1, 9, 33, 121, ..., [4^(n+2)+24*n-7]/9 with recurrence relation pop_(n+1) = 4*pop_n-8*n+5 suggested by a substitution rule of patterns. So the density is {[4^(n+2)+24*n-7]/9}/{[2^(n+1)-1]^2} ≈ {4^(n+2)/9}/{[4^(n+1)} = 4/9.
Chai
Posts: 105
Joined: June 7th, 2022, 8:46 pm

Re: Thread for basic non-CGOL questions

Post by Chai »

I did mean B1c - sorry for the mistake.
User avatar
unname4798
Posts: 2527
Joined: July 15th, 2023, 10:27 am
Location: Near ConwayLife servers

Re: Thread for basic non-CGOL questions

Post by unname4798 »

GUYTU6J wrote: September 1st, 2023, 11:38 pm 注意力集中
I don't understand this.
Haycat2009
Posts: 1050
Joined: April 26th, 2023, 5:47 am
Location: Bahar Junction, Zumaland

Re: Thread for basic non-CGOL questions

Post by Haycat2009 »

Is Rules W75, W89, W124, W137 and W193 turing-complete?
~ Haycat Durnak, a hard-working editor
Also, support Conway and Friends story mode!
I mean no harm to those who have tested me. But do not take this for granted.
User avatar
MEisSCAMMER
Posts: 96
Joined: September 20th, 2022, 5:12 pm
Location: Yes
Contact:

Re: Thread for basic non-CGOL questions

Post by MEisSCAMMER »

Haycat2009 wrote: September 2nd, 2023, 8:53 am Is Rules W75, W89, W124, W137 and W193 turing-complete?
Rules 124, 137, and 193 are all variants (under black/white reversal and reflection) of 110, which is Turing-complete, so by extension these are too. I don't believe the others have been proved either way.
THE TRILOGY HAS BEEN COMPLETED
next: quadrilogy??? Is that even a word
Haycat2009
Posts: 1050
Joined: April 26th, 2023, 5:47 am
Location: Bahar Junction, Zumaland

Re: Thread for basic non-CGOL questions

Post by Haycat2009 »

MEisSCAMMER wrote: September 5th, 2023, 9:33 pm
Haycat2009 wrote: September 2nd, 2023, 8:53 am Is Rules W75, W89, W124, W137 and W193 turing-complete?
Rules 124, 137, and 193 are all variants (under black/white reversal and reflection) of 110, which is Turing-complete, so by extension these are too. I don't believe the others have been proved either way.
Then why does everyone talk about W110? Why not W124, W137 or W193?
~ Haycat Durnak, a hard-working editor
Also, support Conway and Friends story mode!
I mean no harm to those who have tested me. But do not take this for granted.
User avatar
MEisSCAMMER
Posts: 96
Joined: September 20th, 2022, 5:12 pm
Location: Yes
Contact:

Re: Thread for basic non-CGOL questions

Post by MEisSCAMMER »

Haycat2009 wrote: September 5th, 2023, 11:11 pm
MEisSCAMMER wrote: September 5th, 2023, 9:33 pm
Haycat2009 wrote: September 2nd, 2023, 8:53 am Is Rules W75, W89, W124, W137 and W193 turing-complete?
Rules 124, 137, and 193 are all variants (under black/white reversal and reflection) of 110, which is Turing-complete, so by extension these are too. I don't believe the others have been proved either way.
Then why does everyone talk about W110? Why not W124, W137 or W193?
Because 110 was found first. No one really cares about B0123478/S01234678 even though it's the black/white reversal of Life, and the same reasoning applies to W110.
THE TRILOGY HAS BEEN COMPLETED
next: quadrilogy??? Is that even a word
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

Re: Thread for basic non-CGOL questions

Post by confocaloid »

AlbertArmStain wrote: May 13th, 2022, 6:31 pm Is there any reflectors based on this reaction?

Code: Select all

x = 3, y = 8, rule = B34nq/S234q
o$b2o$2o4$2o$2o!
I also wonder if there’s a rule where the block is a reflector and a splitter.
The block can be made into a sparky statorless glider eater:

Code: Select all

x = 28, y = 38, rule = B34nq5c6in/S234qz
27bo$25b2o$26b2o8$17bo$15b2o$16b2o18$bo$2bo$3o4$2o$2o!
This seems promising:

Code: Select all

x = 3, y = 8, rule = B34nq5c7c/S234q
o$b2o$2o4$2o$2o!

Code: Select all

x = 3, y = 8, rule = B34nq5c8/S234q6n
o$b2o$2o4$2o$2o!

Code: Select all

x = 3, y = 8, rule = B34cnq5c/S234q6n
o$b2o$2o4$2o$2o!
What are known examples of small statorless stable spaceship reflectors?
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Thread for basic non-CGOL questions

Post by toroidalet »

Here's a splitter, though it's maybe not in the direction you hoped for:

Code: Select all

x = 3, y = 8, rule = B34nq5ce6in7c8/S23-e4cqz5e6in7e8
o$b2o$2o4$2o$2o!
This is the awful script I used to find it, an ugly hack of Rulesrc. (I had designed it hoping to find a spaceship like the tlife puffer, but it works here):

Code: Select all

# Glidersrc.py
#
# Arie Paap, Aug 2017
# Nathaniel Johnston (nathaniel@nathanieljohnston.com), June 2009.
# Updated by: Peter, NASZVADI (), June 2017.
# Grafted by Rhombic, Aug 2017.
# Ruined by toroidalet, Sep 2021, Sep 2023.

import golly as g
import itertools
import random

# Search parameters

# Stop if pattern is a ship with this minimum period
minShipP = 1
# Stop if pattern is an oscillator with this minimum period
minP = 3
# Maximum period to test the pattern for
maxGen = 1000
# Maximum population in any phase
maxPop = 300
# Allow search for oscillators
bOsc = False


import golly as g
from glife import validint
from string import replace

Hensel = [
    ['0'],
    ['1c', '1e'],
    ['2a', '2c', '2e', '2i', '2k', '2n'],
    ['3a', '3c', '3e', '3i', '3j', '3k', '3n', '3q', '3r', '3y'],
    ['4a', '4c', '4e', '4i', '4j', '4k', '4n', '4q', '4r', '4t', '4w', '4y', '4z'],
    ['5a', '5c', '5e', '5i', '5j', '5k', '5n', '5q', '5r', '5y'],
    ['6a', '6c', '6e', '6i', '6k', '6n'],
    ['7c', '7e'],
    ['8']
]
if g.numlayers() == g.maxlayers():
    g.exit("no layers")
# Python versions < 2.4 don't have "sorted" built-in
try:
    sorted
except NameError:
    def sorted(inlist):
        outlist = list(inlist)
        outlist.sort()
        return outlist

# --------------------------------------------------------------------

def chunks(l, n):
    for i in range(0, len(l), n):
        yield l[i:i+n]

# --------------------------------------------------------------------

def rulestringopt(a):
    result = ''
    context = ''
    lastnum = ''
    lastcontext = ''
    for i in a:
        if i in 'BS':
            context = i
            result += i
        elif i in '012345678':
            if (i == lastnum) and (lastcontext == context):
                pass
            else:
                lastcontext = context
                lastnum = i
                result += i
        else:
            result += i
    result = replace(result, '4aceijknqrtwyz', '4')
    result = replace(result, '3aceijknqry', '3')
    result = replace(result, '5aceijknqry', '5')
    result = replace(result, '2aceikn', '2')
    result = replace(result, '6aceikn', '6')
    result = replace(result, '1ce', '1')
    result = replace(result, '7ce', '7')
    return result

clist = []
rule = g.getrule().split(':')[0]

fuzzer = rule + '9'
oldrule = rule
rule = ''
context = ''
deletefrom = []
for i in fuzzer:
    if i == '-':
        deletefrom = [x[1] for x in Hensel[int(context)]]
    elif i in '0123456789/S':
        if deletefrom:
            rule += ''.join(deletefrom)
            deletefrom = []
        context = i
    if len(deletefrom) == 0:
        rule += i
    elif i in deletefrom:
        deletefrom.remove(i)
rule = rule.strip('9')

if not (rule[0] == 'B' and '/S' in rule):
    g.exit('Please set Golly to a Life-like rule.')

if g.empty():
    g.exit('The pattern is empty.')

s = g.getstring('How many generations to remain unchanged:', '', 'Rules calculator')
if not validint(s):
    g.exit('Bad number: %s' % s)

w = g.getstring('final population', g.getpop(), '')
if not validint(w):
    g.exit('Bad number: %s' % s)

n = g.getstring('Number of results', "1", '')
if not validint(n):
    g.exit('Bad number: %s' % s)

numsteps = int(s)
if numsteps < 1:
    g.exit('Period must be at least 1.')

nresults=int(n)
results=[]

g.select(g.getrect())
g.copy()
s = int(s)

for i in range(0,s):
    g.run(1)
    clist.append(list(chunks(g.getcells(g.getrect()), 2)))
    mcc = min(clist[i])
    clist[i] = [[x[0] - mcc[0], x[1] - mcc[1]] for x in clist[i]]

g.show('Processing...')

ruleArr = rule.split('/')
ruleArr[0] = ruleArr[0].lstrip('B')
ruleArr[1] = ruleArr[1].lstrip('S')

b_need = []
b_OK = []
s_need = []
s_OK = []

context = ''
fuzzed = ruleArr[0] + '9'
for i in fuzzed:
    if i in '0123456789':
        if len(context) == 1:
            b_need += Hensel[int(context)]
            b_OK += Hensel[int(context)]
        context = i
    elif context != '':
        b_need.append(context[0] + i)
        b_OK.append(context[0] + i)
        context += context[0]
context = ''
fuzzed = ruleArr[1] + '9'
for i in fuzzed:
    if i in '0123456789':
        if len(context) == 1:
            s_need += Hensel[int(context)]
            s_OK += Hensel[int(context)]
        context = i
    elif context != '':
        s_need.append(context[0] + i)
        s_OK.append(context[0] + i)
        context += context[0]

for i in [iter2 for iter1 in Hensel for iter2 in iter1]:
    if not i in b_OK:
        b_OK.append(i)
        execfor = 1
        # B0 and nontotalistic rulestrings are mutually exclusive
        try:
            g.setrule(rulestringopt('B' + ''.join(b_OK) + '/S' + ruleArr[1]))
        except:
            b_OK.remove(i)
            execfor = 0
        for j in range(0, s * execfor):
            g.run(1)
            try:
                dlist = list(chunks(g.getcells(g.getrect()), 2))
                mcc = min(dlist)
                dlist = [[x[0] - mcc[0], x[1] - mcc[1]] for x in dlist]
                if not(clist[j] == dlist):
                    b_OK.remove(i)
                    break
            except:
                b_OK.remove(i)
                break
        g.new('')
        g.paste(0, 0, 'or')
        g.select(g.getrect())
        b_OK.sort()

    if not i in s_OK:
        s_OK.append(i)
        execfor = 1
        # B0 and nontotalistic rulestrings are mutually exclusive
        try:
            g.setrule(rulestringopt('B' + ruleArr[0] + '/S' + ''.join(s_OK)))
        except:
            s_OK.remove(i)
            execfor = 0
        for j in range(0, s * execfor):
            g.run(1)
            try:
                dlist = list(chunks(g.getcells(g.getrect()), 2))
                mcc = min(dlist)
                dlist = [[x[0] - mcc[0], x[1] - mcc[1]] for x in dlist]
                if not(clist[j] == dlist):
                    s_OK.remove(i)
                    break
            except:
                s_OK.remove(i)
                break
        g.new('')
        g.paste(0, 0, 'or')
        g.select(g.getrect())
        s_OK.sort()

    if i in b_need:
        b_need.remove(i)
        g.setrule(rulestringopt('B' + ''.join(b_need) + '/S' + ruleArr[1]))
        for j in range(0, s):
            g.run(1)
            try:
                dlist = list(chunks(g.getcells(g.getrect()), 2))
                mcc = min(dlist)
                dlist = [[x[0] - mcc[0], x[1] - mcc[1]] for x in dlist]
                if not(clist[j] == dlist):
                    b_need.append(i)
                    break
            except:
                b_need.append(i)
                break
        g.new('')
        g.paste(0, 0, 'or')
        g.select(g.getrect())
        b_need.sort()

    if i in s_need:
        s_need.remove(i)
        g.setrule(rulestringopt('B' + ruleArr[0] + '/S' + ''.join(s_need)))
        for j in range(0, s):
            g.run(1)
            try:
                dlist = list(chunks(g.getcells(g.getrect()), 2))
                mcc = min(dlist)
                dlist = [[x[0] - mcc[0], x[1] - mcc[1]] for x in dlist]
                if not(clist[j] == dlist):
                    s_need.append(i)
                    break
            except:
                s_need.append(i)
                break
        g.new('')
        g.paste(0, 0, 'or')
        g.select(g.getrect())
        s_need.sort()

g.setrule(oldrule)
ruleres = 'B' + ''.join(sorted(b_need)) + '/S' + ''.join(sorted(s_need)) + \
    ' - B' + ''.join(sorted(b_OK)) + '/S' + ''.join(sorted(s_OK))
g.show(rulestringopt(ruleres))

ruleB="B"+''.join(sorted(b_need))
ruleS="S"+''.join(sorted(s_need))
isotropiclistB = sorted(b_OK)
isotropiclistS = sorted(s_OK)

# Remove B0 and B1 conditions
for wrongvalues in ["0","1c","1e"]:
    if wrongvalues in isotropiclistB:
        isotropiclistB.remove(wrongvalues)

# Generate a random isotropic rule which is likely to allow spaceships to exist
def randIsoRule():
    # Birth conditions
    prob = random.random()*0.55+0.05 # Random number between 0.05 and 0.6
    rulestr = ruleB
    for elem in isotropiclistB:
        if random.random()<prob: rulestr+=elem
    # Ensure rule has a chance of supporting ships
    if len(rulestr) == 1:
        # Add a random rule element
        rulestr+=random.choice(isotropiclistB)
    if not rulestr[1] in '23':
        # Add two random 2x or 3x rule elements
        rulestr+=random.choice(isotropiclistB[:16])
        rulestr+=random.choice(isotropiclistB[:16])
    
    # Survival conditions (force S0 for dot survival)
    prob = random.random()*0.55+0.05 # Random number between 0.05 and 0.6
    rulestr+='/'+ruleS
    for elem in isotropiclistS:
        if random.random()<prob: rulestr+=elem
    return(rulestr)
    
# ----------------------------------------------------------

# Return the minimum and maximum of the absolute value of a list of numbers
def minmaxofabs(v):
    v = map(abs, v)
    return min(v), max(v)

# Test a pattern in the given rule to determine if it reappears
def testRule(rulestr):
    r = g.getrect()
    if r:
        g.select(r)
        g.clear(0)
    g.putcells(testPatt)
    g.setrule(rulestr)
    for ii in xrange(maxGen):
        g.run(1)
        pop = int(g.getpop())
        if (pop < minPop or pop > maxPop):
            break
        elif (pop == testPop):
            w=g.getrect()
            for b in xrange(20):
                g.run(1)
                if (int(g.getpop()) == testPop):
                    k=1
                else:
                    k=0
                    break
            if k==1:
                if (g.getrect() == w):
                    k=0
                else:
                    w=g.getrect()
                    g.run(8)
                    if w != g.getrect():
                        rule=g.getrule()
                        if len(results)==0 or rule!=results[-1]:
                            results.append(g.getrule())
                        if len(results)==nresults:
                            return "p"
    return ()
    
# Set up the search with the current pattern
testRect = g.getrect()
testPop = int(w)
testPatt = g.transform(g.getcells(testRect),-testRect[0],-testRect[1])

if bOsc: minPop = 2 # Patterns with 0, or 1 cells can not be oscillators
else: minPop = 3 # Patterns with 0, 1, or 2 cells can not be ships

g.new('spRulesrc')

for ii in itertools.count(0,1):
    if bOsc==False:
        while 1:
            j=randIsoRule()
            if "2a" in j: break
            if "2c" in j: break
            if "3i" in j: break
    else:
        j=randIsoRule()
    result = testRule(j)
    if result:
        # Interesting pattern found
        break
    if (ii % 1000 == 0):
        g.select([])
        g.show('%d candidate rules tested for interesting patterns' % (ii))
        g.update()
        g.new("")
        
g.new('Search result')
if result:
    g.putcells(testPatt)
    if (len(result) == 1):
        # Pattern is an oscillator
        description = ""
        g.getstring("Rules",str(results),"")
    elif (len(result) == 3):
        dx, dy, period = result
        dy, dx = minmaxofabs( (dx, dy) )
        if dy == 0:
            description = 'Found orthogonal spaceship with speed = %dc/%d' % (dx, period)
        elif dy == dx:
            description = 'Found diagonal spaceship with speed = %dc/%d' % (dx, period)
        else:
            description = 'Found knightship with speed = (%d, %d)c/%d' % (dx, dy, period)
    else:
        g.exit('Unrecognised pattern')
    g.show(description)
else:
    g.show('No results found')
Plug in a given number of generations to match, a target population and the number of results to find, and it looks for expanding patterns that stabilize at that constant population. You need to have space for one layer.
I used 20 generations and 5 results. The target population was 14.
It can generate a lot of false positives, which, in this case, were mainly (glider+blinker+beehive) and (different block+2 gliders). Just for fun, here is the best one:

Code: Select all

x = 3, y = 8, rule = B34cenq5ce8/S23-e4q5e6in
o$b2o$2o4$2o$2o!
EDIT: A better splitter, but still in the worst direction:

Code: Select all

x = 3, y = 8, rule = B34enq5ce7c8/S234q6i
bo$2bo$3o4$2o$2o!
It has enough clearance that you can send another one after it:

Code: Select all

x = 31, y = 47, rule = B34enq5ce7c8/S234q6i
3b2o$3b2o10$bo$2bo$3o26$29bo$30bo$28b3o4$28b2o$28b2o!
90° reflector!

Code: Select all

x = 3, y = 8, rule = B34enq6i8/S023-e4ceqz5e7e
bo$2bo$3o4$2o$2o!
Any sufficiently advanced software is indistinguishable from malice.
GUYTU6J
Posts: 2200
Joined: August 5th, 2016, 10:27 am
Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
Contact:

Re: Thread for basic non-CGOL questions

Post by GUYTU6J »

toroidalet wrote: September 9th, 2023, 6:37 pm This is the awful script I used to find it, an ugly hack of Rulesrc.
I can get it working after cleaning up some "from string import replace" and "xrange" things for python 3. One of the search results is this growing pattern somewhere near Harvest Moon:

Code: Select all

x = 18, y = 10, rule = B3-ckr5j/S2-i3-aekq4acqt5ac
3bo$2bobo$bobobo$obobobo7bo$bobobo7bobo$2bobo7bobobo$3bo3bo3bobobobo$
6b2o4bobobo$6bobo4bobo$14bo!
It is reminiscent of this pattern of yours...
toroidalet wrote: September 5th, 2017, 10:50 am What would this be called?

Code: Select all

x = 13, y = 5, rule = B3-y4q5a/S23-e
5bo4b2o$5bobobo2bo$b2o2b2o3b2o$o2bo$b2o!
Would it be called some arcane term like "Empty space unary counting shuttle™" or is there a simpler term for it?
... but the expanding loop can accommodate two gliders at once.

Code: Select all

x = 19, y = 11, rule = B3-ckr5j/S2-i3-aekq4acqt5ac
3bo$2bobo$bobobo4bobo$obobobo4b2o$bobobo5bo3bo$2bobo9bobo$3bo3bo5bobob
o$6b2o4bobobobo$6bobo4bobobo$14bobo$15bo!
There is certainly a huge number of glider + 4×4 checkerboard → glider + 4×4 checkerboard reactions under the rules in close proximity to Harvest Moon. Here comes the real question: what is the criterion for a reaction to be applicable to construct glider-based adjustable slope spaceships? (Oh wait, there are older examples for that.) If it is an oscillator made of gliders instead of a still life, it would be easier to build adjustable spaceships.
AforAmpere
Posts: 1421
Joined: July 1st, 2016, 3:58 pm

Re: Thread for basic non-CGOL questions

Post by AforAmpere »

Why is this called the 'logarithmic replicator'?

Code: Select all

x = 19, y = 3, rule = B36/S245
6o7b6o$o4bo7bo4bo$b4o9b4o!
As far as I can tell, the population hangs at a constant at the minima (approximately), and sqrt(t) at the maxima. Also, the bounding box follows sqrt(t) as well, so that's not it. I don't understand where the logarithmic part actually is. You can pick phases that align with log growth (2^t seems to align with logarithmic pop growth for one of the emulators I found), but that's cheating.
The torch of 5S has been passed on again, and is now managed by speedydelete. It can be found here. Also check out my program EPE, a tool for searching for patterns in various rulespaces.
affamatodidio
Posts: 245
Joined: September 14th, 2021, 7:45 pm

Re: Thread for basic non-CGOL questions

Post by affamatodidio »

From b3-ky5is23-k to b34ckqtyz5-aek6ace7cs23-k4cyz5eknr6-ce, both of the following things are true:
  • The teardrop evolves into a Figure Eight
  • The Pentadecathlon still exists

Code: Select all

x = 25, y = 4, rule = B34ckqtyz5-aek6ace7c/S23-k4cyz5eknr6-ce
b3o$o2bo$o2bo11b10o$b2o!
In a similar vein to Pentadecathlife, is there a sub-rulespace in this rulespace where the figure eight forms from the teardrop and the pentadecathlon is significantly more common than it is in regular life?


(oh, also... s8 can allow for a p9 figure eight that evolves from the traffic light + pentadec exists from B3-ky4kt5i/S23-k4q8 to B3-y4ckqtyz5-aekr6ace7/S23-k4qyz5eknr6-ce7c8... but I'm fairly certain that all of these rules are explosive)
User avatar
silversmith
Posts: 470
Joined: June 15th, 2020, 6:20 pm
Location: Pennsylvania, USA, Earth, Sector 5ff63D6

Re: Thread for basic non-CGOL questions

Post by silversmith »

affamatodidio wrote: September 13th, 2023, 12:16 pm In a similar vein to Pentadecathlife, is there a sub-rulespace in this rulespace where the figure eight forms from the teardrop and the pentadecathlon is significantly more common than it is in regular life?
Sure, B3-ky5iy/S23-k6k to B34cktyz5-aek6ae7c/S23-k4cyz5knr6ikn is one such rulespace.

Code: Select all

x = 21, y = 4, rule = B3-ky4ct5iy/S23-k6k
b3o$o2bo15b2o$o2bo15b2o$b2o16b2o!
Last edited by silversmith on September 13th, 2023, 3:35 pm, edited 1 time in total.
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

Re: Thread for basic non-CGOL questions

Post by confocaloid »

p8, p15, p38

Code: Select all

x = 21, y = 22, rule = B3-ky4c5iy/S23-k4c6ik
b3o$o2bo15b2o$o2bo15b2o$b2o16b2o10$8b6o8$8b6o!
Puffers

Code: Select all

x = 12, y = 19, rule = B3-ky4c5iy/S23-k4c6ik
4bo$ob4o$o7b2o$10bo$b3obo5bo$10bo$o7b2o$ob4o$4bo2$4bo$ob4o$o7b2o$10bo$
b3obo5bo$10bo$o7b2o$ob4o$4bo!

Code: Select all

x = 12, y = 25, rule = B3-ky4c5iy/S23-k4c6ik
4bo$ob4o$o7b2o$10bo$b3obo5bo$10bo$o7b2o$ob4o$4bo8$4bo$ob4o$o7b2o$10bo$
b3obo5bo$10bo$o7b2o$ob4o$4bo!
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
get_Snacked
Posts: 542
Joined: August 20th, 2022, 10:51 pm

Re: Thread for basic non-CGOL questions

Post by get_Snacked »

silversmith wrote: September 13th, 2023, 2:57 pm ...
Sure, B3-ky5iy/S23-k6k to B34cktyz5-aek6ae7c/S23-k4cyz5knr6ikn is one such rulespace.

Code: Select all

x = 21, y = 4, rule = B3-ky4ct5iy/S23-k6k
b3o$o2bo15b2o$o2bo15b2o$b2o16b2o!
apgsearch seems to be going quite slow, which i think is because of long-lasting soups. is there a way to:
  1. make it shorter-lasting, and
  2. allow the R to evolve into a figure eight, like this:

    Code: Select all

    x = 3, y = 3, rule = B3-ky5i/S23-eky
    b2o$2o$bo!
    ? (note that this [most likely] requires removal of B5y, which makes the pentadecathlon substantially less common but probably still common enough.)
User avatar
silversmith
Posts: 470
Joined: June 15th, 2020, 6:20 pm
Location: Pennsylvania, USA, Earth, Sector 5ff63D6

Re: Thread for basic non-CGOL questions

Post by silversmith »

get_Snacked wrote: September 13th, 2023, 7:03 pm apgsearch seems to be going quite slow, which i think is because of long-lasting soups. is there a way to:
  1. make it shorter-lasting, and
  2. allow the R to evolve into a figure eight, like this:

    Code: Select all

    x = 3, y = 3, rule = B3-ky5i/S23-eky
    b2o$2o$bo!
    ? (note that this [most likely] requires removal of B5y, which makes the pentadecathlon substantially less common but probably still common enough.)
Well, there is a rule which is shorter lasting, or at least enough to be searchable:
silversmith wrote: September 13th, 2023, 2:57 pm ...

Code: Select all

x = 21, y = 4, rule = B3-ky4ct5iy/S23-k6k
b3o$o2bo15b2o$o2bo15b2o$b2o16b2o!
https://catagolue.hatsya.com/census/b3-ky4ct5iys23-k6k

As for a rule which allows the R to evolve into a figure eight...probably? I don't know of one, but you could:
- start with a rule where an r evolves into a figure eight
- change it in a way that pentadecathlon is more common
- change it some more to make it non explosive

In any case, it would almost certainly be outside the previous rulespace, and so I will leave it as an exercise for the reader.
User avatar
pzq_alex
Posts: 801
Joined: May 1st, 2021, 9:00 pm
Location: tell me if you know

Re: Thread for basic non-CGOL questions

Post by pzq_alex »

Haycat2009 wrote: September 5th, 2023, 11:11 pm
MEisSCAMMER wrote: September 5th, 2023, 9:33 pm
Haycat2009 wrote: September 2nd, 2023, 8:53 am Is Rules W75, W89, W124, W137 and W193 turing-complete?
Rules 124, 137, and 193 are all variants (under black/white reversal and reflection) of 110, which is Turing-complete, so by extension these are too. I don't believe the others have been proved either way.
Then why does everyone talk about W110? Why not W124, W137 or W193?
Being equivalent under black/white reversal and reflection forms an equivalent relation on the set of Wolfram rules. By convention, the one with smallest Wolfram number gets picked out of each equivalence class as the canonical representative.
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)

How much of current CA technology can I redevelop "on a desert island"?
User avatar
haaaaaands
Posts: 705
Joined: September 7th, 2023, 7:22 am
Location: on the deck of a lwss inside a b3s23 bottle
Contact:

Re: Thread for basic non-CGOL questions

Post by haaaaaands »

how was it to make the rules?

just asking
-- haaaaaands with 6 a's



my hands are typing words!

not quite as active anymore :/
hotdogPi
Moderator
Posts: 2263
Joined: August 12th, 2020, 8:22 pm

Re: Thread for basic non-CGOL questions

Post by hotdogPi »

haaaaaands wrote: September 30th, 2023, 8:58 am how was it to make the rules?

just asking
This explains it:

https://en.wikipedia.org/wiki/Elementar ... _automaton

As for how to run it: just put in "W110" (with any even number below 255) in Golly. Golly doesn't support odd numbers.
User:HotdogPi/My discoveries

Periods discovered:

All evens ≤128 except 52,58,78,82,92,94,98,104,118,122

5-15,㉕-㉛,㉟㊺,51,63,65,73,75
1㊳㊵㊹㊼㊽,54,56,72,74,80,90,92
217,240,300,486,576

Guns: 20,21,32,54,55,57,114,117,124,126
SKOPs: 32,74,76,102,196
User avatar
MEisSCAMMER
Posts: 96
Joined: September 20th, 2022, 5:12 pm
Location: Yes
Contact:

Re: Thread for basic non-CGOL questions

Post by MEisSCAMMER »

hotdogPi wrote: September 30th, 2023, 9:01 am Golly doesn't support odd numbers.
It does under "1D.lua" in the scripts folder.
THE TRILOGY HAS BEEN COMPLETED
next: quadrilogy??? Is that even a word
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Thread for basic non-CGOL questions

Post by muzik »

Can someone figure out the period of this object? oscar.lua gave up after 500 million generations plus:

Code: Select all

x = 54, y = 2, rule = MarBlocks-5-rep
o49bobo$bo48bo2bo!
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
toroidalet
Posts: 1514
Joined: August 7th, 2016, 1:48 pm
Location: My computer
Contact:

Re: Thread for basic non-CGOL questions

Post by toroidalet »

According to this script, the period is a factor of (5^21 -1)/2=238,418,579,101,562 (222,222,222,222,222,222,222 in base 5). I think it's exactly that number, but I can't prove it. Either way, it seems unlikely you could find it with oscar.

Code: Select all

onestep=[[-1,1],[1,1]]

length=98
mod=5

#Because it's a mod replicator, we can advance a pattern by n generations by advancing each replicator n generations and adding them all up.

def apply_steps(unit1,unit2):
    tape=[]
    for i in unit1:
        for j in unit2:
            tape.append([(i[0]+j[0])%length,(i[1]*j[1])%mod])
    tape.sort()
    curr=0
    for i in range(len(tape)):
        curr=(curr+tape[i][1])%mod
        if i==len(tape)-1 or tape[i][0]!=tape[i+1][0]:
            tape[i][1]=curr
            curr=0
        else:
            tape[i][1]=0
            curr=(curr+tape[i][1])%mod
    return [i for i in tape if i[1]]

def five_times(unit):
    return apply_steps(apply_steps(apply_steps(unit,unit),apply_steps(unit,unit)),unit)

def n_times(unit,n):
    curr=[[0,1]]
    for i in range(n):
        curr=apply_steps(curr,unit)
    return curr

curr=onestep
curr2=[[0,1],[2,4]]
curr3=[[0,1],[2,4]]
for i in range(22):
    print(i)
    print(curr2)
    curr2=apply_steps(curr,apply_steps(curr,curr2))
    curr3=apply_steps(curr,curr3)
    curr=five_times(curr)
I ran this script directly on the terminal. It might require some fiddling for other lengths or mods.
Any sufficiently advanced software is indistinguishable from malice.
TYCF
Posts: 542
Joined: August 7th, 2023, 3:44 am
Location: England, United Kingdom,

Re: Thread for basic non-CGOL questions

Post by TYCF »

Are there cellular automata with this neighbourhood(The red part)?

Code: Select all

x = 72, y = 82, rule = B3/S23Super
20.12F$20.12F$20.2F8.2F$20.2F8.2F$20.2F8.2F$20.2F8.2F$20.2F8.2F$20.2F
8.2F$20.2F8.2F$20.2F8.2F$10.12F8.32F$10.12F8.32F$10.2F8.2F8.2F18.2F8.
2F$10.2F8.2F8.2F18.2F8.2F$10.2F8.2F8.2F18.2F8.2F$10.2F8.2F8.2F18.2F8.
2F$10.2F8.2F8.2F18.2F8.2F$10.2F8.2F8.2F18.2F8.2F$10.2F8.2F8.2F18.2F8.
2F$10.2F8.2F8.2F18.2F8.2F$12F8.32F8.2F$12F8.32F8.2F$2F8.2F8.2F18D2F8D
2F8.2F$2F8.2F8.2F18D2F8D2F8.2F$2F8.2F8.2F18D2F8D2F8.2F$2F8.2F8.2F18D2F
8D2F8.2F$2F8.2F8.2F18D2F8D2F8.2F$2F8.2F8.2F18D2F8D2F8.2F$2F8.2F8.2F18D
2F8D2F8.2F$2F8.2F8.2F18D2F8D2F8.2F$2F8.32F8D22F$2F8.32F8D22F$2F8.2F18D
2F8B2F8D2F18.2F$2F8.2F18D2F8B2F8D2F18.2F$2F8.2F18D2F8B2F8D2F18.2F$2F8.
2F18D2F8B2F8D2F18.2F$2F8.2F18D2F8B2F8D2F18.2F$2F8.2F18D2F8B2F8D2F18.2F
$2F8.2F18D2F8B2F8D2F18.2F$2F8.2F18D2F8B2F8D2F18.2F$32F8B32F$32F8B32F$
2F18.2F8D2F8B2F18D2F8.2F$2F18.2F8D2F8B2F18D2F8.2F$2F18.2F8D2F8B2F18D2F
8.2F$2F18.2F8D2F8B2F18D2F8.2F$2F18.2F8D2F8B2F18D2F8.2F$2F18.2F8D2F8B2F
18D2F8.2F$2F18.2F8D2F8B2F18D2F8.2F$2F18.2F8D2F8B2F18D2F8.2F$22F8D32F8.
2F$22F8D32F8.2F$10.2F8.2F8D2F18D2F8.2F8.2F$10.2F8.2F8D2F18D2F8.2F8.2F
$10.2F8.2F8D2F18D2F8.2F8.2F$10.2F8.2F8D2F18D2F8.2F8.2F$10.2F8.2F8D2F18D
2F8.2F8.2F$10.2F8.2F8D2F18D2F8.2F8.2F$10.2F8.2F8D2F18D2F8.2F8.2F$10.2F
8.2F8D2F18D2F8.2F8.2F$10.2F8.32F8.12F$10.2F8.32F8.12F$10.2F8.2F18.2F8.
2F8.2F$10.2F8.2F18.2F8.2F8.2F$10.2F8.2F18.2F8.2F8.2F$10.2F8.2F18.2F8.
2F8.2F$10.2F8.2F18.2F8.2F8.2F$10.2F8.2F18.2F8.2F8.2F$10.2F8.2F18.2F8.
2F8.2F$10.2F8.2F18.2F8.2F8.2F$10.32F8.12F$10.32F8.12F$40.2F8.2F$40.2F
8.2F$40.2F8.2F$40.2F8.2F$40.2F8.2F$40.2F8.2F$40.2F8.2F$40.2F8.2F$40.12F
$40.12F!



Code: Select all

#C I am inactive currently.
x = 5, y = 3, rule = B3/S23
obobo$2ob2o$obobo!

Code: Select all

x = 5, y = 4, rule = B35/S234i8
2bo$bobo$2ob2o$5o!
User avatar
MEisSCAMMER
Posts: 96
Joined: September 20th, 2022, 5:12 pm
Location: Yes
Contact:

Re: Thread for basic non-CGOL questions

Post by MEisSCAMMER »

TYCF wrote: October 9th, 2023, 3:52 pm Are there cellular automata with this neighbourhood?
Did you mean the 8x18 unit cell with single-cell padding that is shown, or a domino unit cell?

edit: replaced "spacing" with "padding", more clear that way. By the way, does anyone know how you format strikethrough?
THE TRILOGY HAS BEEN COMPLETED
next: quadrilogy??? Is that even a word
TYCF
Posts: 542
Joined: August 7th, 2023, 3:44 am
Location: England, United Kingdom,

Re: Thread for basic non-CGOL questions

Post by TYCF »

MEisSCAMMER wrote: October 9th, 2023, 4:38 pm
TYCF wrote: October 9th, 2023, 3:52 pm Are there cellular automata with this neighbourhood?
Did you mean the 8x18 unit cell with single-cell padding that is shown, or a domino unit cell?

edit: replaced "spacing" with "padding", more clear that way. By the way, does anyone know how you format strikethrough?
A cellular automation with cells that are dominos arranged in this way.

Code: Select all

#C I am inactive currently.
x = 5, y = 3, rule = B3/S23
obobo$2ob2o$obobo!

Code: Select all

x = 5, y = 4, rule = B35/S234i8
2bo$bobo$2ob2o$5o!
Post Reply