Train on GPU. Deploy to silicon.
An open-source Python SDK (Apache 2.0) for spiking neural networks. One API compiles to GPU, Intel Loihi 2, SpiNNaker 2, BrainChip Akida, or Vantar Cloud — with zero code changes.
5
Backends
GPU, Loihi, SpiNNaker, Akida, Cloud
4
Neuron models
LIF, IF, Izhikevich, AdEx
227
Tests passing
Full stack coverage
0
Lines to change
when switching backends
Quick start
Define once. Only the compile target changes.
import torch, nuro
# Define your spiking network — this never changes
sensory = nuro.Population(size=100, dynamics="lif", params={"tau": 20e-3})
cortex = nuro.Population(size=50, dynamics="izhikevich", params={"preset": "fast_spiking"})
motor = nuro.Population(size=10, dynamics="lif", params={"tau": 10e-3})
graph = nuro.Graph([sensory, cortex, motor], [
nuro.Connection(sensory, cortex, pattern="dense", delay=1e-3),
nuro.Connection(cortex, motor, pattern="dense"),
])
# Train on GPU with surrogate gradients
model = nuro.compile(graph, target="gpu", requires_grad=True)
# Deploy to neuromorphic hardware — zero code changes
model = nuro.compile(graph, target="loihi") # Intel Loihi 2
model = nuro.compile(graph, target="spinnaker2") # SpiNNaker 2
model = nuro.compile(graph, target="akida") # BrainChip AkidaInstall
pip install nuro[gpu]
Python 3.10+ · PyTorch 2.0+
License
Apache 2.0
Free to use and modify
Interop
NIR · ANN-to-SNN
SpikingJelly, Norse, snnTorch
What makes it different
Other frameworks solve one piece. Nuro solves the pipeline.
One API, any backend
Define your network once with populations, connections, and inputs. Nuro's IR is the boundary — backends never touch your Python objects. Change one argument to switch hardware.
Surrogate gradients built in
Set requires_grad=True and train with backprop-through-time. ATan, sigmoid, and triangular surrogates included. Standard PyTorch optimizers work unmodified.
NIR interop
Import models from SpikingJelly, Norse, snnTorch, or any NIR-compatible framework via nuro.from_nir(). Export with nuro.to_nir(). Full ecosystem interoperability.
ANN-to-SNN conversion
Convert trained PyTorch models to spiking networks. nuro.convert_ann() walks your nn.Module, maps layers to IF populations, folds BatchNorm, and auto-quantizes for hardware.
Auto-quantization
Compiling to Loihi, SpiNNaker 2, or Akida quantizes weights to match hardware precision automatically. QAT support for quantization-aware training.
Synaptic delays
Connection(delay=1e-3) adds realistic spike-propagation delays. Ring-buffer on GPU, native hardware support on Loihi and SpiNNaker.
Batch simulation
Run 32–128 networks in parallel on GPU — 10–50× throughput vs sequential. Critical when single-sample simulation is the training bottleneck.
Neuromorphic datasets
Built-in loaders for N-MNIST, DVS-CIFAR10, and DVS Gesture. Event streams convert to spike tensors ready for nuro.Input(). No preprocessing code.
Backends
One IRGraph, five compile targets.
target="gpu"StableDevelopment workbench. Surrogate gradients, batch training, BPTT.
PyTorch + SpikingJelly · any CUDA GPU · v0.1+
target="loihi"StableNuro compiles to Lava — you never write Lava directly. On-chip STDP supported.
lava-nc (Intel) · Loihi 2 sim or INRC · v0.5+
target="spinnaker2"StableFull SpiNNaker 2 support. Sim works out of the box.
py-spinnaker2 + Brian2 · SpiNNcloud · v0.6+
target="akida"StableMost commercially deployed neuromorphic chip. 1–8 bit quantization.
BrainChip MetaTF · AKD1000/1500 · v0.7+
target="cloud"BetaNo hardware required. Submit an IRGraph, get results back.
Vantar Cloud API · Loihi 2 or SpiNNaker 2 · v0.8
NeuroCopilot
Describe the task. Get deployable Nuro code.
Fine-tuned on Qwen2.5-Coder-7B. Runs locally via Ollama — no internet required. Open weights, Apache 2.0.
import nuro
code = nuro.copilot.ask(
"Build a recurrent SNN with Izhikevich neurons "
"for pattern recognition on SpiNNaker2"
)
print(code) # → complete, deployable Nuro PythonNeuron models
Simple baselines to biological detail.
LIF
Leaky Integrate-and-FireStandard workhorse. Exponential membrane decay, threshold firing. Fast to simulate, well-understood.
IF
Integrate-and-FireNo leak term. Accumulates input indefinitely. Simple baseline for benchmarks.
Izhikevich
Izhikevich (5 presets)Biologically rich. Presets: regular_spiking, intrinsically_bursting, chattering, fast_spiking, low_threshold_spiking.
AdEx
Adaptive Exponential LIFExponential spike initiation plus adaptation current. Closest to biological cortical neurons.
Open source.
No signup required.
Install Nuro and train SNNs on GPU today. Join the waitlist for early access to hardware backends and Vantar Cloud.