Skip to content

Bonsai 2.2

Compare
Choose a tag to compare
@glopesdev glopesdev released this 25 Mar 19:08

This release brings a host of new features and modules, but more fundamentally it concludes a major unification in the language that was being worked out since the 2.0 release: the unification between sources and combinators.

In practice, this means that sources can now take inputs, which allows many of them to operate in "triggered" mode, meaning that the production of new values can be directly controlled by an external trigger signal (e.g. you can step video playback frame by frame conditioned on a key press, or other event). In order to do this we had to generalize property assignment, which resulted in two new nodes: InputMapping and PropertyMapping. These allow you to take data streams and change multiple properties of downstream nodes on-the-fly in a synchronous way.

Because of these changes and improvements to the core language, workflows that are designed in Bonsai 2.2 will not run in Bonsai 2.1. The reverse is supported, and old workflows will be automatically converted on opening (although nothing will be overridden, you have to explicitly save the converted workflow to a new/same location). Converted workflows should work flawlessly on the new release.

Finally, we introduced numerous improvements to the editor by popular demand. For example, the names of all nodes are now displayed at all times. Additionally, you can now conveniently export the whole workflow to an SVG vector graphics. A number of other productivity improvements and user shortcuts were made.

There are many, many, bug-fixes and improvements that accumulated over the past months and even more new features spread out through the various packages. You can find the highlights below. Please do ask away about how to use the new features in the forums.

Release highlights

Updates to the editor:

  • Node names are now displayed at all times.
  • Export to SVG (Ctrl+Shift+E).

Language updates:

  • Improved externalized properties.
  • Unified sources and combinators: many sources can now be triggered by external inputs (e.g. for synchronization).
  • New group operators: Publish, Replay, Sink.
  • New observable sharing operators: PublishSubject, ReplaySubject.
  • New reactive operators: IsEmpty, MaxBy, MinBy, GroupBy, ToList, ToArray, First, FirstOrDefault, Last, LastOrDefault.
  • New property mapping operators: PropertyMapping, InputMapping.
    Package updates:
  • Dsp package now supports Butterworth recursive filters through the Butterworth module.
  • New and improved shader package with support for multiple viewports, warp perspective and flexible window settings.
  • New Dsp modules: Decimate, Histogram1D, Histogram2D, LogPolar, LinearPolar, Pow, CartToPolar, PolarToCart, Range, Reshape, RasterSpikes.
  • New Video modules: JpegServer.
  • New Vision packages: ResizeCanvas.
  • Vision updates: Undistort now supports camera matrix correction; BinaryRegionAnalysis now works on raw image patches.
  • SerialPort sources and sinks now support custom delimiters.
  • New OpenTLD package adding support for the popular TLD tracker algorithm.
  • New CMT package adding support for the robust CMT tracker algorithm.
  • Ephys package now correctly supports reading headstage auxiliary/accelerometer data.
  • Many bug-fixes and performance improvements.