Reflectorless Rotating Oscillators (RRO)

For discussion of other cellular automata.
Post Reply
User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » June 21st, 2018, 7:45 am

I found some reflectorless rotating oscillators (RRO) with small periods, I think record breaking (in terms of cells, periods and bounding box).
They are all 2-fold (but 4-cyclic). They have all 3 cells, except the first p32 has 4 cells:

p32

Code: Select all

x = 16, y = 5, rule = B2ce3aejk4aqrtw5-acr6cen78/S12an3cjqy4-ey5akqry6ekn7e8
2o7b2o$obo6bobo2$13bobo$14b2o!

Code: Select all

x = 18, y = 5, rule = B2cei3aj4aintwy5ikqy6-ai7e/S012i3-ajn4-eirwy5-ejkq6-a7c
o10bo$obo8bobo2$15bobo$17bo!

Code: Select all

x = 18, y = 5, rule = B2e3aikr4kny5cejkn6-kn7c8/S012-n3-acjk4ciwy5aceir6ck7c8
o10bo$obo8bobo2$15bobo$17bo!
p36

Code: Select all

x = 16, y = 5, rule = B2cek3aery4aejqrwy5ceqy6cen7c8/S012ikn3-air4centy5-jkry6-kn7c8
2bo8bo$obo6bobo2$13bobo$13bo!

Code: Select all

x = 16, y = 5, rule = B2cek3aj4aiknty5-enqr6ek7c/S012ik3cny4akrtwy5cejky6-an78
o8bo$obo6bobo2$13bobo$15bo!
p40

Code: Select all

x = 16, y = 5, rule = B2e3-cjnr4ak5-cinq67/S12ack3cjr4cjknz5acnqy6-i7e
o8bo$b2o7b2o2$13b2o$15bo!

Code: Select all

x = 18, y = 6, rule = B2cen3acq4-aejnz5-nqy6-c78/S012ik3jnq4-jkntz5-cinq6aek7
2bo9bo$obo7bobo3$15bobo$15bo!
p44

Code: Select all

x = 16, y = 5, rule = B2cek3ajkq4aeiqt5-jkr6ce7e/S012ikn3k4aeijrz5cinry6-ai78
o8bo$obo6bobo2$13bobo$15bo!

Code: Select all

x = 16, y = 8, rule = B2ci3-iqry4-ajwz5-jnry6-ac78/S12-ck3ejkry4-kqrwz5ejknq6en7e8
2o8b2o2$o9bo3$15bo2$14b2o!
p48

Code: Select all

x = 16, y = 5, rule = B2ce3aejqy4ijrt5aknr6-ei7e/S12-ek3jkq4ceinqwz5ejkry6-i8
2bo8bo$2o7b2o2$14b2o$13bo!

Code: Select all

x = 18, y = 8, rule = B2cei3aeky4ceiknrw5ejk6-cn7e8/S012-ac3-aeik4-cewy5-aejy6-an7e
2bo9bo$obo7bobo5$15bobo$15bo!
p52

Code: Select all

x = 20, y = 5, rule = B2cek3-ein4ikqrtwy5-enr6ack78/S012aci3nqy4ejknqwy5-ciqr6-ck7e8
2bo10bo$obo8bobo2$17bobo$17bo!
p56

Code: Select all

x = 20, y = 5, rule = B2ce3jkqy4-cnrwz5aeny6-in78/S1e2-c3-ajn4iqry5aekqy6-ci
3bo10bo$obo8bobo2$17bobo$16bo!
p60

Code: Select all

x = 20, y = 9, rule = B2k3acijn4aqty5cejnq6-ck7e/S01e2-a3acikr4ei5-aekr67c
3bo10bo$o10bo$2bo10bo4$17bo$19bo$16bo!
p64

Code: Select all

x = 20, y = 9, rule = B2ci3aejqr4aeinqty5jkq6e8/S01e2-en3cjknr4-akwz5jkqr6-ac7
o10bo$obo8bobo6$17bobo$19bo!
My script did not show anything for p28. Larger periods mod 4 very likely exists as well. Maybe we even find an adjustable RRO.

Edit1:
A 2-fold 3 cell p38 oscillator, not sure if it counts as a RRO:

Code: Select all

x = 16, y = 5, rule = B2ce3cej4nrty5ajkry6ae7c/S012ikn3-ik4acey5-aeny6ek7
o8bo$obo6bobo2$13bobo$15bo!
similarly these p30:

Code: Select all

x = 18, y = 7, rule = B2cek3eijkq4eikqry5-cejk6e7c/S12cek3aik4eijy5ajr6cei8
bo10bo$o10bo$b2o9b2o2$15b2o$17bo$16bo!

Code: Select all

x = 18, y = 5, rule = B2cek3ejkq4aenqrwy5aknry6ack7/S012k3-einq4cekry5knq6ei7e8
o10bo$obo8bobo2$15bobo$17bo!
Edit2:
A 3 cell p32 naturally:

Code: Select all

x = 18, y = 5, rule = B2c3air4aijr5j6k/S01e2ack3jkr4aky5aijy
o10bo$obo8bobo2$15bobo$17bo!
https://catagolue.appspot.com/object/xp ... r4aky5aijy
https://catagolue.appspot.com/object/xp ... r4aky5aijy

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Reflectorless Rotating Oscillators (RRO)

Post by dvgrn » June 21st, 2018, 5:52 pm

2718281828 wrote:I found some reflectorless rotating oscillators (RRO) with small periods, I think record breaking (in terms of cells, periods and bounding box).
They are all 2-fold (but 4-cyclic)...
All except your p60, I think. That one is actually a rare 3-fold RRO, with a period 20 variant:

Code: Select all

x = 31, y = 10, rule = B2k3acijn4aqty5cejnq6-ck7e/S01e2-a3acikr4ei5-aekr67c
3bo10bo10bo$o10bo10bo$2bo10bo10bo$28b3o$28b3o$29bo$17bo4bobo3b2o$19bo
2bob2o2bobo$16bo7bo!

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » June 25th, 2018, 3:56 pm

A small 4-fold RRO: (p108, p54, p27)

