Re:Understanding Multiple Neighbourhood Cellular Automata
by Slackermanz on Wednesday May 26, 2021 @07:32AM
(#27289117)
How's the blog format? I hope things are explained clearly, and in enough detail!
If you have any suggestions about formatting or additional information/context you'd like me to include, or if you have any questions about MNCA (or in general), let me know!
Re:Understanding Multiple Neighbourhood Cellular Automata
by ssivark on Wednesday May 26, 2021 @01:53PM
(#27293822)
Very interesting observations! How did you stumble on this? :-)
IIUC (based on one of your blog comments), you typically need one “immediate” neighborhood and one “ring-like” neighborhood further away. The latter seems like it might likely require non-locality in a fundamental sense (which typically leads to both philosophical and practical problems, like how do you keep the non-locality in check to maintain approximate locality). Any thoughts on that?
Re:Understanding Multiple Neighbourhood Cellular Automata
by enchiridion on Wednesday May 26, 2021 @11:11AM
(#27291528)
Really enjoyed it.
Only thing I would add is numbering and rules for the extra videos. Easier to talk about that way (e.g. "I wonder what's going on with discrete pattern #7).
Re:Understanding Multiple Neighbourhood Cellular Automata
by Slackermanz on Wednesday May 26, 2021 @04:51AM
(#27287969)
I just added two branches:
'messy_update_branch' - The current full version of VulkanAutomata that has become somewhat bloated and scattered, and almost certainly less compatible
'headless_engine' branch, something I started working on a couple of days ago to really clean up and refine the code, and remove any OS-dependent aspects.
I hope to use 'headless_engine' as a part of a larger cross-platform application with a separate and modular UI, so that other people can finally run the program!
Re:Understanding Multiple Neighbourhood Cellular Automata
by abetusk on Wednesday May 26, 2021 @04:06AM
(#27287710)
This is great work.
I'd love to see a blog post detailing some of the optimizations you did to speed this up. Presumably you octree/voxel segmentation to re-use already summed regions of the CA?
Re:Understanding Multiple Neighbourhood Cellular Automata
by Slackermanz on Wednesday May 26, 2021 @04:47AM
(#27287950)
I'll add that to the list of pending posts!
For the most simple MNCA implementations, I don't use any special optimizations. It's essentially just brute-force naive convolution.
That said, some of the more advanced models I've made use up to 48 neighborhoods.
For those, I split the neighborhoods into 'Width-1' rings for each 'Radius' value, and then assemble the final neighborhoods by referencing some combination of those rings.
For the 'RGB-SMNCA' models with a maximum Radius of 10, this means that I can reduce the total texelFetch() calls from a maximum of 163348 = 16,704 (!!!) down to 13348 = 1044.
These numbers come from: ( Neighborhoods * Color Channels * Radius-10 Neighbor Count )
3D (S)MNCAs are something I certainly plan on developing, and will likely implement after I'm finished with the headless_engine branch of VulkanAutomata, which will hopefully (finally) allow for a proper cross-platform compatible application.
If you have any suggestions about formatting or additional information/context you'd like me to include, or if you have any questions about MNCA (or in general), let me know!
IIUC (based on one of your blog comments), you typically need one “immediate” neighborhood and one “ring-like” neighborhood further away. The latter seems like it might likely require non-locality in a fundamental sense (which typically leads to both philosophical and practical problems, like how do you keep the non-locality in check to maintain approximate locality). Any thoughts on that?
Could you clarify what you mean by non-locality? All NHs are a circle, or ring(s) of pixels around the 'origin' pixel [0, 0]
Only thing I would add is numbering and rules for the extra videos. Easier to talk about that way (e.g. "I wonder what's going on with discrete pattern #7).
https://github.com/Chakazul/Lenia
Furthermore, Bert and I are working to bring our programs and techniques together.
With only minor adjustments to my fragment shaders, Lenia rules can be simulated.
'messy_update_branch' - The current full version of VulkanAutomata that has become somewhat bloated and scattered, and almost certainly less compatible
'headless_engine' branch, something I started working on a couple of days ago to really clean up and refine the code, and remove any OS-dependent aspects.
I hope to use 'headless_engine' as a part of a larger cross-platform application with a separate and modular UI, so that other people can finally run the program!
https://bitbucket.org/rallison/von-neumann-life/src/master/
I'd love to see a blog post detailing some of the optimizations you did to speed this up. Presumably you octree/voxel segmentation to re-use already summed regions of the CA?
I'd also love to see some 3D MNCAs...
For the most simple MNCA implementations, I don't use any special optimizations. It's essentially just brute-force naive convolution.
That said, some of the more advanced models I've made use up to 48 neighborhoods.
For those, I split the neighborhoods into 'Width-1' rings for each 'Radius' value, and then assemble the final neighborhoods by referencing some combination of those rings.
For the 'RGB-SMNCA' models with a maximum Radius of 10, this means that I can reduce the total texelFetch() calls from a maximum of 163348 = 16,704 (!!!) down to 13348 = 1044.
These numbers come from: ( Neighborhoods * Color Channels * Radius-10 Neighbor Count )
3D (S)MNCAs are something I certainly plan on developing, and will likely implement after I'm finished with the headless_engine branch of VulkanAutomata, which will hopefully (finally) allow for a proper cross-platform compatible application.
- Video resolution is larger than 1920 × 1088 ( https://www.caniuse.com/?search=video > Known Issues )
- The videos contain no audio track ( https://wordpress.org/support/topic/mp4-h264-video-doesnt-al... )
Anyone else have ideas?
Other than that, I'm not sure. I've added direct media links under each video - hopefully that works until I can try some fixes.
I see videos on my desktop — perhaps a browser issue?
I guess I do now!
https://www.reddit.com/r/cellular_automata/