A modular Python Library for handling Neural Cellular Automata.
- Modular architecture for Neural Cellular Automata
- Easy-to-use API for building and training NCA models
- Extensible framework for custom implementations
Install ncalib from PyPI using pip:
pip install ncalibSome examples and loggers are using Weights and Biases. To use them install the required dependencies using:
pip install ncalib[wandb]Examples are found in examples. Currently there are following implementations:
- simple_nca.py - Original NCA reconstructing an image (Mordvintsev et al. (2020))
- simple_classifying_mnist.py - Self-classicying MNIST Digits (Randazzo et al. (2020) )
- image_segmentation.py/image_segmentation_hydra.py - NCA that can segment an image (with and without hydra) (Sandler et al. (2020))
- genome_nca.py - NCA that can be seeded with different genomes (Stovold (2023))
This project uses uv for package management and distribution.
# Clone the repository
git clone https://github.com/dwoiwode/ncalib.git
cd ncalib
# Install dependencies with uv
uv sync
# Install extra dependencies
uv sync --all-extrasTests are run using pytest:
uv run pytest testsContributions are welcome! Please feel free to submit a Pull Request.