emotiv-npm
v1.0.0
Published
Node.js client for Emotiv Cortex with head-tracking cursor control
Maintainers
Readme
Emotiv NPM
A Node.js/TypeScript client for the Emotiv Cortex API, featuring built-in head tracking cursor control.
🚀 Features
- Easy Connection: Simplifies authentication (request access, authorize, generate session).
- Head Tracking: Built-in 2D cursor movement algorithm based on Headset Quaternion data.
- TypeScript: Fully typed for better development experience.
- Events API: Simple
on('move'),on('command')interface.
📦 Installation
npm install emotiv-npm🛠 Usage
Basic (Node.js)
import { EmotivMouse } from 'emotiv-npm';
const mouse = new EmotivMouse({
clientId: 'YOUR_EMOTIV_CLIENT_ID',
clientSecret: 'YOUR_EMOTIV_CLIENT_SECRET',
debug: true // Optional: logs API traffic
});
// Connects, Authorizes, and Starts Stream
await mouse.connect();
// Listen for Head Movement
mouse.on('move', (event) => {
// event.x, event.y = Calculated screen coordinates
// event.dx, event.dy = Relative movement (deltas)
console.log(`Cursor: ${event.x}, ${event.y}`);
});
// Listen for Mental Commands
mouse.on('command', (cmd) => {
// cmd.command = "push", "pull", etc.
// cmd.power = 0.0 to 1.0 confidence
console.log(`Command: ${cmd.command} (${cmd.power})`);
});React Integration
See REACT_INTEGRATION.md for a detailed guide on using this with React Hooks.
⚙️ Configuration
| Option | Type | Description |
| :--- | :--- | :--- |
| clientId | string | Your Emotiv Cortex App Client ID. |
| clientSecret | string | Your Emotiv Cortex App Client Secret. |
| license | string | (Optional) Emotiv License key. |
| debug | boolean | (Optional) Log all WebSocket traffic. |
⚠️ Requirements
- Emotiv Cortex App must be running on the machine (localhost:6868).
- Node.js Environment (uses
wslibrary).- Browser usage requires polyfilling
wsor using electron.
- Browser usage requires polyfilling
📄 License
MIT
