Skip to content

Neuron Model Reference — 180 Python Classes / 207 Rust PyO3 Wrappers

SC-NeuroCore currently exposes 183 lazy-loaded Python model classes across 176 Python model source modules in src/sc_neurocore/neurons/models/, plus 207 Rust PyO3 model wrappers in the optional engine. The historical Kilinc-Bhatt module is alias-only and does not add a scientific catalogue model. Matching model classes use the same step() / reset() / get_state() interface shape where the backend implements that surface.

Fidelity status: every model here has a faithful, tested Python reference. A stricter bar — a model whose whole four-language acceleration chain (accel/{rust,go,julia,mojo}) is real and Python-parity-proven — is tracked separately on the Model Fidelity & Polyglot Status page. Polyglot-complete today: 60 models. The linked generated evidence table is the authoritative per-model list and prevents a duplicated prose list from drifting. All other models are Python-faithful with their acceleration chain still under remediation.

Quick Start

Python
# Python backend (default)
from sc_neurocore.neurons.models import HodgkinHuxleyNeuron
hh = HodgkinHuxleyNeuron()
spike = hh.step(current=10.0)

# Rust backend (faster, identical interface)
from sc_neurocore_engine.sc_neurocore_engine import HodgkinHuxleyNeuron
hh_rs = HodgkinHuxleyNeuron()
spike = hh_rs.step(current=10.0)

Backend Selection

Backend Import path Use case
Python sc_neurocore.neurons.models Prototyping, parameter tuning, debugging
Rust sc_neurocore_engine.sc_neurocore_engine Production, benchmarks, batch simulation

Backends use identical class names where parity wrappers exist (for example, HodgkinHuxleyNeuron). The Rust engine provides 207 Rust PyO3 model wrappers, with 180 runtime identities wired into the NetworkRunner pipeline.

The package-level sc_neurocore.neurons facade remains lazy: core neuron symbols are available immediately, while model classes are resolved on first attribute access. Setting SC_NEUROCORE_NO_RUST=1 forces the pure-Python model registry even when the optional Rust engine is installed, and the fallback path caches the resolved Python class for later imports.

Rust Binding Coverage Map

