Documenting guns with small power-of-2 true periods

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
Post Reply
saolof
Posts: 15
Joined: August 21st, 2020, 1:31 pm

Documenting guns with small power-of-2 true periods

Post by saolof » August 24th, 2020, 5:03 pm

Circuitry with power-of-two periods are generally more hashlife-friendly, assuming a vanilla HL implementation which hashes power-of-two time evolutions of its metacell interiors. Every period halvening should allow Hashlife to reach its maximal efficiency one level deeper into its tree and somewhat reduces the number of nodes it has to keep around. And of course, it makes it easier to align circuit elements to power-of-two spatial increments.

The p256 glider gun is easy to find on the wiki. On the other hand, it currently doesn't document guns with periods of 64 and 128 despite stating that they exist (while p32 guns haven't been constructed yet afaik).

For period 64:

The github contains a true period 64 gun:

Code: Select all

x = 85, y = 77, rule = LifeHistory
3$34.A$22.A11.3A$20.3A14.A23.2A$4.A14.A16.2A23.A$4.3A12.2A15.4B18.BA.
A$7.A7.2A.3B3.7B.B5.3B14.2A.B2A$6.2A6.B2A2B5.13B.4B12.B2A2B$6.5B2.3BA
32B6.4B$8.14B3A17B2A2B2A2B3.6B$7.2A15BA17B2A2B3AB2.6B$7.2A13BAB4A13B
3A2B2A2B.7B$8.B.6B2A4B2A2B2A14B2A2BA12B$10.23B3.2B2.20B$11.9B2.10B11.
18B$12.8B3.6B16.16B$13.7B4.3B19.14B$10.11B3.B20.16B$9.12B2.2A20.14B.B
2A$9.12B2.A19.2AB.3B3.6B.BA.A$9.11B5.A16.A.AB7.6B4.A$9.8B.4B2.2A16.A
9.3B2A2B4.2A$9.7B4.2A19.2A4.2A2.4B3AB$9.7B4.A24.A2.A5BA2BA3B$9.2BA3B
6.3A21.2A3.4BAB2A3B$8.2B3A2B8.A26.5B2A4B$7.3BAB2AB36.10B$6.3B2A3B37.
10B$6.3B2A3B38.9B$4.2AB2.2A4B37.9B$3.A.AB.5BAB37.8B$3.A4.4B2A39.8B$2.
2A4.2BABAB40.6B$8.BA2BAB40.6B4.2A$7.3B2A3B39.6B4.A$8.BA3B2AB37.7B.BA.
A$7.BA5BAB37.6B2.B2A$7.BA7B38.8B$7.BA4BA3B37.8B$7.B2A3BA3B36.8B$7.2BA
BAB2A3B26.A8.7B$7.BA2BABA4B3.2A21.3A6.6B$7.2BA9BA2.A24.A4.2B2A3B$9.A
7B2.2A4.2A19.2A4.3B2A2B$3.2A4.7B9.A16.2A2.4B.3BA4B$4.A4.6B7.BA.A16.A
5.11B$4.A.AB.6B3.3B.B2A19.A2.3B2A7B$5.2AB.14B20.2A2.3BA2B2A4B$7.16B
20.A3.4BA2BA3B$8.3B2A3B2A4B19.B2A4.3B3AB12.2A$7.3BABA2BABA5B16.B2AB2A
3.8B11.A$7.2B2A3B2A9B11.4B2A2BAB2.10B.B4.BA.A$8.2BA2B2A13B2.2B3.B3A2B
2A19B2.B2A$9.2B3A21BA2BAB3A22B$10.2BA4B.16B5AB3A23B$10.6B2.15B2ABA29B
$9.6B3.16BABA5BA23B$9.4B6.7BABA6B2A5BA23B$9.2B2AB12.B2AB.11BAB5.5B7.B
.4B$7.2AB.2A14.A2B5.B.7B3.3B.B12.4B$6.A.AB18.4B15.2A4.3B9.3BA$6.A23.
2A16.A4.3B2A2.B5.ABA$5.2A23.A14.3A4.4A4B2A5.2A$31.3A11.A6.3AB2A2B2A6.
B$33.A19.B2.BA3B$58.3B!



