Implement Cyclic Cellular Automata pattern
Alternates between Greenberg-Hastings and Cyclic models. https://en.wikipedia.org/wiki/Greenberg%E2%80%93Hastings_cellular_automaton should make all the math intuitively obvious to even the most casual observer...
Future work: Perhaps use audio ractivity to excite ColorFromCellState by frequency and using beat detection to repopulate the Seed functions would be interesting.
"Thanx, Gemini!"
Description
Add new effect for Mesmerizer. Somewhat like the 'life' patterns, Cellular Automata allows patterns that grow and move about the display.
The math came from a variety of sources and in a first fro me, the coding was very much done by Gemini.
"Hendrix goes Electric."
There are the #if RUTGER blocks where Gemini tried to add code for settings but neither one of us could derive a sensible thing from the examples, so Rutger and I need to work that out. (Or just pull it...) Tweaking those variables CAN result in visually interesting patterns, even if it's via recompilation.
Contributing requirements
- [x] I read the contribution guidelines in CONTRIBUTING.md.
- [x] I understand the BlinkenPerBit metric, and maximized it in this PR.
- [x] I selected
mainas the target branch. - [x] All code herein is subjected to the license terms in COPYING.txt.
I'm traveling and away from my HUB75s, but I noticed that there was some followup that I made that never made it here. Odd.
I had originally left the settings disabled at least partially because I know that effects for Mesmerizer have fuzzy acceptance criteria (including a nebulous size goal, which I probably could help quantify, and "coolness," which I really can't), and I didn't see a reason to push forward with settings (which we widely underuse in effects, IMO) unless it seemed that these would make it through the velvet chains "if only" this or that changed. Unfortunately, I seem to have forgotten to actually SAY that in the review, so I may have wasted your time, Rutger, on technical stuff that might not matter anyway. Sorry! So to help with the non-technical side, I tried some AI magic to make a web-viewable version of what the effects look like.
When "Hey, Gemini, make me a Javascript version of that C++ code, but instead of blinking HUB75s, draw into a
But that didn't seem to make this PR, either...
I won't keep it up forever, but for now, https://robertlipe.com/tmp/PatternCyclicCA.html can help give us a go/no-go if this is worth chasing. At some point, there was more action of the growing ""mold"—the part that looks more like our Life automata pattern that helped keep that more interesting, and I'd like to get back to that before we seriously commit to this PR, but it seemed worth offering it for consideration.
So before we proceed, is something like
https://robertlipe.com/tmp/PatternCyclicCA.html
likely to be accepted?
There's still stuff we can do with the initial state and the number of states used, as well as the speed and duration that really affect things, but it's pretty hard to predict how changes will manifest.
If there's interest, I'll keep at this idea. (Well, more so next week.) If the bosses hate it, we can shoot it dead before worrying about m_foo vs. _foo and similar details.
...and I didn't see a reason to push forward with settings (which we widely underuse in effects, IMO)
I agree whole-heartedly, which is why I appreciated the effort you made towards adding them so much.
I seem to have forgotten to actually SAY that in the review, so I may have wasted your time, Rutger, on technical stuff that might not matter anyway. Sorry!
No, please. I appreciate the effort you made, and I also didn't ask what feedback you were looking for first. It was my own decision to dive in with this focus and level of detail, straight away.
So before we proceed, is something like https://robertlipe.com/tmp/PatternCyclicCA.html likely to be accepted?
Well, I like it. I think there are some things that can be looked at, particularly towards the end of the pattern's development, but you already mention those yourself.
At the same time, this being a very visual contribution directly involving blinking LEDs, I'll ask Dave for his opinion as well. He's also been busy with other things, so in terms of lead time on this PR, I don't think we actually lost a lot of traction we could otherwise have had.
He or I will get back to you as soon as there is an opinion to share!
No rush. It's a holiday week in the US and I'm on the road.
Even if I wasn't on the road, there's no rush either, of course.
Those tunable integers and the initial seed change the effect a LOT, so there's likely to be some knob turning before we submit.
Thanx for thinking it through.
On Tue, May 20, 2025, 2:26 AM Rutger van Bergen @.***> wrote:
rbergen left a comment (PlummersSoftwareLLC/NightDriverStrip#720) https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/720#issuecomment-2893108709
...and I didn't see a reason to push forward with settings (which we widely underuse in effects, IMO)
I agree whole-heartedly, which is why I appreciated the effort you made towards adding them so much.
I seem to have forgotten to actually SAY that in the review, so I may have wasted your time, Rutger, on technical stuff that might not matter anyway. Sorry!
No, please. I appreciate the effort you made, and I also didn't ask what feedback you were looking for first. It was my own decision to dive in with this focus and level of detail, straight away.
So before we proceed, is something like https://robertlipe.com/tmp/PatternCyclicCA.html likely to be accepted?
Well, I like it. I think there are some things that can be looked at, particularly towards the end of the pattern's development, but you already mention those yourself.
At the same time, this being a very visual contribution directly involving blinking LEDs, I'll ask Dave for his opinion as well. He's also been busy with other things, so in terms if lead time on this PR, I don't think we actually lost a lot of traction we could otherwise have had.
He or I will get back to you as soon as there is an opinion to share!
— Reply to this email directly, view it on GitHub https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/720#issuecomment-2893108709, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCSD35VNQNJFXIA4DIHLGL27LDLBAVCNFSM6AAAAAB4Z742XOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQOJTGEYDQNZQHE . You are receiving this because you authored the thread.Message ID: @.***>
@robertlipe Conclusion: the pattern looks interesting and sufficiently different from what we already have, but looks like it needs tuning - with which we're basically again coming back to what you already said yourself.
Anyway, I'd say there is sufficient reason to continue working on this.