# Artificial Brains (ABrain) for Python
[](https://abrain.readthedocs.io/en/latest/?badge=latest)

### Release





### Development





C++/Python implementation of the genotype/phenotype components of Evolvable Substrate HyperNEAT (read without evolution and speciation).
## Optional dependencies:
### Graphviz (dot)
To generate directed graphs for the genomes
Can only be fetched by system installer (apt-get, yum, ...)
See https://graphviz.org/download/ for instructions
### Kaleido
To generate non-interactive images of ANN (through plotly)
Due to inconsistent support, left as an optional dependency
Use `pip install abrain[...,kaleido]` to get it
## Todo list:
- Functionalities:
- Order-independent ANN evaluation (with back buffer)?
- Crossover / historical markings
- Actually needed?
- MANN Integration
- Easy extraction
- built-in testing
- C++ wrapper
- Visu
- Misc:
- Documentation
- Usage
- Continuous integration
- build / tests
- Badges
- Packaging:
- include c++ stubs?
- move to scikit/poetry/... ?
- Installation errors:
- cp38,...,311-manylinux_i686 fail because cppn outputs diverge between manual and subset/all
> Caused by unmatched image/host platforms?
> Heisenbug, printing an FNode value before returning it makes it work
> Also disapears in when compiling in debug mode
- pp38,39-manylinux_i686,x86_64; pp38,39-macosx_x86_64; pp38,39-win_amd64 fail because of strange import error in numpy
> Solved by removing numpy dependency
- cp38,...,311-musllinux_i686 fail because pillow needs a jpeg library
> Solved? Added libjpeg to the apk (musllinux) install
> Removed pillow dependency
- cp38,..,311-win32,amd64 fail because of encoding error in ANN rendering