Hacker News new | ask | show | jobs
by eyvindn 1960 days ago
Authors here. If you have any questions we'll do our best to answer them! Glad to see people find our work interesting thus far.

We also encourage anyone interested to play with the linked Google Colabs [1][2] and read the other articles in the Distill thread. In the Colabs you'll find a bunch more pre-trained textures as well as a workflow to train on your own images, plus some of the scaffolding to recreate figures.

[1] https://colab.sandbox.google.com/github/google-research/self... [2] https://colab.sandbox.google.com/github/google-research/self...

10 comments

The textures remind me of the beginning of once in a lifetime by talking heads. https://www.youtube.com/watch?v=5IsSpAOD6K8
Looks similar to the Gray-Scott model. https://mrob.com/pub/comp/xmorphia/
This is the first I've ever read about neural cellular automata. I think I was able to pick up the broad strokes from context, but is there a good introductory resource for neural cellular automata?
Wow!!

Really impressive work - in seconds, I see so much both richness of ideas and potential!

And, as is so often the case, the really interesting work happens on the intersection of two fields - neural nets and cellular automata here. I've got tons of new reading to do now!

Any plans to extend it to generation in 3D space?

There's some recent work that involves NCAs in a 3D setting by Horibe et. al [1] and tweet [2]. Other work by Risi and collaborators is definitely worth checking out as well.

[1] https://arxiv.org/abs/2102.02579 [2] https://twitter.com/risi1979/status/1358018266824912897

nice - thanks!
Great post, thanks! I saw Growing Neural Cellular Automata document you describe a strategy to get the model to learn attractor dynamics. I was kind of reminded of Deep Equilibrium Models (https://arxiv.org/abs/1909.01377).

Is there a relationship between these models and do you think these root finding and implicit differentiation techniques could be used to train Cellular Automata too?

Very interesting work. The bottom of the article has links[1] to the GH repo, but I take it that it's a private repo?

1: https://github.com/distillpub/post--selforg-textures

That repo contains the code, figures and text for the article. It's set to public now.
there's links to the basic collab implementations at the top
Question? Yes: Why do I love you so much? I don't even know you!
Thanks for the write up! Just a note: at least in the pytorch collab there are missing includes (numpy and the imread function)
The second cell looks a section title ("Imports and Notebook Utilities"), but contains the definitions of these functions and the imports. Run this cell and I suspect things should work.
I love all you guys' work. Keep it up.
Where do the original textures come from?
The texture template images come from [1], a collection of textures categorised by "description".

[1] https://www.robots.ox.ac.uk/~vgg/data/dtd/

How large is the state space for each cell? Full 8-bit RGB (= 24 bits)?
EDIT: Alex replied below. For more details on quantisation see footnotes in our seminal work [1]

[1] https://distill.pub/2020/growing-ca/

Is it common to describe ones own work as seminal?
In typical parlance today, "seminal" means "from which a bunch of important things have sprung" but I think there is an older definition which is simply "first".
Apologies, not my intention. I was also under the impression seminal could be used to mean ”first” in the succession of our works and this is what I had intended to communicate.
I don't think English is the author's first language.
It's their seminal language XD

As a non-native but long-term speaker of English, I understand "seminal" as in "their seminal work" as "groundbreaking" (and better to be avoided when referring to one's own work). But slips of the pen are inevitable, so no harm done.

Each cell has 12 8-bit channels, including rgb, so it is 96 bits.
The article says "our NCA model contains 16 channels. The first three are visible RGB channels and the rest we treat as latent channels which are visible to adjacent cells during update steps, but excluded from loss functions."
Thanks for noticing. This is a typo stemming from early experiments. We started out with 16 channels, but switched to 12 channels of state when this worked just as well. I've submitted a correction.