Portfolio
Industry & Entrepreneurship
BCI Buddy
A UCSD The Basement incubator startup created by my research assistant Cassia Rizq, Gavin Roberts, and myself. Our goal was to create the neuroengineers of tomorrow via interactive projects. Users could collect their own neural data, and program their own custom brain-computer interfaces with a simple drag-and-drop Scratch-like interface. We won 3rd in a pitch competition, and succesfully piloted our product with dozens of children, and had many pre-order requests. Our company was put on pause when various members of our team had to move from San Diego.
Contribution: I was the Chief Science Officer and co-founder of BCI Buddy. Like all startup companies, I wore many hats, and worked on so much: assisting our CTO in architecting the Scratch programming interface, assisting our lead designer in creating our modular armbands and custom circuit board for acquiring biosignals, and assisting our CEO in formulating a business plan and pitching our product. My main focus was on creating and testing data acquisition and classification pipelines, including writing custom digital signal processing and machine learning classifiers for use on low-end hardware like Chromebooks.
GitHub
Note: I have 40+ public (100+ private) repositories on GitHub. This page contains a subset of those which are most relevant to academia.
PsychoPy
For running psychology and neuroscience experiments.
Contribution: Added glyph level multicolor support to textbox2, and improved rendering formatting and speed of textbox. I was flown out to the University of Nottingham to work with the PsychoPy team for a week as a result of my contributions.
PyXDF
Python package for working with XDF files
Contribution: Contributed a fix to the linear interpolation used for time correcting unsampled (e.g. string marker) LSL streams.
COGS 189 Assignments
Assignments for UCSD's Winter 2023 COGS 189: Brain-Computer Interfaces
Contribution: Sole contributor. Created hands-on homework assignments where I teach students digital signal processing and machine learning applied to human EEG data.
PsychoPyP300
Simple PsychoPy visual oddball paradigm. Designed to be a test of LSL marker and photosensor latency.
Contribution: Sole contributor. A simple paradigm that runs an oddball (P3b) task in PsychoPy. Contains support for LSL markers and photosensor triggers.
Godot LSL Reader
Read in and display multichannel EEG LSL data in Godot .NET
Contribution: Sole contributor. This project leverages the C# implementation of LSL and some wrapper functions for Godot .NET to add LSL data recording to Godot. Note: this project does not contain support for markers. I am currently working on full LSL support for Godot -- email me if this interests you as it will speed me up.
Simple SSVEP
Really simple PsychoPy code to generate SSVEP stimuli and send markers.
Contribution: Sole contributor. Simple PsychoPy paradigm for producing arbitrary frequency SSVEP stimuli, including the ability to send LSL markers and photosensor synchronization signals.
Simple BCI
Simple repo showcasing how to make a BCI using LSL + PsychoPy
Contribution: Sole contributor. A repository sketching out the framework of a BCI using PsychoPy and LSL. Note: this repository is not complete, as in it is not a functional BCI, because I give it to students as a skeleton for them to work through during their projects.
SoS MATLAB x Python3 Examples
Repo for showing example setup and usage of Script of Scripts (SoS) kernel with Python3 and MATLAB subkernels
Contribution: Sole contributor. This repository contains a few Jupyter Notebooks that have multi-language cells using Script of Script (SoS). The goal was to allow for native MATLAB calls of EEGLAB functions in Python so that subsequent machine learning pipelines in Python could be used in a single notebook. Note: I would not recommend this approach.
OpenEvades
An open-source partial implementation of Evades.io
Contribution: Sole contributor. A Godot 3 partial implementation of the social/dodging game Evade.io. I originally intended to conduct social neuroscience experiments with this game, but that project was put on an indefinite pause.
CalcTask
Extended cognition task where there's a cost on using a tool
Contribution: Sole contributor. An extended cognition task written in Godot 3, designed to be deployed to the web. This was my first serious project in Godot, and was designed for a Ph.D. course project. I was able to collect and analyze data from over 30 subjects from this task, and it solidified Godot as my tool of choice for creating complex experiments.