Recent Releases of bonsai
bonsai - Bonsai 2.9.0
This is the first release in the 2.9 series, which introduces significant changes to the language editor experience. Please give us any feedback either in the comments below or by opening a new discussion.
In Bonsai 2.9 we introduce a new workflow navigation model leveraging a flexible docking layout panel, and a nested hierarchy tree view with breadcrumbs to allow easily and quickly jumping between different parts of a complex project. The docking architecture also enabled us to start developing new editor tools such as the new find all references window.
The new workflow state watch mode provides an unprecedented level of runtime feedback about the inner workings of a reactive workflow, including when sequences are subscribed to, when they produce values, terminate, or are cancelled. We expect this mode to provide an invaluable tool for learning visual reactive programming and understanding the behavior of programs written in Bonsai.
In anticipation of new editor features, we are introducing a reorganization of the .layout files, which were previously used to store debugger visualizer settings over multiple runs. These files previously cluttered folders containing multiple workflow files, and were very hard to extend to more complex project-based settings. With this reorganization we expect to facilitate a cleaner project folder structure and introduce more clarity on the version control of workflows.
Finally, we modernized the package manager dialog and completed our migration from MyGet to NuGet. As discussed during the last MyGet outage, we urgently needed to broaden our community package deployment options. The new package manager introduces support for two new package types: BonsaiLibrary and BonsaiGallery for packages providing libraries of Bonsai operators and example workflows, respectively.
These package types will be used to curate the nuget.org feed to keep our package manager focused on libraries providing reactive operators. Currently package type filtering is only supported for the nuget.org feed, but it is turned on by default there. New packages deployed to nuget.org are expected to declare both Dependency and BonsaiLibrary as their package types for maximum discoverability.
[!Important] In the near future, we will move entirely out of MyGet and will archive the community feed.
What's Changed
🔮 Release Highlights
- Rewrite editor navigation model by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1870
- Add editor find tool for subjects and operator types by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2227
- Move layout files to workflow settings folder by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1956
- Modernize package manager dialog by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1969
- Add support for watching individual operator state by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1975
🎉 New Features
- Allow propagation of Defer nested sequence visualizer by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1931
- Rename CombineTimestamp to CreateTimestamped by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1941
- Make period a nullable property of reactive timer and clarify documentation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1957
- Add MatrixWriter overload for sequences of unmanaged types by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2110
- Improve consistency of visualizer context menu by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2158
- Save workflow settings when closing the editor by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2156
- Allow selecting output menu items using keyboard by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2173
- Add multiline string editor for string properties by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2192
- Improve editor experience when manipulating visualizer mappings by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2195
- Use workflow filename as default export image name by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2204
- Add obsolete message to operator descriptions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2208
- Expose texture array interface on texture sequence by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2205
- Add support for Prepend and Append operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2264
- Make package source configuration dialog a true modal window by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2297
- Allow multi-channel data when reading whole files using MatrixReader by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2301
- Improved gallery package builder dialog by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2269
- Add new VisualizerWindow operator by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2240
- Replace MyGet with NuGet as default package source by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2285
- Update package template to introduce recommended repository structure by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2306
- Add command for creating a new environment by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2316
- Automatically use workflow local environment on double-click by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2315
🐞 Bug Fixes
- Avoid launching editor during image export by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2124
- Remove idempotent operations from the undo history by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2157
- Ensure ordering before removing ungrouped nodes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2164
- Improve navigation behavior when no tabs are open by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2166
- Ensure topological sort before deletion by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2169
- Ensure visualizer mapping build state is cleared by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2172
- Ensure OSC message format is culture invariant by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2193
- Fallback to base url when no docs are found by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2197
- Prune all fully disabled branches during build by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2178
- Clear annotation panel on new workflow creation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2199
- Ensure property mapping and member selector operators prefer derived properties by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2201
- Ensure any workflow errors are cleared on open by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2203
- Avoid loading visualizer layout on mismatched type name by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2213
- Avoid multiple shutdown paths out of StartWorkflow by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2212
- Ensure editor workflow is not set until validation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2231
- Avoid corrupting editor state when loading workflow with circular includes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2235
- Disable confusing editor actions on disabled nodes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2239
- Await initialization before loading layout by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2232
- Avoid setting minimum size on text visualizer by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2253
- Initialize editor layout after workflow validation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2255
- Await asynchronous workflow initialization on editor load by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2258
- Fix various issues with
Extensions.csprojhandling and add unit testing for it by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/2180 - Ensure workflow does not contain unknown types when exporting to an image from the CLI by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2267
- Ensure visualizer predecessor search can extend to nested scopes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2268
- Add missing null guard in SelectPackageDetails by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2290
🚀 Performance Improvements
- Replace uses of WebRequest with HttpClient by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1937
🔧 Engineering
- Update launch settings to target artifacts folder by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1923
- Update ScintillaNET to support modern .NET by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1924
- Allow building workflows as typed sequences by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1942
- Target netcore on editor and bootstrapper projects by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1907
- Configure tests to run on .NET 8 by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1952
- Fix test target framework issues by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1958
- Exclude build dependencies when counting inputs to new nested node by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1946
- Use deployment key in CI for manipulating Git repository by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1985
- Add support for sorting test workflows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1964
- Add support for long paths on Windows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2016
- Keep Linux builds on Ubuntu 22.04 for now by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/2079
- Consolidate shared menu icons in global resources by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1989
- Deprecate obsolete visualizer operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2206
- Improve support for workflow property assignment by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2263
- Set user agent string used for NuGet network calls by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2266
- Replace visualizer dialog terminology with visualizer window by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2259
- Ensure node argument range indicator is displayed by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2284
- Account for variable length parameters correctly by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2282
- Avoid collapsing WinForms designer files in the PR review UI by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/2299
- Update upstream dependencies by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/2308
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.5...2.9.0
- C#
Published by glopesdev 12 months ago
bonsai - 2.9.0-preview1
[!WARNING] THIS RELEASE IS UNDER ACTIVE DEVELOPMENT. We are actively looking for feedback on your experience with the new features. All preview features are subject to breaking changes as we incorporate feedback and so we do not recommend you to use this release for any production applications.
This is the first preview release in the 2.9 series, which introduces significant changes to the language editor experience. Please give us any feedback either in the comments below or by opening a new discussion. If you create a new discussion, please indicate clearly that your question is about the 2.9.0-preview1 release.
In this preview, we are introducing a new workflow navigation model coupling a single-page browser-like view of the current workflow level, with a nested hierarchy tree view and breadcrumbs to allow quickly jumping between the different sections and modules of a complex project.
We also introduce a new workflow state watch mode, active by default, which provides an unprecedented level of runtime feedback about the inner workings of a reactive workflow, including when sequences are subscribed to, when they produce values, terminate, or are cancelled. We expect this mode to provide an invaluable tool for learning visual reactive programming and understanding the behavior of programs written in Bonsai.
In anticipation of new editor features, we are introducing a reorganization of the .layout files, which were previously used to store debugger visualizer settings over multiple runs. These files previously cluttered folders containing multiple workflow files and are hard to extend to the more complex project-based settings we now need to evolve the editor experience. With this reorganization we expect to facilitate a cleaner project folder structure and introduce more clarity on the version control of workflows.
Finally, we modernized the package manager dialog to support our migration from MyGet to NuGet. As discussed during the last MyGet outage, we urgently need to broaden our community package deployment options. The new package manager introduces support for two new package types: BonsaiLibrary and BonsaiGallery for packages providing libraries of Bonsai operators and example workflows, respectively.
These package types will be used to curate the nuget.org feed to keep our package manager focused on libraries providing reactive operators. Currently package type filtering is only supported for the nuget.org feed, but it is turned on by default there. New packages deployed to nuget.org are expected to declare both Dependency and BonsaiLibrary as their package types for maximum discoverability.
[!Important] In the near future, we will move entirely out of MyGet and will archive the community feed.
What's Changed
🔮 Feature Preview
- Modernize package manager dialog by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1969
- Move layout files to workflow settings folder by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1956
- Add workflow state watch to debug mode by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1975
- Rewrite editor navigation model by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1870
🎉 New Features
- Allow propagation of Defer nested sequence visualizer by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1931
- Rename CombineTimestamp to CreateTimestamped by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1941
- Make period a nullable property of reactive timer and clarify documentation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1957
🐞 Bug Fixes
- Exclude build dependencies when counting inputs to new nested node by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1946
🚀 Performance Improvements
- Replace uses of WebRequest with HttpClient by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1937
🔧 Engineering
- Update launch settings to target artifacts folder by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1923
- Update ScintillaNET to support modern .NET by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1924
- Allow building workflows as typed sequences by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1942
- Target netcore on editor and bootstrapper projects by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1907
- Configure tests to run on .NET 8 by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1952
- Fix test target framework issues by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1958
- Use deployment key in CI for manipulating Git repository by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1985
- Add support for sorting test workflows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1964
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.5...2.9.0-preview1
- C#
Published by glopesdev over 1 year ago
bonsai - Bonsai 2.8.5
What's Changed
🎉 New Features
- Ensure multicast subject preserves source type by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1916
🐞 Bug Fixes
- Fix redundant assembly resolution resulting in duplicate assembly loading by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1902
- Ensure all resolved assemblies are unique by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1904
- Fix exception constructor argument order by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1910
🔧 Engineering
- Fix some lists in the NuGet package comparison log not being sorted by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1908
- Fix NuGet testing feed appearing in official releases by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1918
- Drop version build metadata for official releases by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1913
📄 Documentation
- Add Discord and GitHub Discussions badges to the readme by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1909
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.4...2.8.5
- C#
Published by glopesdev almost 2 years ago
bonsai - Bonsai 2.8.4
What's Changed
🎉 New Features
- Use forward slashes for package configuration by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1893
🐞 Bug Fixes
- Fix build metadata in workflow version causing semver parsing to fail by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1786
- Log all unhandled bootstrapper exceptions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1888
- Fix
ObjectTextVisualizerallowing a buffer size of 0 by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1882 - Ensure visualizer operator override by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1889
🚀 Performance Improvements
- Preload all extension types from include workflows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1890
🔧 Engineering
- Revamp CI infrastructure and implement release automation by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1873
- Move ironpython package into separate repository by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1878
- Make package comparison in CI optional for the sake of forks by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1887
- Hide embedded DLLs from the solution explorer by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1894
- Avoid packing internal project dependencies by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1898
📄 Documentation
- Add infrastructure for release automation and clean up build workflow by @PathogenDavid in https://github.com/bonsai-rx/docs/pull/87
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.3...2.8.4
- C#
Published by glopesdev almost 2 years ago
bonsai - 2.8.3
What's Changed
🎉 New Features
- Preserve visualizer types across nested sink nodes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1751
- Allow script extensions to declare unsafe blocks by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1753
- Modify text visualizer to better handle newlines and unprintable control characters by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1765
- Add support for binding textures directly from a
TextureSequenceby @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1770
🐞 Bug Fixes
- Fix workflows run from the command line not exiting upon completion by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1755
- Prevent empty category nodes from being dragged into the workflow by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1760
- Fix GateInterval not working after the first tick by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1767
- Fixed uncaught exception when XRefMap is invalid by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1785
- Log full exception trace for console bootstrap by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1805
- Prevent infinite recursion when visualizer mappings of the same node are combined together by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1787
🚀 Performance Improvements
- Avoid rebuilding combinator reset delegate by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1750
- Enable support for compressed XRefMap from documentation server by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1788
🔧 Engineering
- Move arduino package into separate repository by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1754
- Update wix toolset version by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1808
- Update project and item template dependencies by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1810
📄 Documentation
- Fix typo in Bonsai.Design.Slider documentation by @PathogenDavid in https://github.com/bonsai-rx/bonsai/pull/1752
- Clarify use of cross-correlation for FIR filters by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1768
New Contributors
- @PathogenDavid made their first contribution in https://github.com/bonsai-rx/bonsai/pull/1752
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.2...2.8.3
- C#
Published by glopesdev about 2 years ago
bonsai - 2.8.2
What's Changed
- Fix circle picker rescaling and size conversion issues by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1621
- Add missing circle constructor by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1623
- Avoid cancellation exception on task completion by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1688
- Improve detection of word boundaries in node names by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1694
- Update wix toolset version by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1695
- Ensure external browser docs are shown on modifier by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1696
- Ensure retrieval of closest subject definition by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1699
- Allow filtering package updates by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1700
- Improvements to environment template by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1701
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.1...2.8.2
- C#
Published by glopesdev about 2 years ago
bonsai - 2.8.1
First service release for the 2.8 series, including patches for bootstrapper and core packages.
What's Changed
- Avoid permissive exclusion of method overloads declared in base type by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1512
- Ensure base path is not modified on resubscription by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1554
- Add library folders to DLL search path on windows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1555
- Ensure arguments with spaces are surrounded by quotation marks by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1563
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.8.0...2.8.1
- C#
Published by glopesdev over 2 years ago
bonsai - 2.8
This is the first release in the 2.8 series and one of the most significant in the last couple of years.
Critical parts of the compiler, IDE and bootstrapper have been rewritten to allow evolving the infrastructure into the new cross-platform .NET core. We have made the editor and language learning experience more accessible by providing support for rich rendering of Markdown annotations and embedded documentation for all operators. Finally, we have established the Bonsai Foundation, an independent organization to support our commitment to a free and open-source future, and to the benefit of our growing community.
Embedded code annotations and documentation
Code comments are an essential part of any programming language, and Bonsai is no exception. As the complexity of projects increases, and knowledge needs to be transferred across generations of scientists, it becomes more important to have effective ways of sharing information about how the internals of specific workflows work.
This release introduces a new Annotation operator, which can be placed on its own or attached to any node, and where you can write your own development notes or operating instructions in Markdown to be saved with the workflow. Being a visual language, we think that having the ability to write-down rich HTML annotations, potentially with images or schematics, will be an important feature of Bonsai code comments. Markdown provides a great compromise between ease-of-use, flexibility and rich HTML support, which is leveraged by the new built-in browser panel which has also been co-opted to display embedded documentation.
Fully-featured Linux editor
We've been progressively cleaning up the kinks in cross-platform support of the current Bonsai editor (Mono .NET framework) and we now can run the editor with full-functionality (i.e. cameras, OpenGL, sound, serial ports) in latest Ubuntu, Arch Linux and Raspberry Pi. By taking advantage of VS Code on Linux it even becomes possible to use C# scripting directly.
We have documented the installation steps in detail and removed most crippling crashes and painful limitations around Bonsai on Mono. All the functionality required to run our tutorials and learning materials should now be available to any Linux system.
Announcing the Bonsai Foundation
We are welcoming our first new code contributors (@bruno-f-cruz), and announcing the Bonsai Foundation as part of our commitment to make Bonsai a free, open-source, and sustainable community-driven project. The primary role of the Foundation is to organize the development of the Bonsai ecosystem, and facilitate the sharing of contributions between individuals and organizations who want to volunteer their work for community projects. We hope that by establishing clear contribution guidelines, and improving access to freely available teaching materials, documentation, conferences and summer courses, we can empower current and future generations of scientists anywhere in the world to use this free and open-source programming language.
We hope you will join us in our journey!
What's Changed
- Add dotnet template for creating a new bonsai environment by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1251
- Increase default max number of significant digits for floating-point values in CsvWriter by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1261
- Reuse top-level prefix for all extension base types with explicit XML type declarations by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1072
- Allow generic type resolution of TypeMapping values outside the core namespace by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1279
- Allow overload inference for polymorphic operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1291
- Ensure unique XML namespace prefix declarations by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1292
- Avoid throwing on ResourceSubject dispose if source sequence terminated exceptionally by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1293
- Ensure priority of base non-polymorphic properties by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1306
- Add support for adding rich annotations to the workflow by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1311
- Add support for dynamic keyword and dynamic object binding in C# scripts by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1258
- Ensure single subscription to Gate opening events by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1315
- Optimized workflow reordering and insert at cursor by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1324
- Add support for in-editor docs browser by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1359
- Improved support for editing annotations by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1361
- Add support for the HasFlag operator by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1364
- Add support for polymorphic operator docs by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1369
- Ensure replaced nodes keep the same index by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1371
- Add support for using System.Numerics namespace in local scripts by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1373
- Limit group context menu to core nested operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1376
- Allow derived IO writer classes to specify base path by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1377
- Add tags to project templates by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1382
- Regression testing for sorting and editor changes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1393
- Rewrite bootstrapper logic to avoid relying on AppDomain by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1392
- Mono compatibility improvements by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1407
- Redirect headless exceptions to stderr by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1411
- Add assembly reference for data serialization by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1413
- Fixes and improvements to workflow sort order by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1414
- Cache configuration parameters for each async call in LoadImage operator by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1421
- Bump NuGet.Protocol from 6.3.1 to 6.6.1 by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1422
- Add keyboard shortcut for changing history length by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1423
- Early error checking and file name generation for FileSink by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1430
- Improve support for high-frequency visualizers by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1415
- Allow lazy initialization of webview panel by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1432
- Simplify qualified name for workflow element icons by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1433
- Avoid returning resources declared inside disabled nodes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1439
- Update package template debug settings for new bootstrapper by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1442
- Avoid deadlock when disposing serial connection by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1443
- Refactor default serial port implementation to avoid event callbacks by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1444
- Refactor arduino interface to avoid event callback by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1445
- Refactor text visualizer to use buffered updates by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1446
- Add net6.0 build target to player project by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1447
- Update package dependencies by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1448
- Add item templates for dotnet new by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1449
- Add community code of conduct by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1450
- Remove XML serialization properties from public API by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1451
- Add tie-break for method overloads in derived classes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1452
- Add operators for reading and writing binary data from a serial port by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/959
- Improve information contrast for obsolete operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1455
- Add support for streaming binary serial read buffers by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1456
- Ensure output of Normalize is bounded between zero and one by @bruno-f-cruz in https://github.com/bonsai-rx/bonsai/pull/1400
- Add operator to query an environment variable by @bruno-f-cruz in https://github.com/bonsai-rx/bonsai/pull/1232
- Require user defined conversion when multicasting to subject with non-matching type by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1459
- Refactor matrix and spike visualizers to use buffered updates by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1460
- Allow starting editor session on a specified folder by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1464
- Add citation file by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1466
- Ensure VideoWriter frame size is cached per subscription by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1468
- Ensure single row display for text visualizer by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1470
- Improve cursor selection when clicking in editor empty space by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1471
- Ensure restored bounds are at least in one screen by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1472
- Pack player project as a dotnet tool by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1479
- Update bootstrapper to .NET 4.8 by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1481
- Disable caret selection from text visualizer by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1485
- Clear text visualizer on right double-click by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1487
- Add ReadAllText and WriteAllText operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1492
- Allow TypeMapping extension types by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1497
- Allow filtering which types to include in CollectionEditor by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1498
- Enter the Bonsai Foundation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1480
New Contributors
- @bruno-f-cruz made their first contribution in https://github.com/bonsai-rx/bonsai/pull/1400
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.7.2...2.8.0
- C#
Published by glopesdev almost 3 years ago
bonsai - 2.7.2
Second service release for the 2.7 series, including patches for editor and core packages.
What's Changed
- Ensure correct upgrade of inspectable workflows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1150
- Ensure XmlInclude types are included in serializer by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1157
- Avoid locked file access when upgrading and re-saving extensions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1164
- Ensure initial and current directories are equal by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1158
- Disable editing of design-only properties inside included workflows by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1165
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.7.1...2.7.2
- C#
Published by glopesdev over 3 years ago
bonsai - 2.7.1
First service release for the 2.7 series, including patches for bootstrapper, editor and core packages.
What's Changed
- Fix layout for gallery and package export dialogs by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1128
- Add support for COLLADA, FBX and STL formats by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1136
- Add extension folders to IronPython search path by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1144
- Fix drag and dropping of workflow files into the graph view by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1133
- Ensure embedded workflows also upgrade on ungroup by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1134
- Ensure upgrading does not re-enable disabled nodes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1132
- Ensure extensions are searched in order from project to config by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1137
- Allow deprecation of embedded workflows using assembly metadata type by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1138
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.7...2.7.1
- C#
Published by glopesdev over 3 years ago
bonsai - 2.7
This feature release adds support for built-in documentation of core and community packages and brings improvements to interoperability with hardware protocols. New UI functionality for replacing, renaming, and finding operators has been added, together with a new system for building custom visualizers directly in the workflow.
All reactive operators have been moved to a common namespace, and support for concurrency control has been added. Several namespaces and packages have been refactored in preparation for increased cross-platform targeting and support of .NET 6.0 in subsequent feature releases.
What's Changed
- Merge 2.6 patches by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/880
- Generalize multi-region editors and add support for editing circular regions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/932
- Allow specifying limits for rolling graph builder by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/927
- Add support to bind parameters with white space by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/944
- Refactor and standardize SVG export functions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/940
- Generalize layout settings and mashup API for arbitrary visualizer composition by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/917
- Allow cropping fixed-size rectangular regions around specified image points by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/996
- Add support for context-dependent renaming of subjects by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/921
- Add built-in integration for community documentation by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/937
- Add type descriptor support for property mapping by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/923
- Allow closing editor tab with middle mouse click by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1013
- Add support for replacing selected nodes by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1009
- Split expression and python scripting packages by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/942
- Load package manager dependencies without assembly lock by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1049
- Add netstandard build target for core assembly by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1052
- Refactor namespace organization for reactive operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1046
- Disable modifier keys for docs and rename actions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1061
- Ensure nested mashup sources are always serialized by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1065
- Finalize reorganization of reactive namespace by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1064
- Align semantics of Slice operator with Take by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1067
- Add support for finding toolbox elements by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1074
- Require opt-in attribute to reset combinator by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1083
- Add scheduler and concurrency control operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1082
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.6.3...2.7
- C#
Published by glopesdev over 3 years ago
bonsai - 2.7-rc5
The latest release candidate for the next feature release, with support for built-in documentation, improved interoperability with hardware protocols, improved UI for replacing and renaming operators, and updated APIs for creating custom visualizers.
Full-list of closed issues: https://github.com/bonsai-rx/bonsai/milestone/5?closed=1
What's Changed
- Load package manager dependencies without assembly lock by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1049
- Add netstandard build target for core assembly by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1052
- Refactor namespace organization for reactive operators by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1046
- Disable modifier keys for docs and rename actions by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1061
- Ensure nested mashup sources are always serialized by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1065
- Finalize reorganization of reactive namespace by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1064
- Align semantics of Slice operator with Take by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1067
- Add support for finding toolbox elements by @glopesdev in https://github.com/bonsai-rx/bonsai/pull/1074
Full Changelog: https://github.com/bonsai-rx/bonsai/compare/2.7-rc1...2.7-rc5
- C#
Published by glopesdev over 3 years ago
bonsai - 2.7-rc1
The release candidate for the next feature release, with support for built-in documentation, improved interoperability with hardware protocols, improved UI for replacing and renaming operators, and updated APIs for creating custom visualizers.
Full-list of closed issues: https://github.com/bonsai-rx/bonsai/milestone/5?closed=1
- C#
Published by glopesdev over 3 years ago
bonsai - 2.6.3
This service release fixes several pending critical issues with package management, editor and core compiler edge cases. It also adds minor features to the shaders package and support for drag-and-dropping multiple workflows into the editor canvas.
Full-list of closed issues: https://github.com/bonsai-rx/bonsai/milestone/6?closed=1
- C#
Published by glopesdev over 4 years ago
bonsai - 2.6.2
This maintenance release fixes a couple of critical issues with custom scripts and visualizer table layouts. It also fixes small usability issues with the editor open file dialog.
Full-list of closed issues: https://github.com/bonsai-rx/bonsai/milestone/4?closed=1
- C#
Published by glopesdev about 5 years ago
bonsai - 2.6.1
This maintenance release fixes a couple of updating and reporting issues in the bootstrapper package manager, and introduces a new command-line flag --visualizer-layout which allows selecting arbitrary layout files to use when running a workflow in headless mode.
Full-list of closed issues: https://github.com/bonsai-rx/bonsai/milestone/3?closed=1
- C#
Published by glopesdev over 5 years ago
bonsai -
Bonsai 2.6 moves us further along the roadmap for cross-platform support. The NuGet package manager is now updated to the latest client version, and editor code has been refactored to allow replacing the editor UI frontend in the future. New language features allow more flexible declaration of subjects and a new "Go to definition" context menu allows browsing the C# declaration of all workflow nodes, bringing a new way to inspect available input and output types directly.
The new default Bonsai executable is 64-bit, and Bonsai64.exe is no longer available. For 32-bit support, please use the new Bonsai32.exe.
This release series will be the last release using .NET framework. The first major release next year, and onwards, will move the development stack to .NET 5, which will lay the final foundations for cross-platform execution of workflows.
Full-list of closed issues: https://github.com/bonsai-rx/bonsai/milestone/1?closed=1
Release highlights
- Default bootstrapper is now 64-bit
- Update NuGet client to latest version
- Allow stacking multiple visualizers into a single window using the new
TableLayoutPaneloperator - Support for OSC arrays in ReceiveMessage
- New operators:
ToDictionary,ToLookup - Allow passing inputs to workflow and generic workflow inputs during build
- Allow creating standalone subject sources
- Add key modifiers to Windows.Input mouse and keyboard operators
CsvReadernow allows scanning files line-by-line triggered on external input- Allow overriding sample rate in
AudioReader - Add support for video textures
- New package for rendering complex 3D scenes (
Shaders.Rendering) - Add "Go to Definition" context menu
- New package template for VS code
- Many editor improvements and bugfixes
- Update
IncludeWorkflowto use ungroup action to make it read-only (for consistency with other group nodes)
- C#
Published by glopesdev over 5 years ago
bonsai -
This is the first maintenance update for Bonsai 2.5. You can install it from this release, or in the package manager for download as an update. Updating is highly recommended as this release fixes a number of issues with 2.5.0 and is the first release with mono compatible bootstrapper and editor support.
Release highlights
- Mono compatible bootstrapper and editor tested on Ubuntu 18.04 and 20.04
- Improvements to scripting compatibility and support for winform visualizers
- Fix path assignments when running workflow projects from the command-line
- Allow zero-delay timers in Shaders package
- C#
Published by glopesdev about 6 years ago
bonsai -
Mono compatible bootstrapper and editor tested on Ubuntu 18.04 and 20.04.
- C#
Published by glopesdev about 6 years ago
bonsai - 2.5
The new Bonsai 2.5 moves us along our roadmap for cross-platform Bonsai. All project development has been moved to GitHub, and this will become the central hub for all development for the foreseeable future. The new build pipeline brings us very close to migration to .NET Core which will allow Bonsai workflows to run anywhere.
For this release we have fixed a number of nagging usability improvements that have accumulated over the years. We are also launching a preview of the new DeepLabCut module which brings real-time markerless pose estimation for Bonsai video workflows.
You can install Bonsai 2.5 from this release (recommended), or in the package manager as an update. Updating is highly recommended as this release fixes a number of issues with 2.4.0 and brings several performance improvements and usability improvements to the editor and other packages.
Release highlights
- Improvements to OSC client/server over TCP: for several years the TCP support for OSC was limited to a single peer-to-peer connection. Now it becomes possible to host a number of clients over TCP using the server configuration;
- Added
FormatandParsenodes to the OSC package so that it becomes easy to send OSC messages over any transport protocol (e.g. WebSockets); - The Arduino nodes now initialize asynchronously so that your workflow does not have to block waiting for the board to come online;
- Added operators for controlling the OS cursor position (
SetCursorPosition) and generating virtual key presses (SendKeys) to the Windows.Input package; - Rounded up several edge cases with data types and conversions on the Vision package;
- Reimplemented the "hidden"
FileCaptureeditor as a visualizer so it is much easier to find and can now be launched directly as the workflow opens for quick file scanning; - Added support for saving/loading camera extrinsics calibration to YAML;
Improvements to installer
- Bootstrapper now runs on .NET 4.7.2;
- Code templates now target Visual Studio 2017 onwards using the new csproj project format;
- C#
Published by glopesdev about 6 years ago
bonsai - 2.4.1
Just in time before 2020, we have uploaded the first maintenance update for Bonsai 2.4. You can install it from this release, or in the package manager for download as an update. Updating is highly recommended as this release fixes a number of issues with 2.4.0 and brings several performance improvements for the editor and the shaders package.
Release highlights
Improvements to C# scripting: if you had problems integrating scripting with Visual Studio Code, it should now be easier to get this to work;
Performance improvements to editor when dealing with multiple levels of nesting, and other edge cases;
Fixed several loading issues with the new workflow format: if you were having issues saving and restoring some workflows, you might want to try again with this new version;
Updated Bonsai.Shaders package: the new Bonsai.Shaders 0.20.0 updates OpenTK to the latest 3.1.0. This version significantly reduces the latency for visual stimulus presentation, by allowing to remove one extra frame of lag from the double-buffered render loop. It is also more stable on average and will form a solid basis for visual stimulus packages such as BonVision.
Improvements to installer
- 64-bit executable now associates by default and should be listed on Windows when you right-click on a Bonsai file and select "Open With";
- Code templates for Visual Studio 2019;
- C#
Published by glopesdev about 6 years ago
bonsai - 2.4
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!
- C#
Published by glopesdev about 6 years ago
bonsai - 2.3
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.
- C#
Published by glopesdev about 6 years ago
bonsai - 2.2
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.
- C#
Published by glopesdev about 6 years ago
bonsai - 2.1
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!
- C#
Published by glopesdev about 6 years ago