==========================
Start a new version of BrainPy.
Highlight
~~~~~~~~~
We are excited to announce the release of BrainPy 2.0.0. This release is composed of over
260 commits since 1.1.7, made by `Chaoming Wang <https://github.com/chaoming0625>`_,
`Xiaoyu Chen <mailto:c-xy17tsinghua.org.cn>`_, and `Tianqiu Zhang <mailto:tianqiuakitagmail.com>`_ .
BrainPy 2.0.0 updates are focused on improving performance, usability and consistence of BrainPy.
All the computations are migrated into JAX. Model ``building``, ``simulation``, ``training``
and ``analysis`` are all based on JAX. Highlights of version 2.0.0 include:
- `brainpylib <https://pypi.org/project/brainpylib/>`_ are provided to dedicated operators for
brain dynamics programming
- Connection APIs in ``brainpy.conn`` module are more efficient.
- Update analysis tools for low-dimensional and high-dimensional systems in ``brainpy.analysis`` module.
- Support more general Exponential Euler methods based on automatic differentiation.
- Improve the usability and consistence of ``brainpy.math`` module.
- Remove JIT compilation based on Numba.
- Separate brain building with brain simulation.
Incompatible changes
~~~~~~~~~~~~~~~~~~~~
- remove ``brainpy.math.use_backend()``
- remove ``brainpy.math.numpy`` module
- no longer support ``.run()`` in ``brainpy.DynamicalSystem`` (see New Features)
- remove ``brainpy.analysis.PhasePlane`` (see New Features)
- remove ``brainpy.analysis.Bifurcation`` (see New Features)
- remove ``brainpy.analysis.FastSlowBifurcation`` (see New Features)
New Features
~~~~~~~~~~~~
- Exponential Euler method based on automatic differentiation
- ``brainpy.ode.ExpEulerAuto``
- Numerical optimization based low-dimensional analyzers:
- ``brainpy.analysis.PhasePlane1D``
- ``brainpy.analysis.PhasePlane2D``
- ``brainpy.analysis.Bifurcation1D``
- ``brainpy.analysis.Bifurcation2D``
- ``brainpy.analysis.FastSlow1D``
- ``brainpy.analysis.FastSlow2D``
- Numerical optimization based high-dimensional analyzer:
- ``brainpy.analysis.SlowPointFinder``
- Dedicated operators in ``brainpy.math`` module:
- ``brainpy.math.pre2post_event_sum``
- ``brainpy.math.pre2post_sum``
- ``brainpy.math.pre2post_prod``
- ``brainpy.math.pre2post_max``
- ``brainpy.math.pre2post_min``
- ``brainpy.math.pre2syn``
- ``brainpy.math.syn2post``
- ``brainpy.math.syn2post_prod``
- ``brainpy.math.syn2post_max``
- ``brainpy.math.syn2post_min``
- Conversion APIs in ``brainpy.math`` module:
- ``brainpy.math.as_device_array()``
- ``brainpy.math.as_variable()``
- ``brainpy.math.as_jaxarray()``
- New autograd APIs in ``brainpy.math`` module:
- ``brainpy.math.vector_grad()``
- Simulation runners:
- ``brainpy.ReportRunner``
- ``brainpy.StructRunner``
- ``brainpy.NumpyRunner``
- Commonly used models in ``brainpy.models`` module
- ``brainpy.models.LIF``
- ``brainpy.models.Izhikevich``
- ``brainpy.models.AdExIF``
- ``brainpy.models.SpikeTimeInput``
- ``brainpy.models.PoissonInput``
- ``brainpy.models.DeltaSynapse``
- ``brainpy.models.ExpCUBA``
- ``brainpy.models.ExpCOBA``
- ``brainpy.models.AMPA``
- ``brainpy.models.GABAa``
- Naming cache clean: ``brainpy.clear_name_cache``
- add safe in-place operations of ``update()`` method and ``.value`` assignment for JaxArray
Documentation
~~~~~~~~~~~~~
- Complete tutorials for quickstart
- Complete tutorials for dynamics building
- Complete tutorials for dynamics simulation
- Complete tutorials for dynamics training
- Complete tutorials for dynamics analysis
- Complete tutorials for API documentation
brainpy 1.1.x
*************
If you are using ``brainpy==1.x``, you can find *documentation*, *examples*, and *models* through the following links:
- **Documentation:** https://brainpy.readthedocs.io/en/brainpy-1.x/
- **Examples from papers**: https://brainpy-examples.readthedocs.io/en/brainpy-1.x/
- **Canonical brain models**: https://brainmodels.readthedocs.io/en/brainpy-1.x/