Sensor Inferred MOtion CAPture
graph LR
subgraph Device
GAMBIT[GAMBIT]
MOUSE[MOUSE HID]
KEYBOARD[KEYBOARD HID]
end
subgraph Web
LOADER[Firmware Loader]
COLLECTOR[Data Collector]
end
subgraph ML
TRAIN[Training Pipeline]
MODEL[CNN Model]
end
LOADER --> |Upload| GAMBIT
LOADER --> |Upload| MOUSE
LOADER --> |Upload| KEYBOARD
GAMBIT --> |BLE| COLLECTOR
COLLECTOR --> |Export| TRAIN
TRAIN --> MODEL
Gesture Classification from IMU Data
Python pipeline for training gesture classifiers: data loading, preprocessing, 1D CNN models, and TFLite deployment.
Status: Active
Gyroscope Accelerometer Magnetometer Baseline Inference Telemetry
Espruino Puck.js firmware for 9-DoF IMU data collection at 50Hz with BLE streaming.
Status: Active
BLE HID Mouse
Tilt-to-cursor mouse firmware. Pairs as Bluetooth HID mouse with any device.
Status: Active
BLE HID Keyboard
Gesture-based keyboard with macro, arrow key, and media control modes.
Status: Active
Bluetooth Advertise Everything
Reference implementation for BLE advertising with EspruinoHub/MQTT integration.
Status: Reference
Upload Firmware via WebBLE
Web-based tool to upload GAMBIT, MOUSE, KEYBOARD, or custom firmware to Puck.js devices.
Status: Active
Baseline Data Collection UI
Web UI for real-time sensor visualization and GitHub data upload via WebBLE.
Status: Active
Labeled Data Collection for ML Training
Enhanced UI with gesture labeling, session metadata, and export for training pipeline.
Status: Active
Initial Prototype
WebSocket-based data visualization and capture interface with D3.js charts.
Status: Prototype
Implementation & Design Docs
Component documentation and system architecture overview.
Status: Documentation
Conceptual Analysis & Research
Vision vs. reality analysis, roadmap, and ML pipeline proposals.
Status: Design
Dual-Hand Game Controller Concept
Emulating controller HID from sensor data using two SIMCAP devices.
Status: Concept
Fist Full Of Dollars
$1 family algorithms for gesture inference from low-dimensional observation.
Status: Research
pip install -r ml/requirements.txt
python -m ml.train --data-dir data/GAMBIT --epochs 50
Baseline sensor data is stored in data/GAMBIT/ with optional .meta.json label files.