This is a collection of tools created to help jumpstart users on working with BCI hardware. By providing ways to connect, process, and visulize data from various peices of hardware.
- Docker
- Python 3.9 or above
- virtualenv
Clone the repository:
git clone --recurse-submodules https://github.com/neuralbertatech/natKit
cd natKitCreate a virtual environment to install the dependencies:
python -m venv <Environment-Name> # For example $ python -m venv .venvActivate the virtual environment and install the dependencies (Platform-Specific):
source ./<Environment-Name>/bin/activate # source ./.venv/bin/activate
pip install -r requirements.txt./<Environment-Name>/Scripts/Activate.ps1
pip install -r requirements.txtStart Docker Desktop and wait for its Linux container engine to report that it is running. Then, from the repository root, build the repo-owned images and start the complete development stack:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --buildThis builds the natKit frontend, backend, bridge, and ML control plane from the local source tree while pulling third-party infrastructure images such as Kafka, Mosquitto, and NTP. Open the development UI at http://localhost:8080.
To leave the stack running in the background, add --detach:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build --detachIf the repository was cloned without --recurse-submodules, initialize its
submodules before building:
git submodule update --init --recursiveSee Docker Compose development troubleshooting for common Docker Desktop, Windows line-ending, and optional ML worker issues.
Now to get started go to the bin/ folder and run some scripts, for example:
python ./bin/muse-2-producer.py &
python ./bin/stream-visulizer-gui.pyIf your docker server is running on a remote machine (or a different port on the same machine), you can configure the connection parameters using the environment variables:
NATKIT_SERVERfor the server addressNATKIT_SERVER_PORTfor the server port
For example if you had the server running on a machine located at 192.168.0.12 on port 1234 you would set the environment variables with:
export NATKIT_SERVER="192.168.0.12"
export NATKIT_SERVER_PORT="1234"(for windows)
$env:NATKIT_SERVER="192.168.0.12"
$env:NATKIT_SERVER_PORT="1234"Run the following command from Powershell (with admin privaledges)
Set-ExecutionPolicy -ExecutionPolicy Unrestricted