Page 1 of 1

Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: July 30th, 2017, 11:37 am
by muzik
A collection I'll run until we get a rule that can simulate all of these as well.

True speeds:

2c/1: (Impossible without Larger than Life)
x = 4, y = 4, rule = R3,C3,M0,S0..0,B8..8,NM:T100,100
4A$4A$4B$4B!


2c/3: (Impossible in Life)
x = 2, y = 3, rule = B2ac3ae/S1c2i3i
bo$3o!


2c/5: (unnamed)
x = 13, y = 11, rule = b3/s23
4bo8b$3b3o7b$2b2ob2o6b2$bobobobo2bo2b$2o3bo3b3ob$2o3bo6bo$10bobo$8bobo
2b$9bo2bo$12bo!


2c/7: (weekender)
bo12bob$bo12bob$obo10bobo$bo12bob$bo12bob$2bo3b4o3bo2b$6b4o6b$2b4o4b4o
2b2$4bo6bo4b$5b2o2b2o!


2c/9:
x = 3, y = 4, rule = B2cin3ajqy4cekwy5i6e/S02cek3ai4cnry5ikq7c
obo3$2bo!


2c/11:
x = 3, y = 2, rule = B2-ak3-kq4ctw5cein6ik/S01c3in5c
bo$obo!


2c/13:
x = 3, y = 4, rule = B2-ak3jkqr4jnyz5aciy6ein7e8/S02n3iqr
bo3$obo!


2c/15:
x = 3, y = 3, rule = B2ei3-cry4-jqw5aijnq6-ik7e/S03ej4acqrwyz5aei6k
obo2$bo!


2c/17:
x = 3, y = 3, rule = B2-ac3ai4-acjkw5aejy6k7/S01c2-ci3ceijr4-acjrw5ekry6i7c8
obo2$bo!


2c/19:
x = 1, y = 6, rule = B2ce3aeknq4ejkryz5ain6-ai7e/S01e2a3cy4kn5ae6a7e
o3$o2$o!


2c/21:
x = 3, y = 4, rule = B2-ak3-ejnq4irw5-jqy678/S03r4y5ir6k
bo3$obo!


2c/23:
x = 3, y = 2, rule = B2-ai4eitwz5aknq6cin/S01e2cn3-cikr4ceqr5cikq6aci8
obo$o!


2c/25:
x = 5, y = 3, rule = B2-ak3-acry4-inqwz5ejkqy6i7c8/S01c
2bo2$o3bo!


2c/27:
x = 3, y = 4, rule = B2-ae3acknq4-akwy5-acin6ce7c8/S02-c3-jn4acjntwz5cjy678
bo3$obo!


2c/29:
x = 3, y = 3, rule = B2ci3akqy4-cjkqy5-e6-in8/S01e3jq5ij
bo2$obo!



2c/31:
x = 1, y = 6, rule = B2-ae3acqr4qry5ein6kn7e8/S02c3cejk4-ejqtw5cry6c7c
o2$o3$o!



2c/33:
x = 3, y = 5, rule = B2-ai3-iny4aeiw5cejn6ik7/S01c3r5j
obo4$bo!


2c/35:
x = 3, y = 3, rule = B2cek3aey4qw5aein6a/S02k3eiry4-cerz5ejkqy6an7e
obo2$bo!



2c/37:
x = 3, y = 3, rule = B2ekn3aciy4ceiknt5iqy6a7e/S01c2aei3-aeir4nqrty5cejny6ck78
obo2$bo!



2c/39:
x = 3, y = 5, rule = B2-ac3-acr4jnrty5-aer6-i8/S01e2e3eky4cekwy5knry6e7e
obo4$bo!


2c/41:
x = 3, y = 4, rule = B2cik3ary4etwz5cijny6cn7c8/S012e3aijny4ikz5an6k
obo3$bo!



2c/43:
x = 1, y = 6, rule = B2-ak3-cjnr4ajnryz5-acin6-c7c/S02i3e4jn5ac
o3$o2$o!



2c/45:
x = 1, y = 7, rule = B2cen3ekry4acij5eky6k/S02kn3jry6n
o4$o2$o!



2c/49:
x = 3, y = 3, rule = B2cei3iknqr4yz5iy6c_S02aek3j5a
bo2$obo!


2c/51:
x = 1, y = 4, rule = B2-ae3-cnqy4ciqyz5aiq6c7e/S01e3q4ajrw5cijky6in
o2$o$o!


2c/53:
x = 8, y = 5, rule = B347/S01568
o6bo$8o$8o$bo4bo$bob2obo!


