Bilal Shihab / Projects

Longhorn Neurotech

A student organization building EEG and EMG models small enough to run on a prosthetic's own hardware. I've been a member since my first year:

Edge AI Team Lead, Sep 2025 – presentAI/ML Developer, Sep 2024 – Aug 2025
Spec
EMG input
8-channel, hand gestures
EMG model
MLP, static INT8 + ONNX
Latency
0.43 ms/sample vs 1.04 ms FP32
Hardware
Raspberry Pi Zero 2 W
Model size
311 KB, from ~1.16 MB FP32
Accuracy
90.50% → 90.37%
Test set
4,497 windows
EEG work
Capsule network, BCI IV-2a
Latency per sample FP32 1.04 ms INT8 0.43 ms Model size FP32 ~1,160 KB INT8 311 KB Test accuracy FP32 90.50% INT8 90.37%
Fig. 1Our EMG gesture MLP before and after static INT8 quantization with ONNX Runtime, measured on a Raspberry Pi Zero 2 W over 4,497 test windows. Latency drops 2.4× and the model shrinks to 311 KB, for a 0.13-point accuracy cost.

Why I joined

I became interested in brain-computer interfaces after reading about advances like Neuralink's. In my first year I joined the ML Interpretability team, where I built capsule networks for EEG and reordered the channels to match electrode positions on the scalp. That work led to my promotion to Edge AI Team Lead.

The hard part

The hardest part was leading ten people who all needed the same hardware. Everyone wanted to test their own models on the Raspberry Pi, so I set up Raspberry Pi Connect, which let anyone run inference on it remotely from their own laptop. That let us compare models without sharing a single physical board, and it kept everyone involved. On the technical side, ONNX Runtime was the hurdle: PyTorch's built-in quantization made the model larger than the original, so I switched to ONNX Runtime's static quantization, which brought it down to 311 KB.