tests/test_rust_python_neuron_parity.py is the live coverage map for the Python registry exposed by sc_neurocore.neurons.models.__all__. The generated capability inventory above counts 176 static classes in src/sc_neurocore/neurons/models/*.py; the registry-level map covers 185 public Python registry names, including three explicit preserved SC profiles. HybridFisherPosnerLIFNeuron and StochasticLIFNeuron are re-exported (from sc_neurocore.quantum_cognition.fisher_posner for population dispatch and sc_neurocore.neurons.stochastic_lif for the torch-free public root import, respectively) rather than defined as static classes under neurons/models/.

Current binding disposition:

The current registry map records 165 same-name Rust constructors, 10 Rust-prefixed or core-only constructors, 7 Python-only registry names, and 3 Rust network-runner profiles without same-name PyO3 constructors.

Disposition Count Contract
Same-name Rust constructors 165 Python registry name matches the compiled sc_neurocore_engine.sc_neurocore_engine class name.
Rust-prefixed or core-only constructors 10 A Rust binding exists, but the generic scalar parity harness uses an explicit name map.
Python-only registry names 7 No same-name PyO3 neuron constructor is claimed; each entry below records the durable boundary.
Rust network-runner profiles 3 Explicit preserved SC identities execute through NetworkRunner.add_population and step_population, not same-name PyO3 constructors.

The runner profiles are SCLapicqueLIFNeuron, SCInclusivePerfectIntegratorNeuron and SCSymmetricQuadraticIFNeuron. test_runner_profiles_match_python_state_and_events checks every step's voltage and event against the corresponding Python SC profile, including resets. These are execution-interface classifications, not additional source-model counts or new scientific qualification claims.

Rust-prefixed or core-only constructor map:

Python registry name Rust constructor
AdaptiveThresholdMoENeuron RustAdaptiveThresholdMoENeuron
AstrocyteLIFNeuron RustAstrocyteLIFNeuron
SCExponentialTwoCompartmentLIFNeuron SCExponentialTwoCompartmentLIF
CochlearHairCell RustCochlearHairCell
ContinuousAttractorNeuron RustContinuousAttractorNeuron
DendriticNMDANeuron RustDendriticNMDANeuron
DirectionSelectiveRGC RustDirectionSelectiveRGC
HybridLinearAttentionNeuron RustHybridLinearAttentionNeuron
MulticompartmentMCNNeuron RustMulticompartmentMCNNeuron
QuantumInspiredLIFNeuron RustQuantumInspiredLIFNeuron

Python-only boundary rationale:

Python registry name Boundary
AstrocyteNeuron Population adapter over AstrocyteModel; the Rust engine already exposes AstrocyteModel and RustAstrocyteLIFNeuron, but this adapter threshold-converts cytosolic Ca²⁺ release into the population spike interface.
ChayKeizerMinimalNeuron The reduced three-state pancreatic beta-cell model is a separate published reduction from the existing five-state Chay-Keizer Rust kernel and needs its own parameter-faithful implementation before a PyO3 constructor is claimed.
HybridFisherPosnerLIFNeuron The population-compatible entry depends on the Python SpinPoolMPS quantum-metabolic state and shared-pool measurement side effects, so a same-name Rust constructor would overclaim parity until that state model is ported.
Izhikevich2007Neuron This model already has a function-level compiled accelerator for the RK4 simulate() path (py_izhikevich2007_simulate), but no stateful PyO3 neuron constructor is claimed for the full Python object.
SCLeakyTwoCompartmentLIFNeuron The count-neutral preserved leaky recurrence formerly published as TwoCompartmentLIFNeuron; its frozen bit-exact anchors live on the Python surface only, so no Rust constructor is claimed for this preserved identity.
SCResettingParallelSpikingNeuron The count-neutral preserved resetting recurrence formerly published as ParallelSpikingNeuron; its frozen bit-exact anchors live on the Python surface only, so no Rust constructor is claimed for this preserved identity.
SRM0Neuron The maintained Python model is an exact-flow SRM0 membrane accumulator; it is not equivalent to the older Rust SpikeResponseNeuron kernel, so the registry name stays Python-only until a faithful Rust SRM0 kernel lands.

The parity test checks this map against the Python registry, committed Rust PyO3 source declarations, and the built Rust engine when the optional engine is installed. Stochastic models without a shared RNG remain binding-covered but outside exact spike-train parity. EscapeRateNeuron and PoissonNeuron are the enrolled exceptions: their Python, Rust, Julia, Go, Mojo, schema, and RTL surfaces share one explicit seeded LFSR16 event-stream contract. IntegerQIFNeuron is the deterministic integer counterpart: every maintained runtime and Q32.0 RTL form reproduces the pinned Wu et al. source trajectory bit-for-bit. McCullochPittsNeuron preserves the original 1943 logical rule: a fixed positive active-excitatory-afferent count threshold, absolute veto by any active inhibitory afferent, and no internal cell state; signed Q32.0 uses -1 only as the hardware inhibition sentinel. ChayKeizerNeuron remains an expected parity divergence because the Python model is the five-dimensional Chay-Keizer burster while the current Rust kernel is the older reduced form.

Reference Trace Validation

The schema-driven validation harness in sc_neurocore.neurons.reference_traces loads committed JSON corpus entries, executes the UniversalNeuron runner, and compares scalar trace features with explicit per-feature tolerances. The corpus contains analytic, independently integrated, and map-iteration references tied to each entry's stated source. For example, the Ermentrout-Kopell hand-class enrolment independently advances the sourced theta flow with the maintained Euler, event, and circular-wrap conventions over 2,000 steps. A corpus entry is model-specific evidence, not a claim that every class below has external simulator parity. The Wong-Wang enrolment separately re-derives all four Euler/Ornstein-Uhlenbeck states and both pre-update rates from the 2006 Appendix and pins the paper-versus-author-code timestep discrepancy. The Jansen–Rit enrolment independently advances all six equation-(6) states, pins the published C1/C2/C3/C4 connectivity placement and Brian2 source commit, and records that the maintained 0.1 ms Euler step is implementation scope rather than a solver prescribed by the continuous paper equations. The ErmentroutKopellPopulation enrolment corrects that legacy public name to Montbrió, Pazó, and Roxin (2015), restores the printed dimensionless equation-(12) variables through R=tau*r and t'=t/tau, independently advances both states, and records that simultaneous explicit Euler is maintained implementation scope rather than a solver prescribed by the continuous paper. The AlphaNeuron enrolment carries the dual excitatory/inhibitory alpha-synapse LIF with the Rall 1967 alpha kernel in two-state cascades, the exact piecewise-constant-input filter relaxation and alpha-current convolution, and the somatic spike rule that resets only the membrane potential; the public Rall 1962 misattribution is corrected, and the exact timestep is documented as an engineering contract rather than a biological publication claim.

The ResonateAndFireNeuron enrolment independently evaluates the exact constant-input flow of Izhikevich's (2001) complex resonator, preserves x as current-like and y as voltage-like, thresholds only an upward sampled crossing of y, and checks the generalised source reset z=i*threshold rather than a radius test or origin reset. The AdaptiveThresholdIFNeuron enrolment is an explicitly composite reduced adaptive-threshold LIF: an exact leaky-integrate-and-fire membrane relaxation, the Mihalas–Niebur (2009) threshold equation at zero voltage coupling, and the Platkiewicz–Brette (2010) fixed post-spike threshold shift; the voltage-dependent threshold equilibrium, voltage coupling, and adaptation currents remain outside the model and are stated as its reduction boundary.

Model Catalogue

The descriptor corpus lives under src/sc_neurocore/neurons/model_descriptors/<ClassName>.toml. Public catalogue helpers accept only public Python class identifiers such as AdExNeuron; dotted, empty, private, and path-like names fail before filesystem access. Studio uses the same load_descriptor() surface for both browse entries and model detail pages. Each Studio view visibly reports the science tier, silicon tier, validation metric, integration method, and terminal silicon reason from that single descriptor; it does not maintain a parallel hand-curated model list. The descriptor guard therefore protects the browser-facing catalogue and maintenance tools alike.

tools/generate_model_descriptors.py refreshes the corpus through generate_descriptor_payload() and merge_descriptor_payloads(). The generator uses the same public-class-name boundary as the catalogue: invalid identifiers fail before registry lookup, while valid but unregistered names remain registry misses. Missing legacy v1 schemas are allowed so new models can receive honest empty curation fields, but malformed curated schemas abort the refresh instead of being silently discarded.

The v2 descriptor parser accepts both compact legacy scalar forms and expanded tables, then normalises them into ModelDescriptor, ParameterSpec, StateVariableSpec, BackendSupport, and reproducibility records. It rejects missing metadata, non-table sections, scalar tag fields, non-numeric values, malformed ranges, invalid provenance years, and invalid digest formats before a descriptor reaches the catalogue or Studio browser surface.

Tier-3 golden traces remain exact-hash contracts. When a scalar transcendental has two measured NumPy SIMD results on heterogeneous x86 hosts, the descriptor's [reproducibility] table may add golden_trace_sha256_variants; the typed parser requires every entry to be a unique, non-primary, lowercase SHA-256. The reproducibility gate accepts only that finite allowlist, reruns variant-bearing models with AVX-512 disabled, and requires the native and portable traces to stay within the same 1e-9 bound used for ULP-bounded backend parity. This records platform-level rounding honestly without turning the golden gate into a broad approximate comparison. Studio model-detail responses expose the typed variant list so clients can verify either measured platform trace without parsing the raw TOML descriptor.

Trivial IF Variants (19 models)

Python Class Rust Class Reference
QuadraticIFNeuron QuadraticIFNeuron Latham et al. 2000
ThetaNeuron ThetaNeuron Ermentrout & Kopell 1986
PerfectIntegratorNeuron PerfectIntegratorNeuron —
GatedLIFNeuron GatedLIFNeuron —
NonlinearLIFNeuron NonlinearLIFNeuron Touboul & Brette 2008
SFANeuron SFANeuron Benda & Herz 2003
MATNeuron MATNeuron Kobayashi et al. 2009
SCResettingMATNeuron SCResettingMATNeuron SC-NeuroCore project recurrence
EscapeRateNeuron EscapeRateNeuron Gerstner 2000
KLIFNeuron KLIFNeuron Eshraghian et al. 2021
InhibitoryLIFNeuron InhibitoryLIFNeuron —
ComplementaryLIFNeuron ComplementaryLIFNeuron —
ParametricLIFNeuron ParametricLIFNeuron Fang et al. 2021
NonResettingLIFNeuron NonResettingLIFNeuron Kobayashi et al. 2009 MAT(1)
SCNonResettingAdaptiveLIFNeuron SCNonResettingAdaptiveLIFNeuron SC-NeuroCore project recurrence
AdaptiveThresholdIFNeuron AdaptiveThresholdIFNeuron Platkiewicz & Brette 2010
SigmaDeltaNeuron SigmaDeltaNeuron Yoon 2017 sampled APSDM specialization
SCSigmaDeltaAccumulatorNeuron SCSigmaDeltaAccumulatorNeuron SC-NeuroCore retained bipolar recurrence
EnergyLIFNeuron EnergyLIFNeuron Fardet & Levina 2020, DOI 10.1371/journal.pcbi.1008503
SCNormalizedEnergyLIFNeuron SCNormalizedEnergyLIFNeuron SC-NeuroCore retained project recurrence
IntegerQIFNeuron IntegerQIFNeuron Wu et al. 2021, DOI 10.1109/AICAS51828.2021.9458572
ClosedFormContinuousNeuron ClosedFormContinuousNeuron Hasani et al. 2022

Simple Spiking (23 runtime identities; 22 catalogue models)

Python Class Rust Class Reference
FitzHughNagumoNeuron FitzHughNagumoNeuron FitzHugh 1961
MorrisLecarNeuron MorrisLecarNeuron Morris & Lecar 1981
HindmarshRoseNeuron HindmarshRoseNeuron Hindmarsh & Rose 1984
ResonateAndFireNeuron ResonateAndFireNeuron Izhikevich 2001
BalancedResonateAndFireNeuron BalancedResonateAndFireNeuron Higuchi et al. 2024
FitzHughRinzelNeuron FitzHughRinzelNeuron Rinzel 1987
McKeanNeuron McKeanNeuron Tonnelier 2003 space-clamped equations, following McKean 1970
SCTriangularMcKeanNeuron SCTriangularMcKeanNeuron SC-NeuroCore retained project recurrence
SCLeakyTwoCompartmentLIFNeuron — (Python-only preserved identity) SC-NeuroCore retained project recurrence
SCExponentialTwoCompartmentLIFNeuron SCExponentialTwoCompartmentLIF SC-NeuroCore retained engine recurrence
TermanWangOscillator TermanWangOscillator Terman & Wang 1995
BendaHerzNeuron BendaHerzNeuron Benda & Herz 2003
SCStochasticRateAdaptationNeuron SCStochasticRateAdaptationNeuron SC-NeuroCore retained project recurrence
AlphaNeuron AlphaNeuron —
COBALIFNeuron COBALIFNeuron Brette et al. 2007
GutkinErmentroutNeuron GutkinErmentroutNeuron Gutkin & Ermentrout 1998
WilsonHRNeuron WilsonHRNeuron Wilson 1999
SCResettingWilsonHRNeuron SCResettingWilsonHRNeuron SC-NeuroCore project recurrence
ChayNeuron ChayNeuron Chay 1985
ChayKeizerNeuron ChayKeizerNeuron Chay & Keizer 1983
ShermanRinzelKeizerNeuron ShermanRinzelKeizerNeuron Sherman et al. 1988
ButeraRespiratoryNeuron ButeraRespiratoryNeuron Butera et al. 1999
EPropALIFNeuron EPropALIFNeuron Bellec et al. 2020
SuperSpikeNeuron SuperSpikeNeuron Zenke & Ganguli 2018
LearnableNeuronModel LearnableNeuronModel —
PernarowskiNeuron PernarowskiNeuron Pernarowski 1994

Discrete Maps (12 runtime identities; 9 source models)

Python Class Rust Class Reference
ChialvoMapNeuron ChialvoMapNeuron Chialvo 1995
AiharaMapNeuron AiharaMapNeuron Aihara, Takabe & Toyoda 1990; reduced map in Aihara 1989, Eqs. 10–12
SCChaoticMapNeuron SCChaoticMapNeuron SC-NeuroCore project model; no Aihara attribution
RulkovMapNeuron RulkovMapNeuron Rulkov 2002, Equations 1–2 and source reset-branch event
SCUpwardCrossingRulkovMapNeuron SCUpwardCrossingRulkovMapNeuron SC-NeuroCore retained upward-crossing observation identity; count-neutral
IbarzTanakaMapNeuron IbarzTanakaMapNeuron Compatibility identity for the Shilnikov-Rulkov 2004 map in the Ibarz, Tanaka, Sanjuan & Aihara 2007, Eqs. 2–3 profile
MedvedevMapNeuron MedvedevMapNeuron Medvedev 2005 slow-calcium first-return reduction
CazellesMapNeuron CazellesMapNeuron Cazelles et al. 2001 scalar four-branch map
SCClippedLogisticBurstingMapNeuron SCClippedLogisticBurstingMapNeuron SC-NeuroCore retained clipped-logistic fast/slow recurrence; count-neutral
CourageNekorkinMapNeuron CourageNekorkinMapNeuron Courbage, Nekorkin & Vdovin 2007
SCClippedRationalRecoveryMapNeuron SCClippedRationalRecoveryMapNeuron SC-NeuroCore retained rational-recovery recurrence; count-neutral
ErmentroutKopellMapNeuron ErmentroutKopellMapNeuron Ermentrout & Kopell 1986 (maintained Euler map)

Biophysical / Conductance-Based (23 runtime identities)

Python Class Rust Class Reference
HodgkinHuxleyNeuron HodgkinHuxleyNeuron Hodgkin & Huxley 1952
TraubMilesNeuron TraubMilesNeuron Traub & Miles 1991
WangBuzsakiNeuron WangBuzsakiNeuron Wang & Buzsáki 1996
NMDANeuron NMDANeuron Wang 1999, DOI 10.1523/JNEUROSCI.19-21-09587.1999
SCWBNMDAMagnesiumBlockNeuron SCWBNMDAMagnesiumBlockNeuron SC-NeuroCore retained project recurrence
ConnorStevensNeuron ConnorStevensNeuron Connor et al. 1977
DestexheThalamicNeuron DestexheThalamicNeuron Destexhe et al. 1993
HuberBraunNeuron HuberBraunNeuron Braun et al. 1998
GolombFSNeuron GolombFSNeuron Golomb et al. 2007
PospischilNeuron PospischilNeuron Pospischil et al. 2008
MainenSejnowskiNeuron MainenSejnowskiNeuron Mainen & Sejnowski 1996
DeSchutterPurkinjeNeuron DeSchutterPurkinjeNeuron De Schutter & Bower 1994
PlantR15Neuron PlantR15Neuron Plant & Kim 1976
PrescottNeuron PrescottNeuron Prescott et al. 2008
MihalasNieburNeuron MihalasNieburNeuron Mihalas & Niebur 2009
SCScaledResetAdaptiveIFNeuron SCScaledResetAdaptiveIFNeuron Count-neutral retained scaled-reset project recurrence
GLIFNeuron GLIFNeuron Teeter 2018 five-state GLIF5 exact-flow specialization
SCFourStateGLIFNeuron SCFourStateGLIFNeuron Count-neutral retained four-state project recurrence
GIFPopulationNeuron GIFPopulationNeuron Mensi et al. 2012
AvRonCardiacNeuron AvRonCardiacNeuron Av-Ron et al. 1991
DurstewitzDopamineNeuron DurstewitzDopamineNeuron Durstewitz et al. 2000
HillTononiNeuron HillTononiNeuron Hill & Tononi 2005
BertramPhantomBurster BertramPhantomBurster Bertram et al. 2000
SCThreeStatePhantomBurster SCThreeStatePhantomBurster SC-NeuroCore retained project recurrence
YamadaNeuron YamadaNeuron Yamada et al. 1989

Multi-Compartment (7 models)

Python Class Rust Class Reference
PinskyRinzelNeuron PinskyRinzelNeuron Pinsky & Rinzel 1994
HayL5PyramidalNeuron HayL5PyramidalNeuron Hay et al. 2011
MarderSTGNeuron MarderSTGNeuron Marder & Calabrese 1996
RallCableNeuron RallCableNeuron Rall 1964
BoothRinzelNeuron BoothRinzelNeuron Booth et al. 1997
DendrifyNeuron DendrifyNeuron Beniaguev et al. 2022
TwoCompartmentLIFNeuron TwoCompartmentLIFNeuron —

Stochastic / Population / Neural Mass (14 runtime identities)

Python Class Rust Class Reference
PoissonNeuron PoissonNeuron Gerstner et al. 2014, Sections 7.2 and 7.7
InhomogeneousPoissonNeuron InhomogeneousPoissonNeuron —
GammaRenewalNeuron GammaRenewalNeuron —
StochasticIFNeuron StochasticIFNeuron —
GalvesLocherbachNeuron GalvesLocherbachNeuron Galves & Löcherbach 2013
SpikeResponseNeuron SpikeResponseNeuron Gerstner 1995 (SRM0)
GLMNeuron GLMNeuron Pillow et al. 2008
WilsonCowanUnit WilsonCowanUnit Wilson & Cowan 1972
JansenRitUnit JansenRitUnit Jansen & Rit 1995
WongWangUnit WongWangUnit Wong & Wang 2006
ErmentroutKopellPopulation ErmentroutKopellPopulation Montbrió et al. 2015
WendlingNeuron WendlingNeuron Wendling et al. 2002
LarterBreakspearNeuron LarterBreakspearNeuron Breakspear et al. 2003
SCDecoupledAdaptationIonMassNeuron SCDecoupledAdaptationIonMassNeuron SC project recurrence; count-neutral

Hardware Chip Emulators (9 models)

Python Class Rust Class Reference
LoihiCUBANeuron LoihiCUBANeuron Davies et al. 2018 (Intel Loihi)
Loihi2Neuron Loihi2Neuron Intel Loihi 2
TrueNorthNeuron TrueNorthNeuron Merolla et al. 2014 (IBM)
BrainScaleSAdExNeuron BrainScaleSAdExNeuron Schemmel et al. 2010
SpiNNakerLIFNeuron SpiNNakerLIFNeuron Furber et al. 2014
SpiNNaker2Neuron SpiNNaker2Neuron TU Dresden 2024
DPINeuron DPINeuron Indiveri, Stefanini & Chicca 2010
AkidaNeuron AkidaNeuron BrainChip
NeuroGridNeuron NeuroGridNeuron Boahen 2014

Rate / Plasticity / Other (12 models)

Python Class Rust Class Reference
McCullochPittsNeuron McCullochPittsNeuron McCulloch & Pitts 1943
SigmoidRateNeuron SigmoidRateNeuron Wilson & Cowan 1972
ThresholdLinearRateNeuron ThresholdLinearRateNeuron —
AstrocyteModel AstrocyteModel Li & Rinzel 1994
TsodyksMarkramNeuron TsodyksMarkramNeuron Tsodyks & Markram 1997
LiquidTimeConstantNeuron LiquidTimeConstantNeuron Hasani et al. 2021
CompteWMNeuron CompteWMNeuron Compte et al. 2000
SiegertTransferFunction SiegertTransferFunction Siegert 1951
FractionalLIFNeuron FractionalLIFNeuron Teka et al. 2014
ParallelSpikingNeuron ParallelSpikingNeuron Fang et al. 2023
SCResettingParallelSpikingNeuron — (Python-only preserved identity) SC-NeuroCore retained project recurrence
AmariNeuralField AmariNeuralField Amari 1977
LeakyCompeteFireNeuron LeakyCompeteFireNeuron —

Core IF (Rust neuron.rs) (3 models)

Python Class Rust Class Reference
AdExNeuron AdExNeuron Brette & Gerstner 2005
ExpIFNeuron ExpIFNeuron Fourcaud-Trocmé et al. 2003
LapicqueNeuron LapicqueNeuron Lapicque 1907
SCLapicqueLIFNeuron LapicqueNeuron compatibility profile Count-neutral retained SC recurrence

Common Interface

All models share:

Python
model.step(current)   # → int (spike: 1/0) or float (firing rate)
model.reset()         # → None (restore initial conditions)
model.get_state()     # → dict of current state variables

Multi-input models accept additional arguments: - AlphaNeuron.step(exc_current, inh_current) - COBALIFNeuron.step(current, delta_ge, delta_gi) - PinskyRinzelNeuron.step(current_soma, current_dend) - TsodyksMarkramNeuron.step(current, presynaptic_spike) - CompteWMNeuron.step(current, spike_in)

Neural mass models return float (firing rate or EEG potential): - WilsonCowanUnit, JansenRitUnit, WendlingNeuron - ErmentroutKopellPopulation, LarterBreakspearNeuron - SigmoidRateNeuron, SiegertTransferFunction

WongWangUnit.step(stim1, stim2) returns the two continuous pre-update rates as (r1, r2). Its deterministic batch additionally accepts interleaved external Gaussian samples and returns six complete traces plus four final states.

JansenRitUnit.step(p_ext) returns the post-update continuous y1-y2 EEG proxy. Its atomic batch accepts one external-drive sample per Euler step and returns all six state traces, the EEG trace, and six final-state receipts.

ErmentroutKopellPopulation.step(ext_input) returns the post-update continuous population firing rate from the Montbrió–Pazó–Roxin exact QIF-network mean field. Its atomic batch returns complete r and v traces plus both final- state receipts; the compatibility name does not denote the 1986 single-cell Ermentrout–Kopell theta equation.

AI-Optimized (9 models)

Novel neuron models designed for AI workloads, not biological simulation. Located in neurons/models/ai_optimized.py and neurons/models/arcane_neuron.py.

Python Class Rust Class Key Feature
ArcaneNeuron ArcaneNeuron 5-compartment self-referential cognition: fast (5ms), working memory (200ms), deep context (10s), attention gate, forward self-model. Identity accumulates in the deep compartment. Confidence modulates threshold and meta-learning rate. Sotek & Arcane Sapience 2026.
MultiTimescaleNeuron — Three-compartment (fast/medium/slow) with context-dependent threshold modulation
AttentionGatedNeuron — Learned sigmoid gate (key/query weights) selectively filters input
PredictiveCodingNeuron — Fires only on prediction errors (novel stimuli), silent on expected input
SelfReferentialNeuron — Introspects own spike history to auto-regulate firing dynamics
CompositionalBindingNeuron — Phase-coding for variable binding; in-phase = bound concepts
DifferentiableSurrogateNeuron — Trainable surrogate gradient parameters (alpha, beta, theta)
ContinuousAttractorNeuron — Ring attractor with Mexican-hat connectivity for continuous working memory
MetaPlasticNeuron — Self-regulating meta-learning rate based on error trace