2c/55:
x = 1, y = 7, rule = B2cen3cekqr4cjwy5acn6-n7c8/S02i3iq4aceikz5ej6-n7e8
o2$o4$o!


2c/57:
x = 3, y = 3, rule = B2ce3kr4city6c_S02kn3cy4cty
obo2$bo!


2c/61:
x = 6, y = 7, rule = B3478/S137
bo2bo$o4bo$o4bo$o4bo2$2b2o$2b2o!


2c/63:
x = 7, y = 6, rule = B34578/S26
b2ob2o$bo3bo$2o3b2o$3ob3o$ob3obo$2bobo!


2c/65:
x = 1, y = 6, rule = B2cek3nq4cjnqrz5ajn6c7e/S01c3iqr4aciryz5cejnr6i7e8
o2$o3$o!


2c/69:
x = 1, y = 6, rule = B2cek3ceiq4-nqtyz5-aen6cik7c8/S02c3ekq4jn5ejkqr6cik7e
o3$o2$o!


2c/71:
x = 3, y = 5, rule = B2ck3ackny4eir5acjqy6k7e8_S02-ik3-aikn4-kny5-anry6ei7e
obo4$bo!


2c/73:
x = 3, y = 5, rule = B2cen3cejnq4ciknqtz5ar6i8/S02ein3-aiky4eiknqw5aeknq6ik
$bo3$obo!


2c/95:
x = 3, y = 5, rule = B2-ai3nry4-ainwz5-ijn6-k7c8_S02ekn3-eijy4-ceity5-ry6kn78
bo4$obo!


2c/97:
x = 1, y = 6, rule = B2-ak3acekq4cjkry5ijry6cen/S02ik3-acir4aeiryz5cij6ei8
o3$o2$o!


2c/109:
x = 1, y = 6, rule = B2-ai3knqr4-aeijn5iq6n/S02en4jq
o3$o2$o!


2c/117:
x = 3, y = 12, rule = B2ei3-acjn4ceijkrt5-ejry6ein7c8/S2-ak3-qr4ntwz5-inr6cin78
bo$bo$bo$bo$3o$3o$obo$bo2$bo2$3o!


Degenerate speeds:

2c/2: (Impossible in Life)
x = 2, y = 3, rule = B2a3n/S
2o2$bo!


2c/4: (lightweight spaceship)
x = 4, y = 5, rule = B3/S23
b3o$o2bo$3bo$3bo$obo!


2c/6: (unnamed)
x = 25, y = 14, rule = B3/S23
6b3o7b3o$2bob2o3bo5bo3b2obo$b3o3bobo5bobo3b3o$o3bo4b2o3b2o4bo3bo$bo6bo
b2ob2obo6bo$7bo3bobo3bo$7bo2bo3bo2bo2$9b2o3b2o$9bobobobo$10b2ob2o$11bo
bo$8b2obobob2o$8bobo3bobo!


2c/8: (unnamed)
x = 15, y = 21, rule = B3/S23
5bobobo$4b7o$4bo5bo$5bo3bo$5bo3bo$3b2o5b2o$5bo3bo$2bobobobobobo$4bobob
obo$b2obobobobob2o$bo3b2ob2o3bo2$2o3bo3bo3b2o$5bo3bo$6b3o2$4bo4b2o$3bo
bo2b2o$6bo2bobo$3bo2bo2bobo$4bobo3bo!


2c/10:
x = 1, y = 6, rule = B2cen3a4w5a6e/S02akn3eiqr4cnrz5aky6a7c8
o3$o2$o!


2c/12:
x = 3, y = 2, rule = B2-a3ceikq4-qryz5aijnq6an7c8/S01e2ace3ejry4a5akn6k8
obo$o!


2c/14:
x = 1, y = 6, rule = B2cei3cy4aejt5cjky6ae7c8/S02ik3ein4cjryz
o2$o3$o!


2c/16:
x = 3, y = 2, rule = B2cen3enq4iqr5jn6ak/S01e2-e3-ejn4aekqry5-aiky6-ai8
bo$obo!


2c/18:
x = 2, y = 4, rule = B2-ac3-jqry4acenyz5einy6-ek7c8/S02i3aik4acnyz5ejr7e
bo$o2$bo!


2c/20:
x = 3, y = 4, rule = B2cek3cejny4acikqt5-ijkr6e7c/S02e3a4k5n6i
2bo2$bo$o!


2c/22:
x = 3, y = 3, rule = B2-a3aej4ceijqtw5cejky6ain7c/S01c2-ak3nqy4cert5ai6ack7e
obo2$bo!


2c/24:
x = 3, y = 2, rule = B2-a3-ai5a6ai/S1e23-ai
obo$bo!


