Supervision: Daniele Grattarola

Project type: Semester project (master)


Background: Neural Cellular Automata (NCA) are a class of cellular automata that use neural networks as learnable transition rules. By learning to exchange information between neighboring cells, NCA can achieve remarkably complex global behaviors without the need for a centralized controller. For example, NCAs have been used to create dynamic textures, classify images, generate complex machinery in Minecraft, and model networks of agents.

Project: NCAs are typically trained by unrolling a sequence of transitions and computing the loss between the final state and a desired target, using backpropagation through time to update the weights of the neural network. However, this approach significantly limits their open-endedness and robustness since the number of time steps is a fixed hyperparameter shared by all cells in the NCA.

The goal of this project is to implement an NCA that dynamically decides which cells to update and for how long.

Borrowing ideas from previous works on adaptive-time neural networks (see here and here), you will need to improve the typical neural transition rules of NCA to allow them to arbitrarily stop and resume the computation in different cells, as needed.

Expected output: you will have to implement, train, and test the adaptive NCA on 2/3 different tasks (see the Background section for ideas) and compare it with typical NCA approaches. You will be able to reuse public implementations of most of the building blocks needed for the project.

The project can lead to a publication.

Profile: I am looking for a person with a solid background in computer science and some familiarity with machine learning and neural networks (how to implement, train, and evaluate neural networks in Torch/Tensorflow, some knowledge of convolutional and recurrent neural networks). Knowing some basics of dynamical systems and cellular automata is a plus, but not necessary. NCA are also intimately linked to biological systems, so if you have some training in biology this could be a fun project for you!

Supervisor: Daniele Grattarola. I am a computer scientist with experience in geometric deep learning and computational biology. You can reach me at for any questions about the project.