Code: Select all

x = 55, y = 16, rule = B2-an3cey4-ikrw5eijkn6ekn7c/S012ei3-eiqy4kqrw5ajkry6-e7c
32b2o18b2o$39bo$32bo6bobo10bo11$bo19bo19bo10bobo$54bo$2o18b2o18b2o!

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by AforAmpere » June 25th, 2018, 4:11 pm

2718281828 wrote:A small 4-fold RRO: (p108, p54, p27)

Code: Select all

x = 55, y = 16, rule = B2-an3cey4-ikrw5eijkn6ekn7c/S012ei3-eiqy4kqrw5ajkry6-e7c
32b2o18b2o$39bo$32bo6bobo10bo11$bo19bo19bo10bobo$54bo$2o18b2o18b2o!
Amazing! It is also a 3-fold (p36):

Code: Select all

x = 18, y = 18, rule = B2-an3cey4-ikrw5eijkn6ekn7c/S012ei3-eiqy4kqrw5ajkry6-e7c
7b2o$6b3ob2o$5bob4o$6b4o7$14bobo$14bo$14b2o2$3bo2$2b2o!
I don't think I've ever seen one where it can function as a 3-fold and a 4-fold. What kind of script are you using? LLS?
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Reflectorless Rotating Oscillators (RRO)

Post by dvgrn » June 25th, 2018, 5:18 pm

2718281828 wrote:A small 4-fold RRO: (p108, p54, p27)

Code: Select all

x = 55, y = 16, rule = B2-an3cey4-ikrw5eijkn6ekn7c/S012ei3-eiqy4kqrw5ajkry6-e7c
32b2o18b2o$39bo$32bo6bobo10bo11$bo19bo19bo10bobo$54bo$2o18b2o18b2o!
AforAmpere wrote:Amazing! It is also a 3-fold (p36)... I don't think I've ever seen one where it can function as a 3-fold and a 4-fold.
Not in regular Moore-neighborhood isotropic CAs, anyway. If you count Larger than Life, the record holder still seems to be the SoldierBugs in Golly's pattern collection, with 1, 2, 3, 4, 6, 8, and 12-fold options.

Seems like it's going to take some luck to get to 5-fold or above outside of Larger than Life, just because the period will have to be divisible by 5 _and_ the RRO has to move unusually quickly while remaining fairly small.

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » June 26th, 2018, 1:34 am

AforAmpere wrote: I don't think I've ever seen one where it can function as a 3-fold and a 4-fold. What kind of script are you using? LLS?
Yes, LLS, and it is surprisingly fast for smaller periods up to 20 for a 4-fold, then it becomes slower.

1/2/3/4/5-folds (p120/60/40/30/24)

Code: Select all

x = 110, y = 25, rule = B2ck3-ciky4cjkqrtz5-cijy6an7c/S02ekn3cq4cqz5-kny6-ci78
4$103b2o$6b2o19b2o19b2o19b2o12bobo4b2o10b3o$85bo18b2o$6bobo18bobo18bob
o18bobo11bo6bobo9bo3$62bobo$64b2o$63bobo$62bo$63bo40bobo$90b3o13b2o$
89b3o15bo$89b2o14b2o$90bobo12bo$41bobo7bo2bo16bo11bobo11bo2bo$51b2o16b
o28bo$42b2o8b3o14bobo12b2o8b2o3b2o$52b2o40b2o2b2o!

Code: Select all

x = 110, y = 22, rule = B2-a3ejkq4nqrtwz5aejkq6ei78/S01e2ikn3jkny4ceijqt5-ciky6-ai7c8
83bo18bob2o$4bo21bo21bo21bo21bo12bo$2bobo19bobo19bobo19bobo12b2o5bobo
9b4o3$61bobo$61bobo26bo$90bo$91bo$62bobo26bo13bobo$61b2o27b3o12bobo$
61bobo25b3o$90b2o$90bobo12bo$90bobo$39bobo8b4o15b2o12bobo12b4o$39bo43b
o12b2o$51b3o16bo24bob5o!
This one is only 1/2/3/4-fold (p120/60/40/30)

Code: Select all

x = 89, y = 21, rule = B2-a3cjnq4ack5acein6ak7e/S012aik3-any4jkny5ijqry6-n
2$2bo21bo21bo21bo14bobo$4bo21bo21bo21bo$2bobo19bobo19bobo19bobo12b2o3$
61bobo$61bobo$61bobo$61bobo$61bo$61b2o$63bo4$39bobo8b4o15b2o12bobo$39b
o8b4o31bo$41bo5b5obo14bobo14bo$48b3o!
but it gives me the feeling that there might exists something like adjustable RRO families.

Code: Select all

x = 3, y = 16, rule = B2-a3cjnq4ack5acein6ak7e/S012aik3-any4jkny5ijqry6-n
bo$obo$obo$obo$obo$obo$obo$obo$obo$obo$obo$obo$obo$obo$3o$2o!

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 77topaz » June 26th, 2018, 2:45 am

Nice finds! :) It's a bit unfortunate, though, that nearly all of them are in explosive rules. Have you found any more RROs in more stable rules?

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » June 26th, 2018, 6:04 am

77topaz wrote:Nice finds! :) It's a bit unfortunate, though, that nearly all of them are in explosive rules. Have you found any more RROs in more stable rules?
I have a couple of other RROs, there exists many... however you are right most of them are explosive (as most rules anyway, in the 5s projects its the same most of them live in explosive rules).

This one is stable (but quite boring):

Code: Select all