2c/26:
x = 4, y = 4, rule = B2cin3ajn4ijkny5acij78/S01c2kn3r4ejnr5aq
3bo3$obo!


2c/28:
x = 4, y = 3, rule = B2cen3cejq4-ijnqz5-aeij6cek7c8/S01c2i3iry4cqt5ikr6aik
o2$o2bo!



2c/30:
x = 2, y = 4, rule = B2ekn3acijq4ceij5aciry7c/S01e2e4ak5y
o2$bo$o!



2c/32:
x = 4, y = 3, rule = B2cin3-ijk4aknrtwz5-ainy6-ac7e/S02-in4y5ciq
o2bo2$3bo!


2c/34:
x = 3, y = 3, rule = B2-a3ckr4q5iknqr6e7e/S02-cn3n4cenw5kny6a
obo2$bo!



2c/36:
x = 5, y = 2, rule = B2cei3aekqy4inrz5ainy6-c78/S012c3eikqr4cijnq5jky6ac
obo$4bo!



2c/38:
x = 7, y = 5, rule = B34/S01
2bobo2$2o3b2o2$o5bo!


2c/40:
x = 4, y = 6, rule = B348/S1368
4o$4o$o2bo2$4o$b2o!


2c/42:
x = 4, y = 3, rule = B2ek3-nqr4-ejnty5-inqr6-k7c/S01c2an3j4y
2bo$o$3bo!


2c/44:
x = 9, y = 4, rule = B3568/S1357
bo5bo$3o3b3o$3o3b3o$obo3bobo!


2c/46:
x = 3, y = 4, rule = B2ck3ai4ceqr5y/S23
2o$bo$2bo$o!


2c/48:
x = 8, y = 5, rule = B3678/S1257
3o$o2bo$o$bobo2b2o$bo!


2c/50:
x = 5, y = 2, rule = B2-a3ciky4aijqtwy5ai6ck7e/S02ain3cjk4ny5knr6ai
2bo$o3bo!


2c/52:
x = 5, y = 3, rule = B2ckn3aqry4cejq5acy/S012ckn4rtw5r6ek
o2$2bobo!


2c/54:
x = 3, y = 4, rule = B3/S2-a3-a4-ai5aikny
3o$2bo$2bo$2o!


2c/56:
x = 4, y = 4, rule = B2n34ew6-n/S2-n34k5c8
2b2o$3bo$o2bo$b2o!


2c/58:
x = 4, y = 2, rule = B2cek3-iny4ajktwz5eikqy7c/S02ek3eky4cijty5n6ck
bo$o2bo!


2c/60:
x = 3, y = 5, rule = B2-ai3eknqy4aikqryz5cjkr6k8/S02en3y4nry5ek6e
bo4$obo!


2c/62:
x = 2, y = 3, rule = B2c3acjr4atz5aqry6c/S012aik3ejnr4eijknq5cinry
bo2$2o!


2c/64:
x = 5, y = 2, rule = B2cn3-cny4e/S02cn3ny5ae
o$2bobo!


2c/66:
x = 3, y = 5, rule = B2ei3-aenq4aciknqw5aein6ck/S01e2n3aej4jkwy5ijry6c
2bo2$o2$o!


2c/68: (B0)
x = 7, y = 6, rule = B038/S0123
o$2bo3bo$3obo$5obo2$3bob2o!


2c/70:
x = 3, y = 2, rule = B2ce3acr4aiknt5acy6e/S01c2-in3-akny4enrwyz5aijn6-ci8
obo$bo!


2c/72:
x = 5, y = 3, rule = B2ckn3-inr4aeqrw5aj6ak/S01e2ce3cijky4nwz5any6c7c8
4bo2$o3bo!


2c/74:
x = 5, y = 4, rule = B2ci3acy4aenqtw5ejn/S02cen3qy4knw5ci
4bo2$4bo$o!


2c/76:
x = 4, y = 4, rule = B2cek3ky4acikwyz5kry6e7c/S01e2cen3aceqr4eknqrtz5c6ae
bobo3$o!


2c/78:
x = 4, y = 3, rule = B2en3eiqr4kw5aq6a/S012cn3aejy4aijkqy5c
3bo$bo$o!


2c/80:
x = 3, y = 4, rule = B2ei3-aj4-iknqw5-acer6ack/S012ikn3-acn4-eiknq5cenq6an7
2bo3$obo!


2c/82:
x = 6, y = 4, rule = B2cik3acikq4aceryz5acikr6-en8/S02kn3ajkqr4jn5ainry6e7e
5bo3$obo!


