Skip to main content

Elata SDK

The Elata SDK is a cross-platform biosignal SDK spanning EEG device pipelines, browser transports, and rPPG processing for web and native clients. It provides four npm packages and a set of Rust crates that compile to WASM and native targets.

Architecture

┌──────────────────────────────────────────────────────┐
│                        Elata SDK                      │
├──────────────────────────────────────────────────────┤
│  Platform Bindings                                    │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐            │
│  │  WASM    │  │  Swift   │  │  Kotlin  │            │
│  │ (Browser)│  │  (iOS)   │  │(Android) │            │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘            │
│       └─────────────┴─────────────┘                  │
│                      │                                │
│  Models Layer        │                                │
│  ┌─────────────────┐ ┌─────────────────┐              │
│  │ Alpha Bump      │ │ Calmness        │              │
│  │ Detector        │ │ Model           │              │
│  └────────┬────────┘ └────────┬────────┘              │
│           └────────┬──────────┘                       │
│  Signal Processing │                                  │
│  ┌─────────────────────────────────────┐              │
│  │ FFT │ Band Power │ Filtering        │              │
│  └─────────────────────────────────────┘              │
│                    ▲                                  │
│  HAL Layer         │                                  │
│  ┌─────────────────────────────────────┐              │
│  │         EegDevice Trait             │              │
│  │ connect() │ start_stream() │ read() │              │
│  └─────────────────────────────────────┘              │
└──────────────────────────────────────────────────────┘

Quick Start

The fastest path is to scaffold a demo app with create-elata-demo:
# rPPG web demo (default template)
npm create @elata-biosciences/elata-demo my-app

# EEG web demo
npm create @elata-biosciences/elata-demo my-app -- --template eeg-demo

# EEG Web Bluetooth demo
npm create @elata-biosciences/elata-demo my-app -- --template eeg-ble
After scaffolding:
cd my-app
pnpm install
pnpm run dev
If you’re scaffolding inside an existing pnpm workspace, use pnpm --dir my-app --ignore-workspace install instead.

Choose the Right Package

GoalStart hereNotes
Scaffold a new demo app@elata-biosciences/create-elata-demoFastest path for evaluation and onboarding
Run EEG WASM APIs in the browser@elata-biosciences/eeg-webSignal processing, models, and WASM helpers
Connect to a Muse-compatible EEG device in the browser@elata-biosciences/eeg-web-bleRequires eeg-web and Web Bluetooth
Run camera-based rPPG in a browser app@elata-biosciences/rppg-webIncludes processor, backend loader, and demo helpers

npm Packages

PackageVersionDescription
@elata-biosciences/create-elata-demo0.1.16Demo scaffolder with rPPG, EEG, and EEG BLE templates
@elata-biosciences/eeg-web0.1.16EEG WASM bindings: signal processing, band power, models
@elata-biosciences/eeg-web-ble0.1.16Web Bluetooth transport for EEG headband devices
@elata-biosciences/rppg-web0.1.16rPPG pipeline: heart rate from camera via face detection

Add packages to an existing app

# EEG signal processing (WASM)
pnpm add @elata-biosciences/eeg-web

# BLE headband connectivity (requires eeg-web)
pnpm add @elata-biosciences/eeg-web-ble @elata-biosciences/eeg-web

# rPPG (camera-based heart rate)
pnpm add @elata-biosciences/rppg-web
Requirements: Node.js 18+, modern browser with WebAssembly support.

Rust Crates

The SDK is built on Rust crates that compile to WASM and native targets. The primary public Rust crates are the core and protocol crates; synthetic and binding crates are mainly internal packaging surfaces.
CratePurpose
elata-eeg-halCore HAL traits: EegDevice, SampleBuffer, ChannelConfig
elata-eeg-signalFFT, band power analysis, filtering
elata-eeg-modelsAlpha Bump Detector, Calmness Model
elata-rppgrPPG pipeline core
elata-muse-protoMuse classic and Athena protocol

Device Support

DeviceProtocolChannelsStatus
Muse 2Classic BLE4 EEG (TP9, AF7, AF8, TP10)Supported
Muse SClassic BLE4 EEG + PPGSupported
Muse S (Athena)Athena v28 EEG + optics + accgyroSupported
Synthetic BridgeBLE bridgeConfigurableTesting only

Compatibility

SurfaceChrome / EdgeSafari macOSSafari iOSNode.js
create-elata-demon/an/an/a>= 18
eeg-webSupportedSupportedSupported>= 20 for local repo tooling
eeg-web-bleSupportedNot supportedNot supported>= 20 for local repo tooling
rppg-webSupportedSupportedSupported (with camera permissions)>= 20 for local repo tooling
eeg-web-ble requires Web Bluetooth and an https:// origin or localhost. Safari and iOS do not support Web Bluetooth for Muse browser workflows. Use a native app shell with CoreBluetooth or a companion bridge app streaming frames over WebSocket.

Build from Source

git clone https://github.com/Elata-Biosciences/elata-bio-sdk.git
cd elata-bio-sdk

./run.sh install          # Install dependencies
./run.sh build all        # Release build (WASM + TS)
./run.sh test             # Run all tests
./run.sh demo eeg         # Launch EEG demo
./run.sh demo rppg        # Launch rPPG demo

Next

EEG Web

Signal processing and models

BLE Transport

Connect to headband devices

rPPG

Heart rate from camera

Choose A Package

Package decision guide

Example Apps

Full reference implementations

Build Your First App

Scaffold a starter app