x = 101, y = 41, rule = B2-ai3cq4aktz5-jkny6i7c/S01e2-ae3ij4ejkqz5ci6a7c8
6$4bo5b3ob2o2b2ob6o2bo4b2o$4bobobo5bobobob3o3b2obobob2o$5bob8o2b2o2bob
ob5o3bobo$5bob2o2b2ob4ob2o3bo3bo2b2ob2o20bo20bo$11bob2o5b7ob2obo3bo21b
obo18bobo$6bo2bo4bobobobo3b6o$4bo4b3obo5bo7bob2ob2o$5bob3o2bo2b3o2bobo
bobo4b2o$4bo3bo2b2o3b2ob2o3b7o4bo$4b5obo2bobo2b2ob3obob2obo2bo$4bob7ob
o3b2ob3o6bo2bo$5bo4b2ob2o3b5obob2o5b3o$4bo12bo2b2o2b2ob2ob2ob2o$12bo6b
2ob2o2b3ob3ob2o$5bob3ob3ob3ob5ob3o3bob2o$11b3ob2obo2b4o4b2obo2bo$7b2ob
7o2b2ob3ob3o2bob2o57bobo$9b6ob4ob2obobo4b2o2bo59bo$4b2ob2o2b2obo2bobo
2bo3b3obobo2bo$5bo2bobob3o2b2o4bobo3bo3bobo$5bo2bobo2bo2b3obob2o3b3obo
2b2o$4bo2bo4bobobo4bo2bo4b2obo2bo$4bo3b3o2bo2bo2b2ob5obob3ob2o$4bobob
2obo2bob2ob4o2b2o2bo3b3o$4bob7o3b2o2bo2bo5b2o$5bo2bo4b6o5bo3bob3o$5b2o
3b5obo2bo2bob3o3bobobo$5bobob2obo2b2ob3obobo4b2ob3o$4bo2bo4bo2bob10o2b
7o$6bobo2b4ob2ob2o2b2ob4ob3o$5bo2b2ob3ob2obo2bo4bo2b3ob3o$4bo3bob2o5bo
2b2o3bo3bob4o!
But this one is nicer, here we have a small natural spaceship:

Code: Select all

x = 100, y = 33, rule = B2cn3acr4ijnrwyz5inqr6aci/S01e2-k3cn4aeiknrz5acy6ck7c8
$3bobo2b2o5bobobo4b3ob3o2bo$3bob2obobo3b2obobobo5b5obo$2b4obob2ob2o2bo
2bo2b3o2b4ob2o$3bo3b4obob3o4bo2bo2bob5o$2b5ob4ob3obo4b2ob4o2b2o$2bob5o
4b3o3bo9b2o2bo$3b3o4b3ob2o4bobobo2bo2bobo24bo18bo$2bobo2bob3obo4b3ob4o
3b2ob2o23bobo16bobo$4bo2b2o5b2o2b2o2bo4b3obo$3bob3obo2bobobob3obobobo
4bobo$2b4o2bobobo4bob2ob4o4bo$2bobo3b2o2b4o2bob2ob5ob4o$4bo2b2o2bob3ob
obobob2o2b3ob3o$3bo4bo2b5obo3b3o2bo2b2obo$2b6o2bo2bob2obo4b4o3bobo$3bo
b4o5bo3bo4b3obo5bo$3b2obob3o4b3o2b2ob3o4bobo$2b6ob8o6bo2bob6o54bobo$2b
2obo2b2o2bob2o2bo3bo2bo2bo2bo58bo$2bo3bobo2bo4bo4bo3bobob3o$3b2obo2bo
2b2o4bob2o2bo4bo$4b2o2b3obo5bo3bobo2b2o2bobo$2bo4bo5b3obo2bob8obobo$2b
o2bob2o3b2o2b2obo3b3o4b4o$3b3o2b3ob2o3bobo2b5obo2bobo$2bobo2bob6ob3obo
4b2o6bo$7b2o3b2ob3obobob2ob3obo$2bobob2obo2b4ob2ob2obob4o3bo$3b7obob2o
bo3bobo4bobo2bo$2bobo2b3o5b2o3bobo4b3o2bo$2bob2obobo7b2ob2o2b2o5b2o$3b
6o2b3ob2ob3obobobobo2b3o!
It also has this nice natural spaceship (xq20_275se4):

Code: Select all

x = 6, y = 5, rule = B2cn3acr4ijnrwyz5inqr6aci/S01e2-k3cn4aeiknrz5acy6ck7c8
b2o$2o2bo$b5o$3b2o$3bo!

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » June 29th, 2018, 7:54 pm