2c/84:
x = 3, y = 4, rule = B3458/S056
2b9o$2o9b2o$2bob5obo$2o9b2o$2bob2ob2obo$bo4bo4bo$3b2obob2o!


2c/86:
x = 3, y = 4, rule = B2-an3cek4acqz5iq6n7c/S02ain3aiqry4cijnqty5-ijqr6an7c
bo3$obo!


2c/88:
x = 3, y = 4, rule = B2cek3ckr4-ciwyz5acy6c7c/S01e2-ik3ejq4-eirtz5acenq6-ik7
2bo$o2$2bo!


2c/90:
x = 4, y = 3, rule = B2-ae3-jq4aijqrz5ijr6ack7e8/S03k4t6k
o2bo2$o!


2c/92:
x = 1, y = 7, rule = B2cin3-jnqy4-aejyz5-ejkq6kn8/S01e2e3cei
o4$o2$o!


2c/96: (B0)
x = 9, y = 8, rule = B01367/S
b3ob3o$9o$b7o$b7o$9o$b7o$9o$b7o!


2c/98:
x = 3, y = 4, rule = B2-ac3ir4cjknqry5knqry6akn7e/S01e2a3-aeiy4qrtw5aiqr
2bo3$obo!


2c/316:
x = 8, y = 11, rule = B34567/S0456
3b2o$3bob2o$2bo3bo$b3o3bo$3o3bo$b2o4bo$2o4bo$bo4b2o$2o3b2o$2b3obo$2bob
o!




Work in progress

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: July 30th, 2017, 11:51 am
by toroidalet
Why are you using suboptimal B3/S23 ships?
2c/4:
x = 2, y = 3, rule = B2ce3ei/S1e2ac
o$bo$o!

2c/5:
x = 2, y = 3, rule = B2ekn3aei/S02cek
o$bo$o!

2c/13:
x = 4, y = 3, rule = B2-ak3jkqr4jnyz5aciy6ein7e8/S02n3iqr
o$3bo$o!

2c/14:
x = 6, y = 1, rule = B2cei3cy4aejt5cjky6ae7c8/S02ik3ein4cjryz
o2bobo!

2c/15:
x = 3, y = 3, rule = B2ei3-cry4-jqw5aijnq6-ik7e/S03ej4acqrwyz5aei6k
2bo$o$2bo!

2c/16:
x = 2, y = 3, rule = B2cen3enq4iqr5jn6ak/S01e2-e3-ejn4aekqry5-aiky6-ai8
o$bo$o!

2c/17:
x = 3, y = 3, rule = B2-ac3ai4-acjkw5aejy6k7/S01c2-ci3ceijr4-acjrw5ekry6i7c8
2bo$o$2bo!

2c/18:
x = 4, y = 2, rule = B2-ac3-jqry4acenyz5einy6-ek7c8/S02i3aik4acnyz5ejr7e
o2bo$2bo!

2c/19:
x = 6, y = 1, rule = B2ce3aeknq4ejkryz5ain6-ai7e/S01e2a3cy4kn5ae6a7e
obo2bo!

2c/20:
x = 4, y = 3, rule = B2cek3cejny4acikqt5-ijkr6e7c/S02e3a4k5n6i
o$bo$3bo!

2c/21:
x = 4, y = 3, rule = B2-ak3-ejnq4irw5-jqy678/S03r4y5ir6k
o$3bo$o!

2c/22:
x = 3, y = 3, rule = B2-a3aej4ceijqtw5cejky6ain7c/S01c2-ak3nqy4cert5ai6ack7e
2bo$o$2bo!

2c/23:
x = 2, y = 3, rule = B2-ai4eitwz5aknq6cin/S01e2cn3-cikr4ceqr5cikq6aci8
2o2$bo!

2c/24:
x = 2, y = 3, rule = B2-a3-ai5a6ai/S1e23-ai
bo$o$bo!

2c/25:
x = 3, y = 5, rule = B2-ak3-acry4-inqwz5ejkqy6i7c8/S01c
o2$2bo2$o!

2c/26:
x = 4, y = 4, rule = B2cin3ajn4ijkny5acij78/S01c2kn3r4ejnr5aq
o2$o$3bo!

2c/27:
x = 4, y = 3, rule = B2-ae3acknq4-akwy5-acin6ce7c8/S02-c3-jn4acjntwz5cjy678
o$3bo$o!

2c/43:
x = 5, y = 9, rule = B346/S1468
2o$2bo$2bo$2bobo$obobo$2bobo$2bo$2bo$2o!

2c/45:
x = 9, y = 5, rule = B34/S036
bo3bo$3b2o$3ob2o2bo$3b2o$bo3bo!

