Skip to content

Releases: bonsai-rx/bonsai

Bonsai 2.4

25 Mar 19:26
Compare
Choose a tag to compare

After a huge delay of over 2 years, the new Bonsai 2.4 is finally out, but it was well worth the wait! As many of you who have been playing around with the preview have noticed, this is a massive revamp of the entire language, and aims to round up almost all missing language features in our to-do list. If you are upgrading from 2.3, don't forget to access the package manager and update all your packages! This release is backwards-compatible, so installations and workflows should migrate seamlessly in most cases.

I will take the time to highlight only a few of the major improvements, and the rest will have to wait for future posts in the website:

  • The bonsai-rx website will gradually become more and more of a hub for Bonsai news, documentation, and learning resources. We will try to get a blog going soon, along with a detailed list of all the new features in this release.
  • Updates will also be announced on twitter.
  • Icons are now available for all core operators. We've had them in preview for a while and the feedback has been very positive that they make the workflows much easier to read.
  • C# scripting is now available in the language. This means you can now use all the power of .NET directly in your Bonsai workflows without the need for Visual Studio. More about this in a future post.
  • It is now possible to include other workflows directly into your applications. This dramatically improves the ability to share code snippets and manage complexity across larger systems, as changes in one included workflow will automatically propagate to all places where it is used.
  • There is a new Dark theme accessible under the Tools menu.

There is a huge number of other features and operators that I would love to talk about, but it's better to cover them thoroughly with examples in later posts on the website, so stay tuned!

Bonsai 2.3

25 Mar 19:19
Compare
Choose a tag to compare

The new Bonsai 2.3 release is finally out just in time for the Chinese New Year! This release has been overdue for many months now and I believe it completes a cycle of rounding up all major language and editor features we have been working on since last year. Existing workflows should update flawlessly, but workflows that are designed in Bonsai 2.3 will not run in Bonsai 2.2. Also, the editor will now display a notification for new updates, but you will need to go to the package manager to install them.

Most importantly, we have created a community feed so that any Bonsai user can now directly contribute and share examples and packages with all other users. We hope this will accelerate the dissemination of existing Bonsai applications and support most of the learning material that we will be publishing over the next few months (more details below).

Bonsai 2.3 also introduces the "Bonsai Gallery", a new concept for sharing Bonsai applications. The idea is you can take any workflow you have been working on and export it into a NuGet package automatically from the File -> Export -> To Gallery... menu. When you do this, Bonsai will figure out for you all the dependencies that are needed to get the workflow running, as well as any content (images, videos, sounds, etc) that are part of the application and will generate a Gallery package. Once this package is generated, you can install it in other computers or share it with other users, and Bonsai will take care of installing any missing dependencies on the new computer which may be required to run the package. Basically the workflow will become a plug-and-play Bonsai application that can self-install on any computer that can run the Bonsai editor.

On the same vein, we are expanding the set of available Bonsai examples to cover many missing areas, including computer graphics, tracking and other closed-loop interactive setups, GPU processing, generative sound, etc. Because of this, we would like to invite all of you to submit examples (or suggestions of examples) that you would like to see distributed with Bonsai. Think of any useful application you have already done (or seen being done) with Bonsai, or an idea for a new application that you would really like to see developed in Bonsai. This is your chance to see them implemented and they will become available in the Gallery for easy redistribution.

Another new code sharing concept introduced in Bonsai 2.3 are workflow "Snippets". You create a snippet by selecting a collection of nodes, right-clicking on them and choosing "Save Snippet As...". This will save the workflow snippet into the snippets folder with any name that you like. Once that is done, your snippet will be automatically loaded into the toolbox such that you can place it in other parts of the workflow where you need to perform similar operations, or even in entirely new workflows. Basically these snippets become reusable Bonsai code patterns.

Many other features and enhancements are listed below. In the following weeks I hope to post more announcements regarding new learning documentation and examples, so keep tuning in regularly. Also let us know if you are curious about any one particular enhancement by asking questions in the forums.

Release highlights

Updates to the editor

  • Support for high DPI displays.
  • Improvements to the visual layout algorithm: workflows should now in general look nicer, with less kinks and bends.
  • Export a workflow to several different bitmap formats in addition to SVG.
  • Support for exporting a workflow and related content as a self-contained redistributable package.
  • Support for exporting bits of workflow as "code snippets" which are then immediately searchable in the toolbox.
  • Added the new Bonsai Gallery to the Tools menu. Any published packages containing the tags "Bonsai" and "Gallery" will be listed.

