A real-time biosignal visualization tool for Lab Streaming Layer (LSL) streams.
Project description
MoBI-View
A real-time biosignal visualization tool for Lab Streaming Layer (LSL) streams.
Welcome to MoBI-View, a Python application designed for real-time visualization of biosignal data from Lab Streaming Layer (LSL) streams. This tool allows researchers and clinicians to monitor and analyze various biosignals like EEG, eye-tracking data, and other physiological measurements through an intuitive and responsive interface.
Features
- Real-time signal visualization from any LSL-compatible device streaming numerical data.
- Multi-stream support for simultaneous monitoring of different data sources.
- Specialized plot types optimized for different signal types.
- EEG plot widgets for neurophysiological data.
- Numeric plot widgets for other sensor data.
- Channel / Stream visibility control for focusing on specific data channels.
- Hierarchical stream organization through a tree-based interface.
- Automatic stream discovery.
Installation
Installing uv
First, install uv, a fast package installer and resolver for Python:
macOS/Linux:
curl --proto '=https' --tlsv1.2 -sSf https://astral.sh/uv/install.sh | sh
Windows (Powershell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
⚠️ Import Note for MoBI-View Installation
MoBI-Viewdepends on pylsl, which utilizes liblsl, a system-level dependency that is not installed by default. Install it by following the instructions from theInstalling liblslsection below.
Installing MoBI-View
Option 1: Install from PyPI
pip install mobi-view
Option 2: Install from Github
# Clone the repository
git clone https://github.com/childmindresearch/MoBI-View.git
cd MoBI-View
# Optional: Create virtual environment
uv venv
# Optional: Activate the environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install all dependencies including the package itself
uv sync
⚠️ Installing liblsl
The pylsl package requires the liblsl binaries for your platform. You can install them using one of the following methods:
Option 1: Package Managers
- Conda (all platforms):
conda install -c conda-forge liblsl- vcpkg (Windows/Linux):
vcpkg install liblsl- Conan (Windows):
conan install liblsl- Homebrew (macOS):
brew install labstreaminglayer/tap/lslOption 2: Build from Source
git clone --depth=1 https://github.com/sccn/liblsl.git cd liblsl mkdir build && cd build cmake .. cmake --build . --config Release cmake --install .Option 3: Precompiled Binaries
- Download the latest release for your platform from the liblsl Releases page
- Extract the zip file and add the library to your system's path:
Windows:
- Download the Windows ZIP file (e.g.,
liblsl-1.16.2-Win64.zip)- Extract the Zip file, which contains: -
bin/lsl.dll-lib/lsl.dll- header files ininclude/directory- Add the extracted
bindirectory to your PATH environment variable# Example: If unzipped to C:\liblsl $env:PATH += ";C:\liblsl\bin"macOS:
- Download the macOS package (e.g.,
liblsl-1.16.2-OSX-amd64.tar.bz2)- Extract the archive:
tar -xf liblsl-1.16.2-OSX-amd64.tar.bz2
- Inside you'll find: -
lib/liblsl.dylib- header files ininclude/directory- You can either: - Copy
lib/liblsl.dylibtolib- Or set theDYLD_LIBRARY_PATHto include the lib directoryLinux:
- Download the appropriate Debian package (e.g.,
liblsl-1.16.2-Linux64-focal.debfor Ubuntu 20.04)- Install using:
sudo dpkg -i liblsl-1.16.2-Linux64-focal.debOr download the liblsl-1.16.2-Linux64.tar.bz2 and extract:
tar -xf liblsl-1.16.2-Linux64.tar.bz2 sudo cp lib/liblsl.so* /usr/local/lib/ sudo ldconfig
Quick start Guide
-
Activate your environment (if not already activated):
-
Run MoBI-View (either method works):
# Method 1: Using uv run
uv run mobi-view
# Method 2: Direct execution
python -m src/main.py
- Select LSL streams from the tree view to visualize data:
- EEG data appears in the EEG tab.
- Other physiological signals appear in the Numeric tab.
- Toggle streams and channels on/off by clicking checkboxes.
Application Interface
When you launch MoBI-View:
- Stream Discovery: The application automatically discovers available LSL streams.
- Visualization: Streams are displayed in appropriate plot widgets based on their type (EEG vs non-EEG).
- Control Panel: A tree view on the left shows available streams and channels. This control panel can be moved or separated out of the main window.
- Channel Selection: Toggle visibility of individual channels by clicking on their boxes in the Control Panel.
Future Directions
- Support for additional visualization types (non-numeric data and event markers).
- Custom filtering and signal processing options.
- Extended analysis tools for common biosignal metrics.
- EEG impedance checker for ease of setup.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mobi_view-0.2.1.tar.gz.
File metadata
- Download URL: mobi_view-0.2.1.tar.gz
- Upload date:
- Size: 71.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bc5f9a7951af64fd0bc7cdbf0102d097e94a35f11f856155a57fe02bbca688e
|
|
| MD5 |
291608c9946a2a9dc45fc895f8c18ee4
|
|
| BLAKE2b-256 |
7bc70824d3b1ae7d7122d7a3cf98a20d447a4e7a23c2323da354aa1af1d7b7c6
|
File details
Details for the file mobi_view-0.2.1-py3-none-any.whl.
File metadata
- Download URL: mobi_view-0.2.1-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331e85329cb6c1d2e0cbed040302ef790a7c1d9a14e2415016c8227e2e03462b
|
|
| MD5 |
3e697b0cf0aea6bd989a05b2f19a0acb
|
|
| BLAKE2b-256 |
c4776fe7644eb69ca1889d9ea7d9011465079eab30fa9e1eee04ffb97bac4a11
|