2c/46:
x = 4, y = 3, rule = B2ck3ai4ceqr5y/S23
o2bo$2b2o$bo!

2c/54:
x = 4, y = 3, rule = B3/S2-a3-a4-ai5aikny
o2bo$o2bo$b3o!

2c/56:
x = 4, y = 4, rule = B2n34ew6-n/S2-n34k5c8
bo$o$o2bo$b3o!

2c/70:
x = 3, y = 4, rule = B3-n4aw5a/S2-k3-a4a
b2o$2bo$obo$2o!

2c/117:
x = 12, y = 3, rule = B2ei3-acjn4ceijkrt5-ejry6ein7c8/S2-ak3-qr4ntwz5-inr6cin78
o4b3o$obobob6o$o4b3o!

2c/316:
x = 11, y = 8, rule = B34567/S0456
2bobobo$2b6o$2o3b4o$bo5bob2o$2o8bo$2bo6bo$b4obob2o$3bobobo!

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: July 30th, 2017, 12:03 pm
by muzik
toroidalet wrote:Why are you using suboptimal B3/S23 ships?

Because that's what's going to be appearing in the mashup eventually.

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: July 31st, 2017, 10:55 am
by muzik
Currently have all speeds up to 2c/40, with the exception of 2c/1 (which would require a Larger than Life rule and as such would be extremely difficult to include within a mashup), 2c/32, 2c/33 and 2c/39.

EDIT: 2c/1 down.

EDIT2: Added a B0 2c/32

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 1st, 2017, 5:55 am
by Saka
Oh god only 1 of my spaceships I need to get back in my game.

I believe this is smaller by population...?
2c/14
x = 5, y = 4, rule = B2-a3enq4cetz/S123ai
2bo$o3bo2$bobo!

Probably not

Oh and
2c/35
x = 4, y = 3, rule = B3-n/S2-i34k6c
2b2o$3o$bo!

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 1st, 2017, 9:37 am
by muzik
Saka wrote:I believe this is smaller by population...?
2c/14
x = 5, y = 4, rule = B2-a3enq4cetz/S123ai
2bo$o3bo2$bobo!

Probably not

quite clearly correct.

Saka wrote:Oh and
2c/35
x = 4, y = 3, rule = B3-n/S2-i34k6c
2b2o$3o$bo!

Isn't that 4c/50?

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 1st, 2017, 9:44 am
by Saka
muzik wrote:
Saka wrote:Oh and
2c/35
x = 4, y = 3, rule = B3-n/S2-i34k6c
2b2o$3o$bo!

Isn't that 4c/50?

Wait what I probably mistyped it when making the post :oops:

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 3:03 pm
by muzik
Currently have all speeds up to 2c/50, except for 2c/47 and 2c/49.

I probably won't be counting the 2c/even speeds (aside from 2c/2 and the ones already in Life) in the mashup, since that would bring the file size up too much, and they can be roughly estimated with the adjustable c/even ships. Also won't be counting 2c/1.

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 6:26 pm
by muzik
I have enumerated all speeds up to 2c/100 that I could find, as well as splitting up the true new speeds and the degenerate speeds.

This leaves these undiscovered true speeds below 100:
2c/47
2c/59
2c/67
2c/75
2c/77
2c/79
2c/81
2c/83
2c/85
2c/87
2c/89
2c/91
2c/93
2c/99
--------
FOUND: 2c/53
FOUND: 2c/61
FOUND: 2c/63
FOUND: 2c/55
FOUND: 2c/49
FOUND: 2c/57
FOUND: 2c/71
FOUND: 2c/95


alongside these degenerate speeds:
2c/68 (B0)
2c/94
2c/96 (B0)
2c/100

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 7:29 pm
by wwei23
My script turned this up:
2c/25285
x = 68 , y = 1 , rule = B3/S23:T68,1
booobobbboooobbbbbbbbbooobbobbbbbbbobbbooobobbbbobbbbbooooobbbobbbbb

EDIT:
And it's a hash collision.
HighLife is MUCH more conductive to the old spaceship on a torus.Hopefully, muzik accepts spaceships on tori.

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 7:46 pm
by drc
wwei23 wrote:My script turned this up:
2c/25285
x = 68 , y = 1 , rule = B3/S23:T68,1
booobobbboooobbbbbbbbbooobbobbbbbbbobbbooobobbbbobbbbbooooobbbobbbbb

That's not even a spaceship. Unless you can find something to stabilize it (a very impossible challenge considering the speed of computers today), it's useless.

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 7:51 pm
by muzik
2c/53, 2c/61 and 2c/63 found in the glider database. Anyone willing to search for anything over 2c/100?

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 8:01 pm
by AforAmpere
2c/55, found in a search that I am currently running:
x = 7, y = 1, rule = B2cen3cekqr4cjwy5acn6-n7c8/S02i3iq4aceikz5ej6-n7e8
o3bobo!


