Documenting guns with small power-of-2 true periods
Posted: 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:
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.
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:
Edit: and of course, if you have a tiny p64 gun, you can easily double its period with a semi-cenark.
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!
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!