Making a p128 gun using a glider & Herschel loop and the syringe is relatively straightforward (you can do that for any period longer than the repeat time of the syringe) and gives a relatively low population count, but has a somewhat large bounding box. The one below is p128 and adding/removing or shifting gliders in the loop lets it repeat any 8bit sequence with arbitrarily period-shifted bits, which can be useful for multiplexer circuits and/or applying bit masks. Replacing the top with two snarks at a suitable separation is also a viable option.

Code: Select all

x = 179, y = 137, rule = B3/S23
13$87bo11b2o$86bobo10b2o$78bo3b2o2bobo$77bobo2bo2b2ob2o$77bobo3bobo$
78bob4o2bob2o$80bo3bobob2o$79bo3bobo$34bo43bo3bobo$32b3o43b2o3bo$31bo
32bo$31b2o31b3o$29b3o16b2o17bo$28b3o18b2o15b2o23b6o$27bo2bo17bo42b4o$
27b2o66bo10b2o$28bo76bo2bo$67bo38b2obo$29b3o33b3o41bo$27b2ob2o32b3o42b
2o$27b2obo34b2o6bobo18b2o$27b2o28b2o7b2ob2o3bo20bo$31bo25b2o8b3o22b3o$
28bo2bo36bo11b2o10bo$19b2o8bo50bobo$19b2o7bo53bo$24b2o3bo40b2o10b2o$
24bo4bo40bo$23b2o3bo31b2o9b3o$25bo14b2o19bo11bo$25bob2o11bobo17bo$27bo
b2o11bo17b2o$27bo2bo11b2o$27bobo$27b3o11$70b2o3b2o2b2o2b2o4b2o2b2o2b2o
27b3o$70b2o3b2o2b2o2b2o4b2o2b2o2b2o27bo$127bo$70b2o11b2o4b2o6b2o$70b2o
11b2o4b2o6b2o2$70b2o3b2o2b2o2b2o4b2o2b2o2b2o$70b2o3b2o2b2o2b2o4b2o2b2o
2b2o2$70b2o3b2o12b2o6b2o$70b2o3b2o12b2o6b2o2$70b2o3b2o2b2o2b2o4b2o2b2o
2b2o$70b2o3b2o2b2o2b2o4b2o2b2o2b2o8$56bo$57bo$55b3o11$154b3o$154bobo$
140b2o11bo2bo$122b2o17bo11b2obo$123bo17bobo11b2obo$110bo11bo19b2o14bo$
110b3o9b2o31bo3b2o$113bo40bo4bo$100b2o10b2o40bo3b2o$101bo53bo7b2o$101b
obo50bo8b2o$91bo10b2o11bo36bo2bo$89b3o22b3o8b2o25bo$88bo20bo3b2ob2o7b
2o28b2o$88b2o18bobo6b2o34bob2o$73b2o42b3o32b2ob2o$74bo41b3o33b3o$74bob
2o38bo$75bo2bo76bo$76b2o10bo66b2o$89b4o42bo17bo2bo$87b6o23b2o15b2o18b
3o$116bo17b2o16b3o$117b3o31b2o$119bo32bo$100bo3b2o43b3o$99bobo3bo43bo$
98bobo3bo$94b2obobo3bo$94b2obo2b4obo$98bobo3bobo$94b2ob2o2bo2bobo$95bo
bo2b2o3bo$83b2o10bobo$83b2o11bo!
The one with the smallest bounding box that I could find was mentioned in the unsure discoveries thread, and uses three p8 Herschel reflectors and a p4 Herschel splitter to give a p128 Herschel output (very useful). Population count isn't lower, but it is significantly more compact, especially if a Herschel output is desired:

Code: Select all