EDIT, 2c/106:
x = 4, y = 14, rule = B3578/S01457
bo$o$bobo$obo$o2$o$o2$o$obo$bobo$o$bo!

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 8:09 pm
by muzik
AforAmpere wrote:a search that I am currently running:

Ah, so that's how you managed to find all the microscopic ships with preposterously high periods.

Does it search randomly, or can you define a speed you want?

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 8:12 pm
by AforAmpere
It is random rules, Wildmyron wrote it, it is pretty fast, and searches for three-cell ships. He did make a mod for four cell ships, but I haven't used it yet.

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 8:26 pm
by muzik
Although I highly doubt I'll be able to get it to work, can I have a link to it?

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 2nd, 2017, 8:27 pm
by AforAmpere
I'm not going to release it until Wildmyron does, I asked him about it a while ago, and he said it was not done, maybe he is working on a better or faster version, and wants to release it then.

Re: Semiperfect Orthogonal Speeds in Life-like CA

PostPosted: August 3rd, 2017, 9:25 am
by wwei23
Peer review, anyone?Yes, I will gladly post gigantic files for peer review.
T96.txt
(216.06 KiB) Downloaded 11 times
T72.txt
(187.39 KiB) Downloaded 10 times
T48.txt
(189.34 KiB) Downloaded 8 times

Usually, if a spaceship is reported twice, it is generally an actual spaceship, and vice versa, but still check anyway.
2c/42:
x = 96 , y = 1 , rule = B36/S23:T96,1
bbbooobooobbbobbbobbbobbbobooobobbbooobbbbbbobbbbbbobooobooobooobooobooobbbobbbbbbobbbbbooobooob

2c/50:
x = 68 , y = 1 , rule = B36/S23:T68,1
bbbobooooooboooooooobobbbobbobbbobbbobooobooobooobobbbbobbbobbbobbbo

2c/66:
x = 96 , y = 1 , rule = B36/S23:T96,1
bbbooobooobooobbobbbobbbobbbobbbobbbobbbobbbobbbobooobobbboooooobbbobbbobbbbbbobbbobbbobbbobooob

2c/86:
x = 48 , y = 1 , rule = B36/S23:T48,1
bbobooobbbbbbobbbobbbooobbbbbbooobobbbbbbbbobbob

2c/90:
x = 68 , y = 1 , rule = B36/S23:T68,1
bobbbbobobbbobbbobbobbbobbbobooobbbbbbobbbobbbobbbooobbbbooobbbbbobb

2c/94:
x = 72 , y = 1 , rule = B36/S23:T72,1
bbobbbobbobbbobbbooobobbbbbbobooobbbobbobooobooobooobooobbobbbobbbobbbob

2c/110:
x = 72 , y = 1 , rule = B36/S23:T72,1
bbbooobbbobbbbobbbobbbobbbobbbobbbobbbobbobbbobbbobbbobbbobbbooobbooobbb

2c/118:
x = 96 , y = 1 , rule = B36/S23:T96,1
bobbbobbbobbbobbboooooobbbobooobooobbbbooobooobooobooobobbbbobbbobooobooobooobobbbobbbobbooobobb

2c/134:
x = 96 , y = 1 , rule = B36/S23:T96,1
bbbobbbobbbobbbobbbobobbbbbbooobobbbobbbooobooobooobooobooobooobobbobbbooobbbbooobbbobbobooobooo

2c/170:
x = 96 , y = 1 , rule = B36/S23:T96,1
bbbobbbbbbobbbobbboboooboooooobooobbbobbbobbbobbooobobbbobbbobbbobbbobbbobbbobbbobbboooooobobbbo

2c/242:
x = 200 , y = 1 , rule = B36/S23:T200,1
booobooobooobooobbbbooobooobooobooobbboooobooobobbbooobooobooobbbbooobooobooobbbbbobbboooooobbbobooobobbbobbbobbbbbbobbbobbbobooobbbobbbobbbbbbobbbobbbobbbobbbobbbobbobbbobbbobbboooboooboooooobooobobb

2c/250:
x = 48 , y = 1 , rule = B36/S23:T48,1
bbooobooobobbbobbbbooobbbbbbooobobbboooobobbbobb

2c/654:
x = 96 , y = 1 , rule = B36/S23:T96,1
booobooobobbboooboooooobooobbboobbbobbbobobbbbobbbobbbobbbobbbboboooooboooooobooobooobbbobooobbb

