Your devices don't
know how you feel.
FocuX reads your physiological state continuously and lets you know when to slow down. It runs on your wristband and your iPhone — nothing in between.
Download on App Store Open Source on GitHub → Engines · pip install →Technology floods you with data.
But never listens to your body.
Your devices push information to you at 1 Gbps. None of them know whether you should still be sitting there.
Sense. Compute. Suggest.
Wear the wristband sensor. FocuX translates your physiological signals into a Stamina score (0-100) — your body's battery level.
Capture Signals
8-channel sensor continuously reads forearm physiological signals at high sampling rate. Dry electrodes, no gel — wear it like a watch.
Edge Processing
84-dimensional feature extraction + CoreML on-device inference. Everything runs locally on your iPhone. No cloud, no latency, no privacy concerns.
Gentle Reminders
Based on your personal baseline, it suggests a pause at the moment that is least costly to interrupt. You decide whether to take it.
Not a crude single number.
Stamina is a fusion of three orthogonal dimensions, each backed by independent biomarkers.
Consistency
Motor unit recruitment stability. The more stable your activation pattern, the more precise your control.
Tension
Involuntary sustained muscle contraction. You might be clenching without even knowing it.
Fatigue
Spectral shift is the gold-standard biomarker for neuromuscular fatigue (MDF, De Luca 1997).
Open science,
real numbers.
Our models, data, and methodology are fully open source. Here are the core metrics and architecture.
Gesture Classifier
RandomForest (n=200 trees)
Trained on Ninapro DB5 public dataset with Leave-One-Group-Out cross-validation.
Weighted F1: 86.12% | 5 classes | 84-dim features
Feature Pipeline
7 features per channel × 8 channels + 28 inter-channel correlations = 84 dimensions
Time domain: MAV, RMS, WL, ZC, SSC
Frequency domain: MNF, MDF
Spatial: Pearson correlation C(8,2)
Window: 250ms, Overlap: 50%
On-Device CoreML
Stamina model: MLP 6→16→8→1
Supports MLUpdateTask for on-device personalized fine-tuning. 1-minute calibration (30s rest + 30s grip), accuracy improves 15-20%.
Training Data
Public dataset: Ninapro DB5 (.mat) — resampled to 1000Hz, labels mapped to 5 gesture classes.
Self-recorded: 42+ segments (8ch × 1000Hz), 5 gesture classes (shoot, left, right, up, down), 6-10 segments each.
Emotion data: WESAD dataset transfer learning — stress/non-stress binary classification, LogisticRegression, 6-dim features.
Deep Learning Backup
1D-CNN (PyTorch)
Conv1d(8→32, k7) → Conv1d(32→64, k5) → Conv1d(64→128, k3) → FC(128→64→N)
Apple Silicon MPS | 50 epochs | Dropout 0.5
Export Formats
Models export in multiple formats covering the full research-to-deployment pipeline:
.pkl sklearn
.onnx cross-platform
.mlpackage iOS CoreML
.pt PyTorch
.joblib lightweight
It learns you.
No two bodies are the same.
Everyone's muscle patterns, fatigue thresholds, and work rhythm are different. FocuX doesn't apply a generic model to everyone — it continuously learns on your device, getting better the more you use it.
Layer 1: Instant Calibration
After each work session, you report how you actually felt (focused / okay / a bit tired / exhausted). The system compares its prediction with your feedback and adjusts the offset using exponential smoothing (α=0.3) in real time.
First feedback takes effect immediately. No waiting, no large datasets needed.
Layer 2: CoreML Fine-tuning
Every 3 feedbacks trigger MLUpdateTask to fine-tune the MLP network via SGD (lr=0.01, 10 epochs). New weights are saved as versioned model files.
Model version increments, never lost. Your personalized model grows with you.
Awareness that stays
at the edge of attention.
Following the Calm Technology principle — information lives at the edge of attention until it truly matters.
Stamina Ring
Real-time stamina ring, 0-100 intuitive display of your body's endurance.
Live Activity
Persistent on Lock Screen + Dynamic Island with system-driven timer.
MVC Calibration
Two-phase calibration: 10s resting baseline + 5s maximum grip. Full muscle range recorded.
Session History
Complete record of stamina curves and dimension changes for every work session. Daily overview + pending feedback tracking.
AI Coach
On-device LLM-powered daily coaching summary — trend insights + actionable body advice.
BLE Resilience
Auto-pause on disconnect, 5-min timeout, wear-off detection, battery monitoring.
Immersive Focus
Full-screen focus mode — breathing animation, long-press to end (anti-mistouch), session summary + particle effects.
Home Widgets
4 home screen widgets — session count, stamina value, weekly trend, dashboard. Everything at a glance.
Zero Cloud
All computation runs locally on iPhone. No servers, no accounts, 100% private.
Multi-Domain Fatigue
MDF spectral shift + low-band energy ratio + RMS rise — three complementary signals fused for fatigue. No more single-feature jitter.
IMU Fusion
6-axis motion sensor enriches activity detection and suppresses motion artifacts during free wrist gestures.
Adaptive Baseline
Per-channel quality weighting + auto-rebaselining during long rest. Resists dry-electrode drift and bad-contact channels.
Building in public.
From the first line of code to the App Store — the full iteration journey. Every version is documented in GitHub Issues.
Built by Jiajun Wu.
FocuX is my graduation project at the College of Future Technology, Shenzhen Technology University — and an independent product that's growing.
I want technology to start with what the body is already saying. The current version reads forearm physiological signals; later versions will reach for more — until your devices have a sense of who you are without you having to explain it.
A quiet, continuous awareness that lives inside the tools you already use. You won't notice it most days — until it shows up just before you need to slow down.