I also used a GPU shader-based approach (custom vulkan engine), but used a cellular-automata-first implementation for exploring and evolving through these emergent wonderlands.
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.
I've often thought it would be heaps of fun to try to build a playful dynamic UI (perhaps for use in a game or something) where all the elements are are made from 'living' components, say CA's like your MNCA or perhaps reaction-diffusion. I would love to collaborate on some experiments around that if you'd be interested?
I've been checking out some of the huge amount of output that you and Jason from Softology have made with MNCA, so awesome to see, top work!!
I also cloned the vulkan-mnca repo from your github and it compiled and ran without any issues on my thankfully very-recently completely-updated Gentoo. I'm over the moon about that!! I've been meaning to try to wrap my head around what vulkan is like to work with and this looks like a perfect example for the kinds of things I'd want to play with! Utterly choice to connect with you, thankyou HN for being so choice! (especialy dang!)
That is extremely cool, very fine work thanks for sharing!
I agree some of the MNCA examples are very reminiscent of things that various RD's do, the one titled "A more complex MNCA example" has a similar oscillating-worms feel to something I found in a modified Gray Scott:
Hey! I'm the author of this article and just noticed the huge traffic spike.
This was my first time writing a shader. I was just playing around on shadertoy when I realized I could implement this chemical model that has fascinated me for quite some time. I'm really happy with how well my results align with results from other people who have done this before me.
While writing the article, I noticed that the same kind of shader implementation has already been done before.
Feel free to ask me anything about the implementation or the chemical model
I've played with RD's especially Gray Scott a lot in Gollygang/Ready, and found some fascinating behaviours that I then brought into Houdini for visualisation, here's a couple of examples:
One thing that can help them to look nicer (in my opinion) is a reinterpretation of the reagent values as specific colours before display.. even something as simple as: pow(Uucolor,upow) + pow(Vvcolor,vpow) can be nice with well-picked ucolor&vcolor and powers. Other possibilities like hsv-to-rgb on the values can be pretty interesting too!
This reminds me of this other work[1], which is also a fascinating example of emergence from a dynamical system. Instead of a chemical reaction model, it's a model of slime mold growth, as a system of particles and some update rules. They haven't posted new work in a while, but you can still see many video renderings on their twitter[2] using variants of it that are absolutely mesmerizing.
I considered trying to do something like this for CFD (specifically to see if I could show how lift is created by airflow over an airfoil). I got kind of stuck on it though and gave up, too far out of my area. Awesome to see others doing things like this though, feels like it’s an area ripe for exploitation!
If you're into reaction-diffusion there's an open source app called 'Ready' which I think is a great way to explore example patterns or tinker with formulas:
I also used a GPU shader-based approach (custom vulkan engine), but used a cellular-automata-first implementation for exploring and evolving through these emergent wonderlands.
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-...
https://www.shadertoy.com/user/SlackermanzCA
https://www.youtube.com/@Slackermanz/videos
I've often thought it would be heaps of fun to try to build a playful dynamic UI (perhaps for use in a game or something) where all the elements are are made from 'living' components, say CA's like your MNCA or perhaps reaction-diffusion. I would love to collaborate on some experiments around that if you'd be interested?
Sounds good! Always down to collab on experiments with like minds. I'll send an email your way with contact details!
Damnnn, sweet! I'm very excited to hear that!!
I've been checking out some of the huge amount of output that you and Jason from Softology have made with MNCA, so awesome to see, top work!!
I also cloned the vulkan-mnca repo from your github and it compiled and ran without any issues on my thankfully very-recently completely-updated Gentoo. I'm over the moon about that!! I've been meaning to try to wrap my head around what vulkan is like to work with and this looks like a perfect example for the kinds of things I'd want to play with! Utterly choice to connect with you, thankyou HN for being so choice! (especialy dang!)
That is extremely cool, very fine work thanks for sharing!
I agree some of the MNCA examples are very reminiscent of things that various RD's do, the one titled "A more complex MNCA example" has a similar oscillating-worms feel to something I found in a modified Gray Scott:
https://youtu.be/Naj_J8aznyk?si=lb0WrkrUaCDg-Rzl
Your work with MNCAs is amazing and an inspiration.
Hey! I'm the author of this article and just noticed the huge traffic spike.
This was my first time writing a shader. I was just playing around on shadertoy when I realized I could implement this chemical model that has fascinated me for quite some time. I'm really happy with how well my results align with results from other people who have done this before me.
While writing the article, I noticed that the same kind of shader implementation has already been done before.
Feel free to ask me anything about the implementation or the chemical model
Great work on the article and video!
I've played with RD's especially Gray Scott a lot in Gollygang/Ready, and found some fascinating behaviours that I then brought into Houdini for visualisation, here's a couple of examples:
https://youtu.be/4dWJ504FULw?si=lWBrhaL2J12o58e1
https://youtu.be/Naj_J8aznyk?si=lb0WrkrUaCDg-Rzl
One thing that can help them to look nicer (in my opinion) is a reinterpretation of the reagent values as specific colours before display.. even something as simple as: pow(Uucolor,upow) + pow(Vvcolor,vpow) can be nice with well-picked ucolor&vcolor and powers. Other possibilities like hsv-to-rgb on the values can be pretty interesting too!
Ah damn was meant to be asterisks there (ie multiplication of ucolor by U etc) but it got turned into italics!
This reminds me of this other work[1], which is also a fascinating example of emergence from a dynamical system. Instead of a chemical reaction model, it's a model of slime mold growth, as a system of particles and some update rules. They haven't posted new work in a while, but you can still see many video renderings on their twitter[2] using variants of it that are absolutely mesmerizing.
[1] "Physarum" by Sage Jenson https://cargocollective.com/sagejenson/physarum
[2] https://x.com/mxsage
This is really cool, it looks like it's pretty easy to get started with Shadertoy and your guidance.
One nitpick: in section 2.1.1 on implementing the reactions, you refer to "simulating the reaction A + 2B -> C"; should this have "4C"?
I considered trying to do something like this for CFD (specifically to see if I could show how lift is created by airflow over an airfoil). I got kind of stuck on it though and gave up, too far out of my area. Awesome to see others doing things like this though, feels like it’s an area ripe for exploitation!
If you're into reaction-diffusion there's an open source app called 'Ready' which I think is a great way to explore example patterns or tinker with formulas:
https://github.com/GollyGang/ready
Some fun ones from me can be found in Patterns/Experiments/DanWills