Relationship between brainpy and brainpy.state#
brainpy.state is the state-based modeling layer of BrainPy. It is developed and released as the standalone
brainpy_state package and surfaced through the brainpy.state namespace, so the
same code is reachable as brainpy.state whether you install classic brainpy or
the layer on its own.
Why a separate package#
Decoupled release cycle.
brainpy.stateis versioned and released independently of classicbrainpy, so its models, fixes, and features ship on their own cadence.Surfaced through the ``brainpy.state`` namespace. The standalone
brainpy_statedistribution is re-exported by classicbrainpyasbrainpy.state— there is no separate import path to learn.Built on the BrainX substrate. It is built on
brainstate(State management),brainunit(physical units), and the rest of the BrainX ecosystem, and compiles through JAX to CPU, GPU, and TPU.
Which paradigm to use#
Reach for ``brainpy.state`` for new work:
State-based models, surrogate-gradient / differentiable training, online learning, and JAX-native pipelines. This is the recommended starting point.Keep using classic ``brainpy`` for existing
DynamicalSystemmodels and for the array/operator and integrator API (brainpy.math,brainpy.integrators,brainpy.dyn). It is unchanged and fully supported.
The two paradigms coexist; adopting brainpy.state does not deprecate or remove any
part of classic brainpy.
Installation#
brainpy.state is bundled with classic brainpy (brainpy >= 2.7.6), so if you
installed brainpy you already have it — no code changes are required:
import brainpy
neuron = brainpy.state.LIF(...)
To install or upgrade the layer on its own release cycle:
pip install -U brainpy.state
See Also#
The BrainX Ecosystem — the wider BrainX ecosystem
brainpy.statebuilds on.Classic BrainPy documentation — the
DynamicalSystem-based API.