An interesting natural p256 (https://catagolue.appspot.com/object/xp ... t5-aky67c8), 1,2,4-fold:

Code: Select all

x = 184, y = 53, rule = B2kn3aijnr4aciky/S2n3-cek4aijnt5-aky67c8
6$107b3o35bo28b3o$106b5o32b3o2b4o21b5o$105bob4o29b6o2b3o21bob4o$104b2o
bo2bo28b3obobobo2b2o19b2obo2bo$104b8o27b3ob4obobo20b8o$104b5ob2o27b9ob
obo19b5ob2o$105b8o27bo2b4o2b2o21b8o$106b3o32b5o27b3o$107bobo32b3o29bob
o$108bob2o63bob2o$106b2o2b2o61b2o2b2o$106bob4o61bob4o$107bobobo62bobob
o16$6bobobo62bobobo62bobobo$6b4obo61b4obo61b4obo$6b2o2b2o61b2o2b2o61b
2o2b2o$6b2obo63b2obo63b2obo$8bobo64bobo64bobo29b3o$9b3o64b3o64b3o27b5o
$5b8o59b8o59b8o21b2o2b4o2bo$6b2ob5o59b2ob5o59b2ob5o19bobob9o$6b8o59b8o
59b8o20bobob4ob3o$7bo2bob2o60bo2bob2o60bo2bob2o19b2o2bobobob3o$7b4obo
61b4obo61b4obo21b3o2b6o$7b5o62b5o62b5o21b4o2b3o$8b3o64b3o64b3o28bo!
But I am not sure if it is an RRO due to the interactions in the centre.

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 77topaz » June 30th, 2018, 7:42 pm

Slightly off-topic, but that last rule also has possibly the smokiest spaceship I've ever seen:

Code: Select all

x = 12, y = 30, rule = B2kn3aijnr4aciky/S2n3-cek4aijnt5-aky67c8
3bo$b5o$7o$2obob3o$bo3bo$o3bo$3o$2bo2$3bo$bo2$bo12$8bo$6b5o$6b2obobo$6b2ob3o$
6bo4bo$8bobo!
It's c/2 orthogonal, but with period 920.

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » July 20th, 2018, 1:03 am

A 1/2/3/4/5/6 fold RRO:

Code: Select all

x = 132, y = 26, rule = B2-an3-eiky4aiqw5ijnr6ak/S012ik3-acir4kqw5acq6ack7c8
3$3bo21bo21bo21bo21bo21bo$2bo21bo21bo21bo21bo11b2o8bo9bo$82bobo19bo18b
2o$2bo21bo21bo21bo16bo4bo11bo9bo9bo2bo4$60bobo63bobo$61bo26bo22b2o14bo
$63bo25b3o37bo$89b2o19bo$61b2o26bo14bobo5bo14b2o$104bobo4bobo$89bobo
13b2o$89bobo13b2o2$39bo8bo2bo14bo16bo14b2o14bo2bo9bo$49b2o16bobo25bobo
17b2o$39bo11bo31bo11b5o17bo9bo$38bo43bo43bo!

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » January 8th, 2019, 12:01 pm

two RROs in B2a rules:
p40/p20:

Code: Select all

x = 24, y = 8, rule = B2aci3eqr4iqt5jq6a/S02cek3eikqr4jkrwy5aq6a
22bo$22b2o$20bo3$3bo13bo$2o12b2o$bo13bo!
p36/p18:

Code: Select all

x = 15, y = 10, rule = B2ai3aek4k5i/S12cik3cery4ajqrz5ae
o12bo$bo12bo$bo12bo$bo12bo3$9bo$9bo$9bo$10bo!
Edit1:
p32/p16:

Code: Select all

x = 18, y = 8, rule = B2-en3r4jky5c/S1e2cei3eqy4aknz5jn
2bo14bo$bo14bo$3o12b3o3$10b3o$11bo$10bo!

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » January 8th, 2019, 4:46 pm

A really rare one:
p60/p20 (1/3 fold)

Code: Select all

x = 31, y = 21, rule = B2acn3cnqr4jnty5ajkn6ak7e/S01e2n3ceqy4-ceqz5cijr6-ei7c
3$4bo15bo$3bo15bo$2b3o13b3o5$25bo$25b2o$14b5o4b3o$16b3o$16b4o$18bo$14b
o2bo!
It fails for the 2 fold:

Code: Select all

x = 3, y = 15, rule = B2acn3cnqr4jnty5ajkn6ak7e/S01e2n3ceqy4-ceqz5cijr6-ei7c
2bo$bo$3o10$3o$bo$o!

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

Re: Reflectorless Rotating Oscillators (RRO)

Post by muzik » February 15th, 2019, 8:15 am

Any success on a 7-fold yet?

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » February 19th, 2019, 11:46 am

muzik wrote:Any success on a 7-fold yet?
No success so far. The 1/2/3/4/5/6 fold one was already quite difficult to find. It took a couple of hours, many of those p120 work only for 1/2/3/4/5-fold, or even less - as the 'spaceship' has to move fast and has to be small all the time.

Maybe a 7-fold could be find as p(4x35)=p140 oscillator. This would be 1/2/4/5/7-fold. But this would challenge lls. I think it is more promising to find adjustable RROs - but I am not sure if this exists.

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by AforAmpere » February 19th, 2019, 7:21 pm

1/2/3/4:

Code: Select all

x = 125, y = 22, rule = B3aijry4z5ery6cn78/S2-ci3-aky4einrtyz5cejr6cn7c8
53bo2bo$4b2o46bobo2bo$5b2o47b2obo$4b2o48bob2o$4bo48b3o$17b2obo33bo46b
2obo$18b3o81b3o$19bo83bo3$62bobo$62b2o$62b3o$63bo2bo$64bobo$bo44bo18bo
19bo36bo$3o42b3o14b2o3bo16b3o34b3o$ob2o41bob2o13b4obo16bob2o33bob2o$
16bo45bo2bo$15b2o46b3o$14b2o48bo$15b2o!
1/2/4:

Code: Select all

x = 109, y = 33, rule = B3aijry4z5ery6c7c8/S2-ci3-aky4einrtyz5cejr6cn7c8
29b2o56b2o$2bo27bo57bo$5o23bob2o54bob2o$o3b2o21b2obo54b2obo$2b3o23b3o
55b3o$3bo25bo57bo22$3bo25bo31bo44bo$2b3o23b3o29b3o42b3o$2bob2o21b2o3bo
27bob2o41bob2o$b2obo23b5o26b2obo41b2obo$2bo27bo29bo44bo$2b2o56b2o43b2o
!
Both can fit 5.

EDIT, 1/2:

Code: Select all

x = 13, y = 15, rule = B3aijry4z5y6c7/S2-ci3-aky4-ajkqw5er6cen7c8
2o$b2o$2o$o8$12bo$11b2o$10b2o$11b2o!
Another:

Code: Select all

x = 4, y = 12, rule = B3aijry4z5kry6ci7/S2-c3-aky4-ajkqw5cer6cn78
2o$b2o$2o$o5$3bo$2b2o$b2o$2b2o!
EDIT 2, another 1/2/3/4:

Code: Select all

x = 132, y = 28, rule = B3aijry4ez5y6c7e/S2-ci3-aky4-ajkqw5enr6cn7c
49bo$17bo30b4o45bo$16b2o29bo4bo43b2o$15b2o26b3ob2obo2bo41b2o$16b2o25bo
bo5b3o42b2o$43bobo$64bo$63b3o$62bo2b2o$62bo3bo$2obo59b2obo$b3o60b2o$2b
o60b2o$62bo$62b2o$62b2o$24bo$23b3o$23bob2o6$9b2o38b2o38b2o38b2o$10b2o
38b2o38b2o38b2o$9b2o38b2o38b2o38b2o$9bo39bo39bo39bo!
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by AforAmpere » February 19th, 2019, 8:52 pm

1/2/4/5:

Code: Select all

x = 157, y = 27, rule = B3-cknq4ez5cer6c7/S2-ci3-ak4einrtyz5cnr6-ak7
6b2o$5bobo2bo13bo47b2o48b2o$4b2o4b2o11b3o45b2o48b2o$5b3o3bobo7b2ob2o
46b2o48b2o$7bo3bob3o5b3obo25bob2o18bo49bo$11b2ob2o9bo25b3o$23bobo26bo$
23b2o$b2o$2o2bo$2bobo$3bo$bob2o$bo2bo$b3o6$24b2o$23b3o49bo$23b2o49b3o$
4bo21bo27bo18b2obo27bo49bo$4b2o18bobo27b2o48b2o48b2o$5b2o17b3o28b2o48b
2o48b2o$4b2o48b2o48b2o48b2o!
1/2/4/8:

Code: Select all

x = 44, y = 45, rule = B3-cknq4z5ky6c7/S2-c3-aky4-ajkqw5cjkr6cin7
$14b3o$14bo$15bobo$11b2o2b3o15b2o$10b2o4b2o14b2o$11b2o20b2o$12bo21bo3$
3bob2o$3b3o33bo$4bo33b3o$37b2obo2$42b2o$40b2obo$39b2o2bo$39b3o9$2b3o$o
2b2o$ob2o$2o2$3bob2o$3b3o33bo$4bo33b3o$37b2obo3$9bo21bo$9b2o20b2o$10b
2o14b2o4b2o$9b2o15b3o2b2o$26bobo$29bo$27b3o!
Is this the highest known number that have been fit into an RRO?
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

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

Re: Reflectorless Rotating Oscillators (RRO)

Post by muzik » February 19th, 2019, 9:04 pm

AforAmpere wrote:Is this the highest known number that have been fit into an RRO?
Are we counting the soldier bugs?

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by AforAmpere » February 19th, 2019, 9:05 pm

muzik wrote: Are we counting the soldier bugs?
Sorry, I meant Non-totalistic-wise.
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

User avatar
Hdjensofjfnen
Posts: 1742
Joined: March 15th, 2016, 6:41 pm
Location: re^jθ

Re: Reflectorless Rotating Oscillators (RRO)

Post by Hdjensofjfnen » February 19th, 2019, 9:26 pm

Sometimes, I see "1/2/4/5" and wonder why you can't cram three... :?

Code: Select all

x = 5, y = 9, rule = B3-jqr/S01c2-in3
3bo$4bo$o2bo$2o2$2o$o2bo$4bo$3bo!

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 77topaz » February 19th, 2019, 10:32 pm

AforAmpere wrote:1/2/4/8:

Code: Select all

x = 44, y = 45, rule = B3-cknq4z5ky6c7/S2-c3-aky4-ajkqw5cjkr6cin7
$14b3o$14bo$15bobo$11b2o2b3o15b2o$10b2o4b2o14b2o$11b2o20b2o$12bo21bo3$
3bob2o$3b3o33bo$4bo33b3o$37b2obo2$42b2o$40b2obo$39b2o2bo$39b3o9$2b3o$o
2b2o$ob2o$2o2$3bob2o$3b3o33bo$4bo33b3o$37b2obo3$9bo21bo$9b2o20b2o$10b
2o14b2o4b2o$9b2o15b3o2b2o$26bobo$29bo$27b3o!
This rule has a nifty pushalong for a T-c/2 - if left alone, the bottom half turns into an instance of the RRO:

Code: Select all

x = 7, y = 10, rule = B3-cknq4z5ky6c7/S2-c3-aky4-ajkqw5cjkr6cin7
2o$3o$2o3$4bo$4b2o$3bob2o$3bobo$3b2o!
Hdjensofjfnen wrote:Sometimes, I see "1/2/4/5" and wonder why you can't cram three... :?
Well, you technically could, but it wouldn't change the period of the overall mechanism.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Reflectorless Rotating Oscillators (RRO)

Post by Macbi » February 20th, 2019, 4:27 am

77topaz wrote:
Hdjensofjfnen wrote:Sometimes, I see "1/2/4/5" and wonder why you can't cram three... :?
Well, you technically could, but it wouldn't change the period of the overall mechanism.
In other words, you can fit in three but you can't make them evenly spaced because the overall period doesn't divide by three.

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 2718281828 » February 20th, 2019, 6:06 am

AforAmpere wrote: 1/2/4/8:

Code: Select all

x = 44, y = 45, rule = B3-cknq4z5ky6c7/S2-c3-aky4-ajkqw5cjkr6cin7
$14b3o$14bo$15bobo$11b2o2b3o15b2o$10b2o4b2o14b2o$11b2o20b2o$12bo21bo3$
3bob2o$3b3o33bo$4bo33b3o$37b2obo2$42b2o$40b2obo$39b2o2bo$39b3o9$2b3o$o
2b2o$ob2o$2o2$3bob2o$3b3o33bo$4bo33b3o$37b2obo3$9bo21bo$9b2o20b2o$10b
2o14b2o4b2o$9b2o15b3o2b2o$26bobo$29bo$27b3o!
Is this the highest known number that have been fit into an RRO?
Yes. It should be, at least in this 'rule space'. Still, finding a 1/2/3/4/5/6/7 seems to be almost impossible with the actual methods we have.


Another class, OMOS RROs:
1/2/4:

Code: Select all

x = 89, y = 30, rule = B2ce3anry4-ekrw5ajry6-ik/S2-e3-ijr4ackt5eikny6ak
$3bo31bo31bo$b3o29b3o29b3o$bobo29bobo29bobo2$77bo6b2o$76b2o7bo$77bo6b
3o3$b3o29b3o29b3o$2bo31bo31bo5$49bo31bo$48b3o29b3o3$61b3o6bo$62bo7b2o$
62b2o6bo2$48bobo29bobo$48b3o29b3o$48bo31bo!
Edit1:
Another one with slightly slower ships (1/2/4, p236/p118/p59):

Code: Select all

x = 89, y = 39, rule = B2cek3acnry4aiqrtz5-anry6ace7c/S1e2ae3ejnqy4cirtwz5cenr6ac
8$5b2o28b2o28b2o$4bobo27bobo27bobo2$76b2o5bo$77bo6bo$76b2o5b2o2$4b3o
27b3o27b3o$4bobo27bobo27bobo7$49bobo27bobo$49b3o27b3o2$61b2o5b2o$61bo
6bo$62bo5b2o2$49bobo27bobo$49b2o28b2o!

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: Reflectorless Rotating Oscillators (RRO)

Post by 77topaz » February 20th, 2019, 7:55 pm

2718281828 wrote:Another class, OMOS RROs:
1/2/4:

Code: Select all

x = 89, y = 30, rule = B2ce3anry4-ekrw5ajry6-ik/S2-e3-ijr4ackt5eikny6ak
$3bo31bo31bo$b3o29b3o29b3o$bobo29bobo29bobo2$77bo6b2o$76b2o7bo$77bo6b
3o3$b3o29b3o29b3o$2bo31bo31bo5$49bo31bo$48b3o29b3o3$61b3o6bo$62bo7b2o$
62b2o6bo2$48bobo29bobo$48b3o29b3o$48bo31bo!
Edit1:
Another one with slightly slower ships (1/2/4, p236/p118/p59):

Code: Select all

x = 89, y = 39, rule = B2cek3acnry4aiqrtz5-anry6ace7c/S1e2ae3ejnqy4cirtwz5cenr6ac
8$5b2o28b2o28b2o$4bobo27bobo27bobo2$76b2o5bo$77bo6bo$76b2o5b2o2$4b3o
27b3o27b3o$4bobo27bobo27bobo7$49bobo27bobo$49b3o27b3o2$61b2o5b2o$61bo
6bo$62bo5b2o2$49bobo27bobo$49b2o28b2o!
Wow, those are really impressive! :o They're OMOSes with spaceships of two different speeds and RROs with multiplicity, at once!

Unfortunately, both rules are explosive, though. Do you have any examples from non-explosive rules?

User avatar
Ian07
Moderator
Posts: 891
Joined: September 22nd, 2018, 8:48 am
Location: New Jersey, US

Re: Reflectorless Rotating Oscillators (RRO)

Post by Ian07 » February 20th, 2019, 9:08 pm

77topaz wrote: Wow, those are really impressive! :o They're OMOSes with spaceships of two different speeds and RROs with multiplicity, at once!

Unfortunately, both rules are explosive, though. Do you have any examples from non-explosive rules?
The minimum rule for the first one is non-explosive, the other not so much:

Code: Select all

x = 185, y = 139, rule = B2ce3anr4aijntyz5ajry6ace/S2-e3-ijr4ackt5eikny6ak
101bo31bo31bo$99b3o29b3o29b3o$99bobo29bobo29bobo2$175bo6b2o$174b2o7bo$
175bo6b3o3$99b3o29b3o29b3o$100bo31bo31bo5$147bo31bo$146b3o29b3o3$159b
3o6bo$160bo7b2o$160b2o6bo2$146bobo29bobo$146b3o29b3o$146bo31bo50$2b3ob
o2bo2b5o2b2o2bo2b2o2b2o2b3obob4ob2o8b8o$o2bobo2b3o4b4o2b3o2b4o2b2o5bob
2o3b7obob3ob2o$2obob2ob3o3b2o2b2ob2obob4o3bobob3o2b5obo2bo3bob2obo2bo$
2bo2bobo2b4obo2bob3obobo3b3o7b2obo5b2ob3obob2o2bo$2ob2obo2bo3bobo2b2o
2bob4o2b2o2bo2bo2bo4bob4o8bobobo$bo2bobob2obob4o4b5ob3o2bob5o5b3obo5b
2ob4o$2b2obob6o6bob9obo2b4obo2b3o2bo2b2obo2bobo4bo$2b3o2bobo2b3o3bobob
2o4bob3o2b5ob4o2b9obobo$o2bobo3b2o2bo3bo4b2obo4bo2bo3b2ob3o2bob8o4bo$o
b3o4bo2bo2b5ob3o3b4o2bobo4bo2b2o2bob2o2b2o3b2ob2o$b2o2b2obobob3ob2obob
2ob2o3b3o3bob3obobobob3ob2o2b2ob2ob2o$bo6bo5bo2b3o4b2ob2ob2ob2ob5obo5b
obob5ob5o$bo2bo2bo2bob3o3b3ob2o2bo3bo4bo3b2ob3obob2o5bobo$2obo2bobo2bo
2b5o3b2o2b2obob2o2bob3obo2b2obo2b2o6b2ob3o$bob2ob3obo3bo2b5ob2ob2o4bob
6o3b5o3bo2b2o4b2obo$ob7o3bob3obo2bo4b2obo3bobobobob3ob3o3bo2bo3bobo2bo
$obo2bo2b2o3bob3o6b2o4b6o6bobobobo3bo7b4o$bo3bo3bobobo2bo2bob2obob3obo
bob2obo2b2ob3obobob3o3b2o3bo$o2bo3b3ob2o5bobo3b2o3b3o2b2ob3ob5o4b2o2bo
b8o$5obobo3bo3bo2bo2b3o3b2ob2o3bobob2o4b2o2bo2b6obo$obo2bobob3o3b2obo
2bobo3b3o2bob4o2bo3bobob2obob3obo2b2obo$3obobob2o2b9o3bo5b2ob3o2bob2ob
obo2b2o2b4ob2o4bo$b3o3bob2o3bo2bo2bo2bob2obob3ob3obo4b2o3bo2b2o4b3o2bo
$3o6bobo3bo6b2obob2obo2bo3b3obo4bobo4bo4b2o3bo$o2b7o2bob2o2b3o2bobo2bo
2b4obo3b2ob2o4b2o5bob5o$o5bob4o2bo2b4obo5b2ob3ob2o4b3o4bo2b6o2b4o$ob2o
b2ob3o5bo5b2o5b2obo3bo2bobob4obob3obobobo3b2o$2bo2b2ob6o8b2ob2obob6o3b
3o5bo3b4obo3bo$2obobo5b2obo4bo2bobo2bobob4o8bo3bo2b3ob3o2b3obo$2o5bo3b
obob3o2b2o6bo3bo2b3o3b3obo2b3obob3ob2obobo$7obo2bo2bobo3bo2bo3b5o6bo2b
o4b5obo2b5obobo$o2b2o4bo2bob2o3bobo2b3ob6obo4bob2ob6obo4bo2bobo$5obo4b
5obob2ob3obo2b4obo2b2ob3obob3o4bobo3b4o$2o2b3o3b3o3b2ob3obobo2b7ob3obo
b2o6bo2bobo3b2o2bo$2b2obo3bob2o3b4ob3o2bo4bo7bobobo3b2obo5bo2b2o$bo5bo
b2ob4o2bo2b2o2b3o2bobo4bo6b2o4bo4b2ob5o$2bo2b3o2bob5o2b2ob3obob2o4b2o
2b2ob5o4b2obo2b5o2bo$b6o6bo3b3o7b4o5bob3o4b2obo3bo2bo4b3o$b5obo4b2o3bo
3b4ob3o2b3obobo5bob2obo6bob2obobo$3b2ob2o3bob4ob2ob2obob3o3bo4bo3b4o4b
7o5bobo$b2obob2o2bobo4bobo2bo3b3o2b2o3bob2o3b3o2bobo2bo3b2ob2obo$2b2o
3b6obob3o5b4obob5o2bo2b2obob2ob2o5bob2o2bo$3bo3bob3obob3obo3b2o2bo10b
2o2bob2o2bob2o2bo2b5obo$2o4bob3o3b2o2bo2b2o2b3o4b2o6b2o2b2ob3o2b2ob4o
3bo$o3bob3o2bo2b2o2bob2obo5b3o4bobo4bobob3ob2o3bo2b2obo$5bob2ob4o7bobo
b3obo4bo2bob2ob2ob2o2b2obob2o2b3obo$bob2o3bo4b5o2bo2bob6o8b3o7b2o7b2ob
o$b2ob2o3bobo3bob3obo2bo4bo3b2o2b4obo3bobob2o3b2o5bo$o2bo7b2obo2bo2b2o
bo3bob2ob3ob3ob2ob2o3b2obo2b3obo$obobob2o3bob6o2bo2b2ob2ob2obo2bo4bob
2o2bobo2b6ob2obo$obo3b3obo4bob2obob3ob2o4b2obo2b2o3bob2o2bo4bob3o2b3o$
3bobob4ob3ob3o3b2o2bobobob3o2bo3b2o2bobo4b2o2b3ob2obo$bo4b2o2bo2bo3bob
4ob2o2b2ob2obo2b2obo2b5o4bobo7bo$2bo2b3obobo2b2obo2bobo5b6obob2o3b2o2b
o2bob2o2bobo4bo$4ob5o3b5ob3obobo5b3o2bo3b2o2b3obob2o2b2ob3obo$bobob5o
4b3ob2o2b2ob3o5bobob3o3b3obob2obo5b2o3bo$4b2o3b2ob2ob2o3bob5obo2b4ob3o
bob6ob2o2b4obo3b2o$b2ob2obo3b2o3bob3obo5b2obo2bo4bo4b5o3b4ob3o2bo$bo2b
obo6bo2bo2b2ob3o7b2o2b4obo2b4ob3obobobobo2bo$o3bob3obob2o4bo2b2ob3o2b
2ob6o2bo3bo2b4o2bobobobob2o$ob3ob3obobo5b2obo2b4obob2o3b2o3bo5b2ob2o2b
o3bob3o$2b4ob2ob2obo2bob3o2b4obo2bo5b3o3b3obobob3o3bob3o$obob2obobo5bo
2b2o2b2obobob3o2b2o4bo3bob3o2b2o3b2o2bob2o$ob2ob2ob2o2b4o2b2ob3o2b5obo
bobo2b3obo3b2o2bob2obo4bobo!

Code: Select all

x = 205, y = 155, rule = B2cek3acnry4aiqrtz5-anry6ace7c/S1e2ae3ejnqy4cirtwz5cenr6ac
125b2o28b2o28b2o$124bobo27bobo27bobo2$196b2o5bo$197bo6bo$196b2o5b2o2$
124b3o27b3o27b3o$124bobo27bobo27bobo7$169bobo27bobo$169b3o27b3o2$181b
2o5b2o$181bo6bo$182bo5b2o2$169bobo27bobo$169b2o28b2o68$2b3obo2bo2b5o2b
2o2bo2b2o2b2o2b3obob4ob2o8b8o$o2bobo2b3o4b4o2b3o2b4o2b2o5bob2o3b7obob
3ob2o$2obob2ob3o3b2o2b2ob2obob4o3bobob3o2b5obo2bo3bob2obo2bo$2bo2bobo
2b4obo2bob3obobo3b3o7b2obo5b2ob3obob2o2bo$2ob2obo2bo3bobo2b2o2bob4o2b
2o2bo2bo2bo4bob4o8bobobo$bo2bobob2obob4o4b5ob3o2bob5o5b3obo5b2ob4o$2b
2obob6o6bob9obo2b4obo2b3o2bo2b2obo2bobo4bo$2b3o2bobo2b3o3bobob2o4bob3o
2b5ob4o2b9obobo$o2bobo3b2o2bo3bo4b2obo4bo2bo3b2ob3o2bob8o4bo$ob3o4bo2b
o2b5ob3o3b4o2bobo4bo2b2o2bob2o2b2o3b2ob2o$b2o2b2obobob3ob2obob2ob2o3b
3o3bob3obobobob3ob2o2b2ob2ob2o$bo6bo5bo2b3o4b2ob2ob2ob2ob5obo5bobob5ob
5o$bo2bo2bo2bob3o3b3ob2o2bo3bo4bo3b2ob3obob2o5bobo$2obo2bobo2bo2b5o3b
2o2b2obob2o2bob3obo2b2obo2b2o6b2ob3o$bob2ob3obo3bo2b5ob2ob2o4bob6o3b5o
3bo2b2o4b2obo$ob7o3bob3obo2bo4b2obo3bobobobob3ob3o3bo2bo3bobo2bo$obo2b
o2b2o3bob3o6b2o4b6o6bobobobo3bo7b4o$bo3bo3bobobo2bo2bob2obob3obobob2ob
o2b2ob3obobob3o3b2o3bo$o2bo3b3ob2o5bobo3b2o3b3o2b2ob3ob5o4b2o2bob8o$5o
bobo3bo3bo2bo2b3o3b2ob2o3bobob2o4b2o2bo2b6obo$obo2bobob3o3b2obo2bobo3b
3o2bob4o2bo3bobob2obob3obo2b2obo$3obobob2o2b9o3bo5b2ob3o2bob2obobo2b2o
2b4ob2o4bo$b3o3bob2o3bo2bo2bo2bob2obob3ob3obo4b2o3bo2b2o4b3o2bo$3o6bob
o3bo6b2obob2obo2bo3b3obo4bobo4bo4b2o3bo$o2b7o2bob2o2b3o2bobo2bo2b4obo
3b2ob2o4b2o5bob5o$o5bob4o2bo2b4obo5b2ob3ob2o4b3o4bo2b6o2b4o$ob2ob2ob3o
5bo5b2o5b2obo3bo2bobob4obob3obobobo3b2o$2bo2b2ob6o8b2ob2obob6o3b3o5bo
3b4obo3bo$2obobo5b2obo4bo2bobo2bobob4o8bo3bo2b3ob3o2b3obo$2o5bo3bobob
3o2b2o6bo3bo2b3o3b3obo2b3obob3ob2obobo$7obo2bo2bobo3bo2bo3b5o6bo2bo4b
5obo2b5obobo$o2b2o4bo2bob2o3bobo2b3ob6obo4bob2ob6obo4bo2bobo$5obo4b5ob
ob2ob3obo2b4obo2b2ob3obob3o4bobo3b4o$2o2b3o3b3o3b2ob3obobo2b7ob3obob2o
6bo2bobo3b2o2bo$2b2obo3bob2o3b4ob3o2bo4bo7bobobo3b2obo5bo2b2o$bo5bob2o
b4o2bo2b2o2b3o2bobo4bo6b2o4bo4b2ob5o$2bo2b3o2bob5o2b2ob3obob2o4b2o2b2o
b5o4b2obo2b5o2bo$b6o6bo3b3o7b4o5bob3o4b2obo3bo2bo4b3o$b5obo4b2o3bo3b4o
b3o2b3obobo5bob2obo6bob2obobo$3b2ob2o3bob4ob2ob2obob3o3bo4bo3b4o4b7o5b
obo$b2obob2o2bobo4bobo2bo3b3o2b2o3bob2o3b3o2bobo2bo3b2ob2obo$2b2o3b6ob
ob3o5b4obob5o2bo2b2obob2ob2o5bob2o2bo$3bo3bob3obob3obo3b2o2bo10b2o2bob
2o2bob2o2bo2b5obo$2o4bob3o3b2o2bo2b2o2b3o4b2o6b2o2b2ob3o2b2ob4o3bo$o3b
ob3o2bo2b2o2bob2obo5b3o4bobo4bobob3ob2o3bo2b2obo$5bob2ob4o7bobob3obo4b
o2bob2ob2ob2o2b2obob2o2b3obo$bob2o3bo4b5o2bo2bob6o8b3o7b2o7b2obo$b2ob
2o3bobo3bob3obo2bo4bo3b2o2b4obo3bobob2o3b2o5bo$o2bo7b2obo2bo2b2obo3bob
2ob3ob3ob2ob2o3b2obo2b3obo$obobob2o3bob6o2bo2b2ob2ob2obo2bo4bob2o2bobo
2b6ob2obo$obo3b3obo4bob2obob3ob2o4b2obo2b2o3bob2o2bo4bob3o2b3o$3bobob
4ob3ob3o3b2o2bobobob3o2bo3b2o2bobo4b2o2b3ob2obo$bo4b2o2bo2bo3bob4ob2o
2b2ob2obo2b2obo2b5o4bobo7bo$2bo2b3obobo2b2obo2bobo5b6obob2o3b2o2bo2bob
2o2bobo4bo$4ob5o3b5ob3obobo5b3o2bo3b2o2b3obob2o2b2ob3obo$bobob5o4b3ob
2o2b2ob3o5bobob3o3b3obob2obo5b2o3bo$4b2o3b2ob2ob2o3bob5obo2b4ob3obob6o
b2o2b4obo3b2o$b2ob2obo3b2o3bob3obo5b2obo2bo4bo4b5o3b4ob3o2bo$bo2bobo6b
o2bo2b2ob3o7b2o2b4obo2b4ob3obobobobo2bo$o3bob3obob2o4bo2b2ob3o2b2ob6o
2bo3bo2b4o2bobobobob2o$ob3ob3obobo5b2obo2b4obob2o3b2o3bo5b2ob2o2bo3bob
3o$2b4ob2ob2obo2bob3o2b4obo2bo5b3o3b3obobob3o3bob3o$obob2obobo5bo2b2o
2b2obobob3o2b2o4bo3bob3o2b2o3b2o2bob2o$ob2ob2ob2o2b4o2b2ob3o2b5obobobo
2b3obo3b2o2bob2obo4bobo!
Here's the script I used to find them, which is a modification of a script by Rhombic:

Code: Select all

# isorule.py
# A modification of partialrule.py which returns the isotropic rulespace for a pattern in a format suitable for infoboxes on the wiki.
# This simply checks the number of generations you input to see if the pattern's evolution is the same, so it can be used for non-periodic patterns as well.
# Shamelessly stolen from Rhombic (Feb 2018) by Ian07 (Jan 2019).

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']
]

# 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('Enter the period:', '', 'Rules calculator')
if not validint(s):
    g.exit('Bad number: %s' % s)

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

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('B' + ''.join(sorted(b_need)) + '/S' + ''.join(sorted(s_need)))
rulemin = g.getrule()

g.setrule('B' + ''.join(sorted(b_OK)) + '/S' + ''.join(sorted(s_OK)))
rulemax = g.getrule()

ruleres = '|isorulemin       = ' + rulemin + '|isorulemax       = ' + rulemax
g.show(ruleres)
g.setclipstr(ruleres)
g.setrule(oldrule)
EDIT: So apparently the script messed up for the second one and returned the wrong minimum rule...

Post Reply