@timhutton Hey Tim! I built a 2026 fork of your Squirm3 that keeps the chemistry rules unchanged but modernizes the substrate: WebGPU rendering, 5000ร—3000 arena, water as continuum heterogeneous-Brownian regions, seedable RNG, save/load.

In a single seeded run I observed a closed a-a-a membrane loop spontaneously form around a cluster of intact protocells, then accumulate more cells over time:

1. iter 117,632 - outer loop, 1 inner protocell
2. iter 140,920 - 69-atom outer loop, 2 inner protocells
3. iter 157,068 - 78-atom outer loop, 4 inner protocells

Verified from the bond graph, not just visually, I also made an analysis script in the repo that walks the graph and runs point-in-polygon containment. The outer ring is ~3x the size of a typical single-cell membrane in the same run.

Your polymerization rule is scale-agnostic, so this is consistent with your chemistry, but I don't think meta-membrane formation appears in your 2002 or 2007 papers. Did you ever observe it in your own runs?

Three save files + the script are in the repo so it's reproducible. Load any save in the demo and you boot directly into that state.

Demo: https://davidortsac.github.io/primordium/

Saves + script: https://github.com/DavidOrtsac/primordium/tree/main/samples

Repo: https://github.com/DavidOrtsac/primordium

Big fan of your work!

#CellularAutomata #ArtificialLife #ALife #ReactionDiffusion #ArtificialChemistry

Primordium

Not surprising at all, but first time I'm seeing an example of reaction diffusion patterns in granite:

https://fed.brid.gy/r/https://bsky.app/profile/did:plc:gl3xultyaxwitlx5r5qmlxvq/post/3miqqqfvyzs27

#ReactionDiffusion #Geology

Mineralogical Society of America (@mineralsocamerica.bsky.social)

American Mineralogist: Myrmekite and antiperthite formation in deformed granite: Chemical and crystallographic constraints on formation mechanisms Yueting Song, Thomas A. Griffiths, Shanrong Zhao, and Rainer Abart https://doi.org/10.2138/am-2024-9715

Bluesky Social
A couple of frogs I created using reaction diffusion on touch designer. #reactiondiffusion. #touchdesigner #frog
Reaction-Diffusion Playground: A class of generative art systems
https://jasonwebb.github.io/reaction-diffusion-playground/
#reactiondiffusion #generative #turing #art #+
Reaction-Diffusion Playground

Interactive simulation with organic patterns and behaviors emerging naturally from two chemicals as they are mixed together.

Multi-Scale Turing Patterns: Interesting art generated by algorithms
https://www.flickr.com/photos/jonathanmccabe/albums/72157644907151060/
#reactiondiffusion #generative #art #+
Multi-Scale Turing Patterns

Explore this photo album by Jonathan McCabe on Flickr!

Flickr

@t36s Thanks, Daniel! The "depth" is just an illusion and comes from a creative approach to visualize cell ages. It's all one-and-a-half D only, though... ๐Ÿ˜‰ 2.5D would in principle be possible to, but somewhat harder to visualize/appreciate the interesting structures forming. Could be an animation or in 3D, handled like in the attached images, but even there a lot of the interesting internal structures forming are often getting lost once a certain complexity is reached (see info in alt text)...

Links to the respective projects/workshops:

- https://github.com/learn-postspectacular/sac-workshop-2013
- https://www.flickr.com/photos/toxi/albums/72157604724789091

#CellularAutomata #ReactionDiffusion #3D #Visualization #Processing #Generative

I wrote up the problem and my planned solution for the Reaction Diffusion Toy's multitasking. Check it out.
https://github.com/kbob/Reaction_Diffusion_Toy/blob/7fee5ce827931905a7ccf2f39de4bf4a29c757bb/rdembed/SYNC_NOTES.md

Now I just have to translate pseudocode into runningcode.

(Bumping @lkundrak 'cause I think he likes this stuff.)

๐Ÿงต 22/N

#ReactionDiffusion #ESP32

The breakthrough is that I can reduce resolution arbitrarily. I could even draw a tiny 100x100 animation on my already tiny 1.69 inch (43mm diagonal) display. Or scale it to whatever size gives a reasonable frame rate.

So it's not how fast can it run, but how big can it run. ๐Ÿ˜‰

Anyway, maybe soon I'll post my design documentation. Since this is hard (for me), I'm writing it out in great detail before I code.

No eye candy today, sorry.

๐Ÿงต 21/N

#ReactionDiffusion #ESP32

I mentioned upthread in ๐Ÿงต 14 that it needs to compute one pixel every 100 clocks minus overhead. And I added a lot of overhead with the buffering scheme. And it has to do two 3x3 convolutions every pixel.

And the ESP32's vector instructions are fine for basic DSP but extremely limited in load/store capabilities.

But enough whining, I had a breakthrough today...

๐Ÿงต 20/N

#ReactionDiffusion #ESP32

Anyway, I've got it all pseudo-coded, and I've got the locking 99% worked out so memory doesn't get recycled too soon and work doesn't get blocked. (Four tasks and one interrupt on two CPU cores)

That just leaves the performance problem. Today I had a breakthrough on that.

๐Ÿงต 19/N

#ReactionDiffusion #ESP32