neuromod
A generalized Rust library for spiking neural networks (SNNs), centered on biologically grounded neuron models, neuromodulation, and plasticity.
neuromod is designed to be a reusable core: topology-neutral at initialization, dynamically sizable at runtime, and strict about input shape validation.
Highlights
- Dynamic network sizing with
SpikingNetwork::with_dimensions(...) - Backward-compatible default constructor:
SpikingNetwork::new() - Strict step contract:
Result<Vec<usize>, StepError> - Neutral initialization (blank synaptic weights; no hardcoded domain topology)
- Canonical neuron models included:
- Lapicque
- LIF
- GIF (Generalized Integrate-and-Fire)
- Izhikevich
- FitzHugh-Nagumo
- Hodgkin-Huxley
- Classical Hebbian STDP utilities and reward-modulated learning components
Installation
[]
= "0.4.0"
Quick Start
use ;
Dynamic Dimensions
use ;
Step Errors (Shape Validation)
step validates that stimuli.len() == num_channels and returns an error on mismatch.
use ;
Neuromodulators
NeuroModulators supports both direct control and signal-derived initialization.
use NeuroModulators;
Included Components
SpikingNetwork,StepErrorNeuroModulators- Neuron models:
LifNeuronGifNeuronIzhikevichNeuronLapicqueNeuronFitzHughNagumoNeuronHodgkinHuxleyNeuron
- Learning/plasticity:
apply_classical_stdp,StdpParams,HebbianIzhikevichNetworkEligibilityTrace,RmStdpConfig
Examples
Run included examples:
Development
License
GPL-3.0
Links
- Crates.io: https://crates.io/crates/neuromod
- Docs.rs: https://docs.rs/neuromod
- Repository: https://github.com/Limen-Neural/neuromod