2c/988:
x = 72 , y = 1 , rule = B36/S23:T72,1
bbobbobbbobbbobbbobbbobbboobbbbbobbbobbbbbbobbbobooobobbbooobbbbooobbbob

2c/1034:
x = 68 , y = 1 , rule = B36/S23:T68,1
booobobbobooobbbobbbobbobbbobbbbbooobooobbbbooobooobbboboooooobooobb

2c/1472:
x = 96 , y = 1 , rule = B36/S23:T96,1
obbbobbbobbbobbbbooobbbobbbobbbobbbooobobbbooobboooboooboooboooooobooobooobbbobbbobbbobbbobbobbb

2c/2162:
x = 68 , y = 1 , rule = B36/S23:T68,1
bbooobobbobooobbbobbbobbobbbobbbbbooobooobbbbooobooobbboboooooobooob

2c/2254:
x = 68 , y = 1 , rule = B36/S23:T68,1
obbbobbbooobooobooobobbbobbbobbbbbbobbbooobobbobooooobbbbooobbbbbobb

2c/7020:
x = 72 , y = 1 , rule = B36/S23:T72,1
booobooobooobobbbbbbbboobbbobbbbobobbbobbbooobbbbooobbbbbobbbooobobbbobb

Also, a purported 2c/13885 evolves into/is actually a 3c/1036:
x = 93, y = 1, rule = B36/S23:T96,1
3ob6obo3b3ob3ob3ob6ob3ob3ob3o3bob3o4b3obo3b3ob3obo3bo2bo3bob3o3bo!

Same with a not-actually-despite-being-reported-as-a-2c/12114, also ends up as a 3c/1036:
x = 96 , y = 1 , rule = B36/S23:T96,1
oooboooooobobbboooboooboooboooooobooobooobooobbbobooobbbbooobobbbooobooobobbbobbobbbobooobbbobbb

Also, the slowest spaceship I've ever seen was a c/11947.
Also, my script:
# Oscar is an OSCillation AnalyzeR for use with Golly.
# Author: Andrew Trevorrow (andrew@trevorrow.com), March 2006.
# Modified to handle B0-and-not-S8 rules, August 2009.

# This script uses Gabriel Nivasch's "keep minima" algorithm.
# For each generation, calculate a hash value for the pattern.  Keep all of
# the record-breaking minimal hashes in a list, with the oldest first.
# For example, after 5 generations the saved hash values might be:
#
#   8 12 16 24 25,
#
# If the next hash goes down to 13 then the list can be shortened:
#
#   8 12 13.
#
# When the current hash matches one of the saved hashes, it is highly likely
# the pattern is oscillating.  By keeping a corresponding list of generation
# counts we can calculate the period.  We also keep lists of population
# counts and bounding boxes; they are used to reduce the chance of spurious
# oscillator detection due to hash collisions.  The bounding box info also
# allows us to detect moving oscillators (spaceships/knightships)
import golly as g
LENGTH=LENGTH=int(g.getstring("Supply a torus width","72"))
RULE="B36/S23"
from glife import rect, pattern
from time import time
filename=g.opendialog("Choose Spaceship File")
f=open(filename,"a")
f.write("----------NEW HAUL----------\n")
f.close()
g.setrule(RULE+":T"+str(LENGTH)+",1")
g.select([-LENGTH/2,0,LENGTH,1])
g.randfill(50)
# --------------------------------------------------------------------

# initialize lists
hashlist = []        # for pattern hash values
genlist = []         # corresponding generation counts
poplist = []         # corresponding population counts
boxlist = []         # corresponding bounding boxes

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

def show_spaceship_speed(period, deltax, deltay):
    # we found a moving oscillator
    if period == 1:
        g.show("Spaceship detected (speed = c)")
    elif (deltax == deltay) or (deltax == 0) or (deltay == 0):
        speed = ""
        if (deltax == 0) or (deltay == 0):
            # orthogonal spaceship
            if (deltax > 1) or (deltay > 1):
                speed += str(deltax + deltay)
        else:
            # diagonal spaceship (deltax == deltay)
            if deltax > 1:
                speed += str(deltax)
        g.show("Spaceship detected (speed = " + speed + "c/" +str(period) + ")")
    else:
        # deltax != deltay and both > 0
        speed = str(deltay) + "," + str(deltax)
        g.show("Knightship detected (speed = " + speed + "c/" + str(period) + ")")
    rle="x = "+str(LENGTH)+" , y = 1 , rule = "+g.getrule()+"\n"
    for x in range(-LENGTH/2,LENGTH/2):
        if g.getcell(x,0) == 1:
            rle = rle+"o"
        else:
            rle = rle+"b"
    if speed == "2":
        g.show("2c/n period spaceship found. Testing new soup and writing spaceship.")
        f=open(filename,"a")
        f.write("2c/"+str(period)+"\n"+rle+"\n")
        f.close()
    else:
        g.show("Bad period spaceship found. Testing new soup.")
   
