This release brings exciting new tutorials, quality-of-life changes, and more!
Big thanks to valuable feedback from our early users, especially the insightful reviews curated the reviewers and editors from [Journal of Open-source Software](https://joss.theoj.org/): mstimberg lucask07 nastaran62 for their constructive insights.
New tutorials
* Build a multi-modal classifier with EEG and pupillometry from scratch and make inference in real-time ([link](https://physiolabxrdocs.readthedocs.io/en/latest/tutorials/BuildMultiModalERPClassifier.html)).
* Detect objects in real-time on a webcam ([link](https://physiolabxrdocs.readthedocs.io/en/latest/ObjectDetectionTutorial.html)).
* Create a real-time fixation detection pipeline with an eyetracker ([link](https://physiolabxrdocs.readthedocs.io/en/latest/FixationDetection.html)).
UI changes
* Scripting widget now displays the "max loop time" in addition to "average loop time". It shows the maximum time a loop call took since the start of the script. This is particularly helpful if you are training ML models in your script.
* You can now start an LSL stream even when the stream is not yet available. If you do this, the stream widget will start pulling data as soon as the stream becomes available.
* For time series plot, you can add an constant offset to each channels. This is helpful when the plots for different channels overlaps each other ([link](https://physiolabxrdocs.readthedocs.io/en/latest/Visualization.html#add-offsets-to-the-channels))
Changes to the docs
* We added dedicated doc pages for API reference.
* Streams are basic building blocks in PhysioLabXR. The docs now have an entire section with examples showing how to work with streams including LSL, ZMQ, screen capture, cameras, microphones, etc. ([link](https://physiolabxrdocs.readthedocs.io/en/latest/DataStreamAPI.html)).
Our development team is dedicated to continually enhancing PhysioLabXR, with many exciting features planned for future releases. Stay tuned!