Slackermanz
Unfortunately, my writeup isn't anywhere near as coherent on the technical/engine details, and the actual code is a right mess. It's more focused on the pattern family design.
Overall, my results came out very similar to Lenia in many ways, and some discovered patterns also directly resemble reaction diffusion.
---
https://slackermanz.com/understanding-multiple-neighborhood-...
I can add more detail later, but for now, see https://slackermanz.com/understanding-multiple-neighborhood-...
This prompt was engineered by myself with the assistance of ChatGPT over the course of about ten hours. I retained all of the chat logs in (poorly formatted) text files to record the full development process.
I hope some of you find this curiosity as interesting as I did!
https://slackermanz.com/understanding-multiple-neighborhood-...
The simulation was done on a RX 6800XT, and ran for ~4.5 million GPU-frames, which took just over two hours at 1024x1024 resolution (~560 FPS)
Show HN: My attempt to use a toy-like model to simulate chemical evolution
https://slackermanz.com/wp-content/uploads/VID/CGOL_LTL_HROT...
Mutating Cellular Automata until they look biological over 225 generations
Exploring Cellular Automata and Complexity – Slackermanz Blog
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]
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.
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!
- 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.
'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!
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.
I guess I do now!