Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add linear dynamical systems package and oxyplot time series visualizer #2

Merged
merged 85 commits into from
Mar 7, 2024

Conversation

ncguilbeault
Copy link
Collaborator

This PR adds 2 new packages, namely the LinearDynamicalSystems package and the Visualizers package. In addition, a python helper class is added to the core Bonsai.ML package. Below I have highlighted some of the key features that are added.

Linear Dynamical Systems Package
This package acts as an interface to the lds_python package, a python package for performing inference using linear systems modelling. Under the hood, it utilises the Bonsai.Scripting.Python package to execute python commands that interact with the underlying python package. A few of the Bonsai nodes are added to provide a standardised format for passing data between the model (python object) and Bonsai. These include nodes such as State, Observation2D, etc. The package includes a sub package, named Kinematics, which is special application of the linear dynamical systems model for performing inference of kinematic data, such as tracking 2D keypoints of behaving animals.

Python Helper
The PythonHelper class represents a generic python helper that can be used for converting certain data types between python and C#. It covers some of the basic python/C# type conversions (i.e. int, float, string) and some additional types (i.e. python list to List, python dictionary to Dictionary, and numpy array to List). This was added to the core Bonsai.ML package.

Visualizers
This package represents a generic visualisers package to be used across Bonsai.ML. This PR adds a generic TimeSeriesOxyPlotBase class that initialises an oxyplot graph with time series data along the x axis. A specialised KinematicComponentVisualizer is used to visualise the the model's inference of kinematic data.

Copy link
Member

@glopesdev glopesdev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left major points in the review comments, but in general looks great, it might be quicker to just continue going over this together as soon as possible.

@glopesdev glopesdev self-requested a review March 7, 2024 13:29
@glopesdev glopesdev changed the title Added linear dynamical systems package, core python helper class, and oxyplot time series visualizer Added linear dynamical systems package and oxyplot time series visualizer Mar 7, 2024
@glopesdev glopesdev changed the title Added linear dynamical systems package and oxyplot time series visualizer Add linear dynamical systems package and oxyplot time series visualizer Mar 7, 2024
@glopesdev glopesdev merged commit 2b3324e into bonsai-rx:main Mar 7, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants