Skip to main content

Installation

pnpm add @elata-biosciences/eeg-web
Requirements: Node.js 18+, browser with WebAssembly support.

WASM Initialization

Before using any signal processing or model APIs, initialize the WASM module:
import { initEegWasm } from "@elata-biosciences/eeg-web";

await initEegWasm();
initEegWasm is idempotent — calling it multiple times returns the same promise. For synchronous initialization (e.g., in a Web Worker):
import { initEegWasmSync } from "@elata-biosciences/eeg-web";

initEegWasmSync(wasmModule);

Basic Usage

Compute band powers from EEG data:
import { initEegWasm, band_powers } from "@elata-biosciences/eeg-web";

await initEegWasm();

const sampleRate = 256;
const eegSamples = new Float64Array(/* ... your EEG data ... */);

const powers = band_powers(eegSamples, sampleRate);
console.log("Alpha:", powers.alpha);
console.log("Beta:", powers.beta);
console.log("Theta:", powers.theta);
console.log("Delta:", powers.delta);
console.log("Gamma:", powers.gamma);

Package Structure

@elata-biosciences/eeg-web is a thin TypeScript wrapper around WASM bindings generated by wasm-bindgen:
  • initEegWasm / initEegWasmSync — WASM initialization helpers
  • Headband frame types — normalized data schema for EEG transports
  • All WASM APIs — re-exported from the generated bindings
The full API surface includes signal processing functions, analysis models, and the Athena decoder. See the following pages for details:

Signal Processing

Band powers, FFT, spectrum analysis

Models

Alpha bump detection, calmness scoring

Headband Transport

Frame schema and transport interface