Language updates

  • New observable-sharing operators: BehaviorSubject, AsyncSubject.
  • New reactive operators: DistinctBy, DistinctUntilChangedBy.
  • Generalized Zip and CombineLatest to support higher-order sequences.
  • Updated SelectMany to avoid automatically unrolling enumerable sequences.

Package updates

  • New and improved shader package with support for compute shaders and full-screen viewport effects.
  • Updated the shader resource and GLSL editor from modal to modeless so you can keep them open while doing other things.
  • New Audio modules: UpdateSource, UpdateListener for generating 3D positional sound.
  • New Dsp modules: Shift, BitBuffer.
  • New Vision packages: HoughCircles, HoughLines, SparseOpticalFlow, Centroid.
  • Dsp updates: Rescale now supports clamping of output values.
  • Vision updates: GoodFeaturesToTrack now supports specifying a region of interest in which to search for features.
  • Many bug-fixes and performance improvements.

Bonsai 2.2

25 Mar 19:08
Compare
Choose a tag to compare

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.

Bonsai 2.1

25 Mar 19:02
Compare
Choose a tag to compare

It is our pleasure to announce the "spring" release of Bonsai. This is an important turning point for the framework not only in terms of rounding up available features, but also in terms of disseminating it to a wider audience. We have just published a manuscript in Frontiers in Neuroinformatics and a crash course tutorial video with the goal of introducing Bonsai to the Neuroscience community at large and we hope this release will make it easier for people to get started.

This version comes jam-packed with new features and of course we would love to hear your feedback as early users! We have designed this release to be fully backwards-compatible so there should be a smooth transition path and everything should keep working. You can update all the modules or you can upgrade just the core and editor. Old modules should still work with the new version, but let us know if you find any compatibility issues. In any case, it is always possible to revert Bonsai to a specific version, but if you are afraid of compromising your current install, just make a copy of the Bonsai folder before upgrading.

Here are the highlights for the new version:

  • New spike detection module allowing to extract spike times on multi-channel signals simultaneously. It also
  • allows you to manually or automatically set individual thresholds.
  • Update to matrix visualizers to allow performant inspection of many-channel data (i.e. > 500 channels).
  • Updates to the editor: ungroup functionality; select all; description strings on nested workflows; multi-member selector.
  • Added links for the wiki, forums and bug reporting to the editor help menu.
  • Added the ability to add your own .bonsai workflows as nodes in the toolbox (build your own library).
  • Added support to read/write WAV files.
  • Added support to read CSV files.
  • Added support for inspecting raw OSC messages.
  • Greatly simplified Python scripting syntax and added support for encapsulating state using Python classes.
  • Added PythonSource module to allow defining data sources using Python generators.
  • Added PythonSelectMany module to allow projecting data elements into sequences using Python generators.
  • Added ExpressionTransform to allow inlining simple math expressions.
  • Added Scan operator to allow feedback memory and accumulating/integrating states over time.
  • Added reference documentation to all Bonsai nodes.
  • File sinks no longer overwrite existing files by default.
  • Added error handling operators: Catch, Retry, RetryCount, OnErrorResumeNext.
  • New reactive operators: Scan, Switch, Index, Materialize, Dematerialize, SequenceEqual, DelaySubscription, and more.
  • New image processing operations: optical flow, match template, polygonal crop and mask, affine transforms, scalar sources, and more.
  • Added Dsp skip and buffer operators to allow easy realignment of sample buffers.
  • Added filter properties to Keyboard and Mouse sources to allow listening only to specific key and button presses.
  • Many bug-fixes and performance improvements.

Thanks for trying out Bonsai and we hope you enjoy this new release!

Bonsai 2.0

25 Mar 17:47
Compare
Choose a tag to compare

The first public release of the Bonsai visual programming language.

Bonsai 2.0-rc

25 Mar 17:44
Compare
Choose a tag to compare
Bonsai 2.0-rc Pre-release
Pre-release

The release candidate for Bonsai 2.0. This release is source code only, just before the official public version of Bonsai went online in April 2014.

Bonsai 2.0-ctp

25 Mar 17:41
Compare
Choose a tag to compare
Bonsai 2.0-ctp Pre-release
Pre-release

The second community technology preview. This release is source code only.

Bonsai 1.0-ctp

25 Mar 17:36
Compare
Choose a tag to compare
Bonsai 1.0-ctp Pre-release
Pre-release

The first ever community technology preview of the Bonsai programming language. This is the only Bonsai release that is still compatible with Windows XP and is kept here for historical reasons only.