The FitzHugh-Nagumo Neuron, Explained
After reading this you can predict whether a stimulus makes a model neuron fire, read its path in the phase plane, and set a current that drives a steady spike train, all with the two FitzHugh-Nagumo equations.
What the model is, with one example
A neuron sits at rest with a small voltage across its membrane. Poke it gently and the voltage drifts back to rest. Poke it hard enough and it does something dramatic: the voltage shoots up, overshoots, then crashes below rest before slowly recovering. That spike is the action potential, and its size barely depends on how hard you poked. This is the all-or-nothing law.
The FitzHugh-Nagumo model captures this with just two variables. A fast voltage-like variable v does the spiking. A slow recovery variable w pulls the system back and enforces the rest afterward. The full Hodgkin-Huxley model uses four variables and detailed ion channels. FitzHugh-Nagumo throws away the biophysics and keeps the geometry that makes a neuron excitable.
Here is the hook. Start at rest with v \approx -1.2 and w \approx -0.62. Inject a brief pulse that lifts v to -0.9. Nothing much happens: the state slides back to rest. Lift v instead to -0.3 and the state launches into a full loop, a spike, before returning. Same starting point, tiny difference in the poke, completely different outcome. That gap is the threshold.
When to reach for it, and when not
Use FitzHugh-Nagumo when you want to understand why excitable systems behave as they do: thresholds, refractory periods, and repetitive firing. It is a teaching model and a qualitative model. It is fast to integrate, so you can watch a whole spike train evolve in real time.
Do not use it to fit real voltage traces in millivolts and milliseconds. The variables are dimensionless. A spike here is a shape, not a calibrated 100 mV swing over 1 ms. If you need channel-level accuracy, quantitative timing, or drug effects on specific ion currents, you need Hodgkin-Huxley or a conductance-based model instead.
The same excitable geometry appears far beyond neurons: heart tissue, chemical oscillators like the Belousov-Zhabotinsky reaction, and predator-prey cycles all share the fast-slow structure. FitzHugh-Nagumo is the smallest example that shows all three features at once.
The equations and the intuition
The model is two coupled ordinary differential equations.
Here v is the fast membrane voltage, w is the slow recovery current, and I is the injected stimulus current. The cubic term v - v^3/3 is the engine. For small v it pushes v up (positive slope), which is the runaway that starts a spike. For large v it pulls back down, which caps the spike height. That S-shaped balance is what makes the response all-or-nothing.
The factor \varepsilon is small, so w changes slowly compared to v. The constants a and b set where the recovery balances. A common choice is a = 0.7, b = 0.8, and \varepsilon = 0.08. When v is high, w creeps up, and a rising w subtracts from dv/dt, eventually shutting the spike off. When v falls, w creeps back down. That slow chase is the refractory period.
Nullclines: the map that explains everything
A nullcline is the set of points where one variable stops changing. Setting dv/dt = 0 gives the v-nullcline, a cubic curve:
Setting dw/dt = 0 gives the w-nullcline, a straight line:
Where the two curves cross is a fixed point: both derivatives are zero, so the state rests there. The shape of the cubic matters. It has a local maximum and a local minimum, forming a left branch, a middle branch, and a right branch. If the line crosses the cubic on an outer branch, the fixed point is stable and the neuron sits at rest. If the current I lifts the cubic so the line crosses on the unstable middle region near the hump, the fixed point loses stability and the state circles around it forever. That circling is the spike train.
With a = 0.7, b = 0.8 and I = 0, solve for the resting point. The line is w = (v + 0.7)/0.8. Substituting into the cubic and solving numerically gives v \approx -1.199 and w \approx -0.6243. That is the rest state the trajectory returns to.
Reproducing the demo: one pulse, one spike
Run the tool with its defaults: a = 0.7, b = 0.8, \varepsilon = 0.08, steady current I = 0, and a brief pulse that lifts v above threshold at time t = 20. Integrate with a simple Euler step of \Delta t = 0.05.
- Start at rest: v = -1.199, w = -0.6243. Both derivatives are near zero, so nothing moves.
- The pulse jumps v to
-0.3. Now compute dv/dt = -0.3 - (-0.3)^3/3 - (-0.6243) + 0 = -0.3 + 0.009 + 0.6243 = 0.3333. Positive and large, so v climbs fast. - After one step v \approx -0.3 + 0.05 \times 0.333 = -0.283. The climb accelerates because the cubic still pushes up. Within a few time units v reaches its peak near
+2.0. - Meanwhile dw/dt = 0.08(v + 0.7 - 0.8w) is positive while v is high, so w rises slowly. Once w is large enough the term -w drags dv/dt negative and v crashes to about
-1.9. - With v low, w now falls slowly, and the state drifts back along the left branch to rest. Total spike duration is roughly 35 time units.
Now repeat but lift v only to -0.9. Then dv/dt = -0.9 + 0.243 + 0.6243 = -0.0327, already negative. The state slides straight back to rest with no spike. The threshold for these parameters sits near v \approx -0.7.
Reading the phase plane and the spike train
The phase plane plots w against v. A spike is one loop: fast rightward jump along the top, slow crawl down the right branch, fast leftward jump, slow crawl up the left branch back to rest. The two fast jumps are nearly horizontal because v moves far faster than w. The slow crawls hug the outer branches of the cubic nullcline.
When you raise the steady current, watch the crossing point slide toward the hump of the cubic. Cross a critical value and the rest point becomes unstable. The trajectory then never settles: it repeats the loop forever. That closed loop is a limit cycle, and it is the phase-plane picture of a spike train. For the standard parameters the neuron fires repetitively roughly when I lies between about 0.33 and 1.42. Below that it rests; above it, the drive is so strong the state jams at a high fixed voltage and stops spiking.
Common mistakes
Do not use a large integration step. FitzHugh-Nagumo is a fast-slow system: during the upstroke v changes quickly, and a step of \Delta t = 0.5 with plain Euler can overshoot and blow up to infinity. Keep \Delta t near 0.05 or smaller, or use a Runge-Kutta method.
A second mistake is expecting a graded response. If you double the pulse from -0.3 to a value even further above threshold, the spike height barely changes, from about 2.0 to about 2.0. The threshold controls whether the spike happens, not how big it is. Confusing the two misses the whole point of the all-or-nothing law.
A third mistake is calling the middle branch of the cubic a place the neuron can rest. It cannot. That branch is unstable: any tiny nudge sends the state flying to an outer branch. It only sets the threshold, the dividing line between decay and spike.
Finally, remember the units are arbitrary. Reporting a firing rate of 0.036 as if it were 36 Hz is wrong. The rate is per dimensionless time unit. You can compare rates within the model but not against real recordings without a calibration you do not have.
Related simulations on this site
Excitable and oscillating systems recur across biology. If you like the pulse-and-recover rhythm here, the Firefly Synchronization tool shows pulse-coupled oscillators falling into unison, which uses the same idea of a variable that ramps and resets. For self-organizing collective behavior from simple local rules, see the Boids Flocking Simulator, the Ant Colony Pheromone Trails, and the Slime Mould Networks. For growth rules that build structure, try L-System Plants, Mycelium Growth, and the continuous automaton in Lenia Continuous Life. For chance and selection over generations, see the Genetic Drift Simulator and Evolving Creatures.
Frequently asked questions
What is the threshold in the FitzHugh-Nagumo model?
It is not a single number written into the equations. It is the boundary in the phase plane set by the middle branch of the cubic nullcline. With a = 0.7, b = 0.8 and I = 0, a pulse that lifts v above about -0.7 triggers a spike, while a smaller pulse decays.
Why does the neuron stop firing when the current is too high?
Above about I = 1.42 the straight w-nullcline crosses the cubic on the stable right branch. The state settles at a high, fixed v instead of looping. Real neurons show the same effect, called depolarization block.
Why is the spike always about the same size?
Because the spike shape is set by the outer branches of the cubic nullcline, not by the stimulus. Once the state crosses the hump it must travel the full loop before returning. The stimulus only decides whether it crosses.
What is the refractory period here?
It is the slow return along the left branch after the downstroke, while w is still high and drags dv/dt down. During that stretch, roughly 20 to 30 time units, a second pulse of the same size fails to trigger another spike.
How does this differ from the Hodgkin-Huxley model?
Hodgkin-Huxley uses four variables and explicit sodium and potassium conductances fit to squid axon data in real units. FitzHugh-Nagumo collapses those into two dimensionless variables. It reproduces the qualitative behavior (threshold, spike, refractory period, repetitive firing) but not the exact voltages or timings.