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.Repository: github.com/Elata-Biosciences/elata-bio-sdk
Architecture
Quick Start
The fastest path is to scaffold a demo app withcreate-elata-demo:
Choose the Right Package
| Goal | Start here | Notes |
|---|---|---|
| Scaffold a new demo app | @elata-biosciences/create-elata-demo | Fastest path for evaluation and onboarding |
| Run EEG WASM APIs in the browser | @elata-biosciences/eeg-web | Signal processing, models, and WASM helpers |
| Connect to a Muse-compatible EEG device in the browser | @elata-biosciences/eeg-web-ble | Requires eeg-web and Web Bluetooth |
| Run camera-based rPPG in a browser app | @elata-biosciences/rppg-web | Includes processor, backend loader, and demo helpers |
npm Packages
| Package | Version | Description |
|---|---|---|
@elata-biosciences/create-elata-demo | 0.1.16 | Demo scaffolder with rPPG, EEG, and EEG BLE templates |
@elata-biosciences/eeg-web | 0.1.16 | EEG WASM bindings: signal processing, band power, models |
@elata-biosciences/eeg-web-ble | 0.1.16 | Web Bluetooth transport for EEG headband devices |
@elata-biosciences/rppg-web | 0.1.16 | rPPG pipeline: heart rate from camera via face detection |
Add packages to an existing app
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.| Crate | Purpose |
|---|---|
elata-eeg-hal | Core HAL traits: EegDevice, SampleBuffer, ChannelConfig |
elata-eeg-signal | FFT, band power analysis, filtering |
elata-eeg-models | Alpha Bump Detector, Calmness Model |
elata-rppg | rPPG pipeline core |
elata-muse-proto | Muse classic and Athena protocol |
Device Support
| Device | Protocol | Channels | Status |
|---|---|---|---|
| Muse 2 | Classic BLE | 4 EEG (TP9, AF7, AF8, TP10) | Supported |
| Muse S | Classic BLE | 4 EEG + PPG | Supported |
| Muse S (Athena) | Athena v2 | 8 EEG + optics + accgyro | Supported |
| Synthetic Bridge | BLE bridge | Configurable | Testing only |
Compatibility
| Surface | Chrome / Edge | Safari macOS | Safari iOS | Node.js |
|---|---|---|---|---|
create-elata-demo | n/a | n/a | n/a | >= 18 |
eeg-web | Supported | Supported | Supported | >= 20 for local repo tooling |
eeg-web-ble | Supported | Not supported | Not supported | >= 20 for local repo tooling |
rppg-web | Supported | Supported | Supported (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
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