# --------------------------------------------------------------------

def oscillating():
    # return True if the pattern is empty, stable or oscillating

    # first get current pattern's bounding box
    prect = g.getrect()
    pbox = rect(prect)
    if pbox.empty:
        g.show("The pattern is empty.")
        g.select([-LENGTH/2,0,LENGTH,1])
        g.randfill(50)
        return False

    # get current pattern and create hash of "normalized" version -- ie. shift
    # its top left corner to 0,0 -- so we can detect spaceships and knightships
    ## currpatt = pattern( g.getcells(prect) )
    ## h = hash( tuple( currpatt(-pbox.left, -pbox.top) ) )

    # use Golly's hash command (3 times faster than above code)
    h = g.hash(prect)

    # check if outer-totalistic rule has B0 but not S8
    rule = g.getrule().split(":")[0]
    hasB0notS8 = rule.startswith("B0") and (rule.find("/") > 1) and not rule.endswith("8")

    # determine where to insert h into hashlist
    pos = 0
    listlen = len(hashlist)
    while pos < listlen:
        if h > hashlist[pos]:
            pos += 1
        elif h < hashlist[pos]:
            # shorten lists and append info below
            del hashlist[pos : listlen]
            del genlist[pos : listlen]
            del poplist[pos : listlen]
            del boxlist[pos : listlen]
            break
        else:
            # h == hashlist[pos] so pattern is probably oscillating, but just in
            # case this is a hash collision we also compare pop count and box size
            if (int(g.getpop()) == poplist[pos]) and \
                (pbox.wd == boxlist[pos].wd) and \
                (pbox.ht == boxlist[pos].ht):
                period = int(g.getgen()) - genlist[pos]

                if hasB0notS8 and (period % 2 > 0) and (pbox == boxlist[pos]):
                    # ignore this hash value because B0-and-not-S8 rules are
                    # emulated by using different rules for odd and even gens,
                    # so it's possible to have identical patterns at gen G and
                    # gen G+p if p is odd
                    return False

                if period == 1:
                    if pbox == boxlist[pos]:
                        g.show("Oscillator, not spaceship. Filling with new soup.")
                        g.select([-LENGTH/2,0,LENGTH,1])
                        g.randfill(50)
                        return False
                    else:
                        show_spaceship_speed(1, 0, 0)
                elif pbox == boxlist[pos]:
                    g.show("Oscillator, not spaceship. Filling with new soup.")
                    g.select([-LENGTH/2,0,LENGTH,1])
                    g.randfill(50)
                    return False
                else:
                    deltax = abs(boxlist[pos].x - pbox.x)
                    deltay = abs(boxlist[pos].y - pbox.y)
                    show_spaceship_speed(period, deltax, deltay)
                return True
            else:
                # look at next matching hash value or insert if no more
                pos += 1

    # store hash/gen/pop/box info at same position in various lists
    hashlist.insert(pos, h)
    genlist.insert(pos, int(g.getgen()))
    poplist.insert(pos, int(g.getpop()))
    boxlist.insert(pos, pbox)

    return False

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

def fit_if_not_visible():
    # fit pattern in viewport if not empty and not completely visible
    r = rect(g.getrect())
    if (not r.empty) and (not r.visible()): g.fit()

# --------------------------------------------------------------------
g.show("Checking for oscillation... (hit escape to abort)")
   
oldsecs = time()
while True:
   
   
    while not oscillating():
        g.run(1)
        newsecs = time()
        if newsecs - oldsecs >= 1.0:     # show pattern every second
            oldsecs = newsecs
            fit_if_not_visible()
            g.update()

    hashlist = []        # for pattern hash values
    genlist = []         # corresponding generation counts
    poplist = []         # corresponding population counts
    boxlist = []         # corresponding bounding boxes

    g.select([-LENGTH/2,0,LENGTH,1])
    g.randfill(50)
   
    fit_if_not_visible()

3c/826:
x = 72 , y = 1 , rule = B36/S23:T72,1
obbbobbbobbbbbbobbbobbbobbbobbbbooobbboboooboooooobooobooobbbobbbbbbobbb

Evolves into 6c/98:
x = 72 , y = 1 , rule = B36/S23:T72,1
oooboooboooooobooobooobbbooobbooobooobooobbbobbbbbbobbbobbbobooobbbbobbb