Implementing/experimenting with differentiable-morphogenesis (mostly neural cellular automata) on PyTorch
Topic | Link |
---|---|
Walkthrough of Alexander Mordvintsev's youtube video on neural CA | |
Cleaner implementation in case you just want to copy and paste stuff | |
[Experimental] shapeshifting/infection models |
- Differentiable Self-organizing Systems thread on Distill
- Original Neural CA paper
- Another paper: Cellular automata as convolutional neural networks
A cellular automaton is a collection of cells on a grid of specified shape that evolves through a number of discrete time steps according to a set of rules based on the states of neighboring cells. The rules are then applied iteratively for as many time steps as desired.
Now let's ask the following question:
What if we could use a neural network to map a certain set of rules that would help us generate a very specific arrangement of "cells" ?
That is exactly what our objective is.
These models are trained to "infect" a given CA state
Given a random point/set of points, the infection model's effect spreads through the image and turns it into something else. Apart from random starting points, they also work on both growing and grown states of the original CA.
When I tried to recover the original image from a fully "infected" image, I ended up with a 4 legged abomination