EvoNet is a modular and evolvable neural network core designed for integration with EvoLib. It supports dynamic topologies, recurrent connections, per-neuron activation, and structural evolution – with a strong emphasis on clarity, transparency, and didactic value.
- Layer-based but flexible – allows skip connections, cycles, and recurrent paths
- Typed neuron roles and connection types (
NeuronRole
,ConnectionType
) - Topology-aware mutation system – add/remove neurons and connections, mutate weights, change activations
- Per-neuron activation functions – configurable, extensible, evolvable
- 1-step recurrent state logic – avoids multi-pass stabilization
- Topology can grow at runtime – with
add_neuron
,add_connection
,split_connection
- Debug-friendly architecture – explicit IDs, labels, roles, directional graphs
- Designed for evolutionary learning – mutation, crossover, speciation ready
- Lightweight & extensible – pure Python, NumPy-based, no hard dependencies
⚠️ This project is in early development (alpha). Interfaces and structure may change.
from evonet.core import Nnet
net = Nnet()
net.add_layer() # Input
net.add_layer() # Output
net.add_neuron(layer_idx=0, activation="linear", lable="in")
net.add_neuron(layer_idx=1, activation="linear", bias=0.5, lable="out", connect_layer=True)
print(net.calc([1.0]))
MIT License - see MIT License.