Spike-native transport for neuromorphic systems
Project description
SpikeLink
Spike-native transport for neuromorphic systems.
Note on representation
SpikeLink does not replace digital computation. It operates post-binary within digital systems by transporting spike symbols without forcing early binary collapse.
Why SpikeLink?
| Traditional Transport | SpikeLink |
|---|---|
| SPIKE → ADC → BITS → DAC → SPIKE | SPIKE → SPIKELINK → SPIKE |
| Conversion overhead | Native transport |
| Cliff-edge failure | Graceful degradation |
| Precision loss | Symbol magnitude continuity |
Key Properties:
- Spike-native: No ADC/DAC conversion stages
- Graceful degradation: Precision loss under noise, not data loss
- EBRAINS compatible: Validated against Neo, Elephant, PyNN workflows
- Time-coherent: Bounded timing, predictable behavior
Install
pip install spikelink
With EBRAINS ecosystem support:
pip install spikelink[neo] # Neo adapter
pip install spikelink[elephant] # Neo + Elephant
pip install spikelink[full] # Everything
Quick Start
from spikelink import SpikeTrain, SpikelinkCodec
# Create a spike train
train = SpikeTrain(times=[0.1, 0.2, 0.3, 0.4, 0.5])
# Encode to packets
codec = SpikelinkCodec()
packets = codec.encode_train(train)
# Decode back
recovered = codec.decode_packets(packets)
print(f"Original: {train.times}")
print(f"Recovered: {recovered.times}")
Convenience API
import spikelink
# One-liner encode/decode
packets = spikelink.encode([0.1, 0.2, 0.3, 0.4, 0.5])
recovered = spikelink.decode(packets)
# Verify round-trip
passed = spikelink.verify(original, recovered)
Neo Integration
from spikelink.adapters import NeoAdapter
from spikelink import SpikelinkCodec
import neo
import quantities as pq
# From Neo SpikeTrain
neo_train = neo.SpikeTrain([0.1, 0.2, 0.3] * pq.s, t_stop=1.0 * pq.s)
our_train = NeoAdapter.from_neo(neo_train)
# Transport through SpikeLink
codec = SpikelinkCodec()
packets = codec.encode_train(our_train)
recovered = codec.decode_packets(packets)
# Back to Neo
recovered_neo = NeoAdapter.to_neo(recovered)
Verification
from spikelink import VerificationSuite, DegradationProfiler
# Run verification suite
suite = VerificationSuite()
results = suite.run_all(original_train)
suite.print_results(results)
# Profile degradation under noise
profiler = DegradationProfiler()
profile = profiler.profile(train, noise_levels=[0, 0.1, 1.0, 10.0])
profiler.print_profile(profile)
Graceful Degradation
SpikeLink degrades proportionally under noise — precision loss, not data loss:
| Noise % | Decimals Preserved |
|---|---|
| 0.0% | 6 |
| 0.1% | 5 |
| 1.0% | 4 |
| 10.0% | 3 |
✓ Monotonic degradation confirmed (confidence never inflates)
Documentation
External Verification
SpikeLink has been externally verified against EBRAINS workflows:
- Neo-compatible: SpikeTrain round-trip verified
- Elephant-verified: Statistical fidelity confirmed
- PyNN stress-tested: 380 neurons, 13,344 spikes, 100% preservation
- Ready for integration with SpiNNaker and BrainScaleS
License
Apache 2.0 — See LICENSE for details.
About
Lightborne Intelligence
Truth > Consensus · Sovereignty > Control · Coherence > Speed
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spikelink-0.1.1.tar.gz.
File metadata
- Download URL: spikelink-0.1.1.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2740da977dd7caa599386108588cf69ce65fabe67b207fcf6f01119d112f84b
|
|
| MD5 |
375cb3047b014c91764efbee7ef88f17
|
|
| BLAKE2b-256 |
5a3e16f2d3ac623d362ca81a09b1dc5f68ded39a2791a40a88c2738ea7d94401
|
File details
Details for the file spikelink-0.1.1-py3-none-any.whl.
File metadata
- Download URL: spikelink-0.1.1-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
391c5fd049d72e68eb7410cf9a30e280674aa9899dcb12e386ed5adf50e07edf
|
|
| MD5 |
b377caf067187ad19f99e1efcd61eb09
|
|
| BLAKE2b-256 |
cfa422b7cdf4eff929fb5f5d7082c2f1426552274eb651ecd2f44d2ecca484da
|