x = 119, y = 105, rule = B3/S23
x = 110, y = 87, rule = B3/S23
4$76b2o$76bo5b2o$77b3obob3o$58bo20bobo4bo$51bo5bobo21bob2obo$51b3o4bo
21b2obobo$54bo28bo$53b2o28b2o3$54b2o$53bobo$53bo$54bo$51b3o$51bo2$80b
2o$80bobo$82bo$44b2o11bo24b2o$35b4o5b2obo9bo35bo$31b2obo4bo8bo7bobo12b
2o21b2o$30bo3bo4bo5bo25bobo19b2o$30bo4b2o9bob2o8b2o13bo2b2o$30bo2bo4b
2o8b2o18bo2bob2o2b2o$30bo2bo3bo2bo17b2o7bobobo5bobob2o$31b2o4bo2bo25b
2o5b2o2bob2obo$34b2o4bo17b2o6b2o3b2o2bobo$31bo4bo3bo24bo3bobob2o2bo$
31bo4bob2o6b2o10bo2b2obo2b2o2bobo3b2o$32b4o10b2o9bo4bobo4b3obo$58b5obo
8b2o$59b2o3bo4b3obo$64bo2b2o2bobo3b2o$65bo3bobob2o2bo$19b3o44b2o3b2o2b
obo$22bo43b2o5b2o2bob2obo$18bo3bo44bobobo5bobob2o$17bobo2bo32bo12bo2bo
b2o2b2o$15bo2bobo35bo16bo2b2o$15bo3bo36b2o13bobo$15bo40bobo12b2o$16b3o
28b2o$47bo2bo2$47bo2bo5b3o$46bo2bo6bo$35b3o8bobo6b3o$36bo10bo$34b3o$
47b2o$47b2o$74b3o$24b4o6bobo40bo$20b2obo4bo6b2o36bo3bo$19bo3bo4bo7bo
35bobo2bo$19bo4b2o11bo32bo2bobo$19bo2bo4b2o41bo3bo$19bo2bo3bo2bo40bo$
20b2o4bo2bo41b3o$23b2o4bo$20bo4bo3bo$20bo4bob2o7b3o$21b4o9b2o2bo$34bob
o8b2o10b4o$33bo2bo8b2o6b2obo4bo$34b2o16bo3bo4bo$34bo17bo4b2o$52bo2bo4b
2o$52bo2bo3bo2bo$53b2o4bo2bo$35b3o18b2o4bo$34bo18bo4bo3bo$34bo3bo14bo
4bob2o$34bo2bobo14b4o$36bobo2bo$37bo3bo$41bo$38b3o!
Edit: and of course, if you have a tiny p64 gun, you can easily double its period with a semi-cenark.
Last edited by saolof on August 24th, 2020, 8:27 pm, edited 7 times in total.

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

Re: Documenting guns with small power-of-2 true periods

Post by dvgrn » August 24th, 2020, 5:31 pm

saolof wrote:
August 24th, 2020, 5:03 pm
For p64, I wasn't able to find one so far?
The thread that you're missing is the Execution of Old Guns by Variable-Speed Firing Squad, and its associated Github repository. It's probably not very easy to find, and hasn't been too active lately.

A complete collection of constructed guns between periods 14 and 1024 can be downloaded here.

Someday when chris_c wins the lottery or retires from Real Life or something, maybe the GitHub gun collection will get updated to match what's in the forum thread again.

saolof
Posts: 15
Joined: August 21st, 2020, 1:31 pm

Re: Documenting guns with small power-of-2 true periods

Post by saolof » August 24th, 2020, 6:10 pm

Ah, thanks for the pointers. The github contains some really impressive work, including a very small true p64 gun which is almost as compact as the p256 gun. I'm adding it to the OP.

(Incidentally, while we are mentioning documentation: right now the best lifewiki page to hit up for a list of conduits is the one about spartan conduits, which seems to be updated much more frequently than the one about Herschel conduits)

Post Reply