How does the GollyTicker work?
-
metametapixel
- Posts: 5
- Joined: February 29th, 2020, 6:30 pm
How does the GollyTicker work?
Basically the title. How was golly-ticker.rle engineered? More generally, how does https://github.com/potsbo/any-ticker function?
Re: How does the GollyTicker work?
When you watch one of these tickers in action, what specifically do you see that needs explaining?metametapixel wrote: March 2nd, 2020, 5:44 pm Basically the title. How was golly-ticker.rle engineered? More generally, how does https://github.com/potsbo/any-ticker function?
These tickers are all just stacks of intermitting LWSS guns that are edge shooters. Each one of these guns has a glider loop that holds gliders representing the pixels that should appear on a particular lane of the ticker. If the ticker sends a larger number of pixels before it repeats, the glider loop will be correspondingly longer.
For example, have a look in the far northwest corner of the 003 sample in the any-ticker GitHub repository:
The glider loop in the northwest corner of the stack has only one glider in it, corresponding to the single LWSS at the top of the leaf in the apple logo. The next gun has six gliders in it, and there are six LWSSes in the second row of the apple logo -- and so on.
The only other thing I can think of that might need explaining is why that gun doesn't start firing for several cycles. If you look closely, you'll see a line of ships and/or blocks stacked up in front of the input of the final edge-shooting reflector. Each ship absorbs two incoming gliders, and each block absorbs one. The pattern is designed so that these ships and blocks are exhausted just when the gun should start emitting LWSSes, to participate in building the first copy of the pattern emitted by the ticker.
-
metametapixel
- Posts: 5
- Joined: February 29th, 2020, 6:30 pm
Re: How does the GollyTicker work?
Thank you! That's exactly what I needed.
Re: How does the GollyTicker work?
While I think it is pretty obvious to anyone with experience with Life patterns, I bet the storage of ticker characters in glider loops can seem mysterious to those seeing it the first time. It'd be an interesting exercise to find someone who is a complete novice at Life but has experience with digital electronics and just have them inspect the pattern and figure out what it's doing. Assuming the text is stored somewhere, it's not hard to figure out, but it's not self-evident either.dvgrn wrote: March 2nd, 2020, 7:24 pmWhen you watch one of these tickers in action, what specifically do you see that needs explaining?metametapixel wrote: March 2nd, 2020, 5:44 pm Basically the title. How was golly-ticker.rle engineered? More generally, how does https://github.com/potsbo/any-ticker function?
Update: Could you build an obfuscated ticker in which the final output was the result of applying an XOR function to the contents of the loops to generate the ticker output so that there would be no direct visual clue? You'd need to backfit the loop contents to produce the output, but the loop contents would appear fairly random (not cryptographically strong though).
- Entity Valkyrie 2
- Posts: 2118
- Joined: February 26th, 2019, 7:13 pm
- Contact:
Re: How does the GollyTicker work?
You can see my "Merry Christmas gun" (for Xmas 2019) for the mechanism on this page:
User:Entity Valkyrie 2/Text gun
User:Entity Valkyrie 2/Text gun
Bx222 IS MY WORST ENEMY.
HyperConway — explore cellular automata on HyperRogue's hyperbolic tiling
Creator of the rule StateInvestigator
Please click here for my own pages (and oscillator stamp collections)
HyperConway — explore cellular automata on HyperRogue's hyperbolic tiling
Creator of the rule StateInvestigator
Please click here for my own pages (and oscillator stamp collections)
Re: How does the GollyTicker work?
Sure, there aren't any technical difficulties there -- just have to rebuild the circuitry to make connections between pairs of loops, either to double the number of loops and fill half of them with certified random junk, different for each new loop... or possibly just to add one extra loop and XOR each pair of adjacent loops to get the output.pcallahan wrote: March 3rd, 2020, 3:19 pmUpdate: Could you build an obfuscated ticker in which the final output was the result of applying an XOR function to the contents of the loops to generate the ticker output so that there would be no direct visual clue? You'd need to backfit the loop contents to produce the output, but the loop contents would appear fairly random (not cryptographically strong though).
You might definitely still see some pattern in the loop contents with that second option, though. It might be "safer" to turn the extra loop's contents into a filter pattern, a stream of MWSSes or some such, and XOR it with each other loop's output.
That's getting a little complicated, though. Another idea would be to go back to a single loop per pixel row, but code each pixel with multiple consecutive gliders -- even number of gliders in each group makes an OFF pixel, an odd number sends an ON pixel, or something like that. Another thing that might help a little with obfuscation would be to use inline inverters at each corner of the loop instead of simple reflectors. GilGil's 60-line printer memory module does that, and it makes for an interesting visual effect.