A basic online editor for the hardware description language called simply HDL from Nand2Tetris. The URL updates with a permalink to the code as you edit, for ease of sharing.
A machine learning project.
A Convolutional Neural Network (CNN) to classify two types of image ("simple" versus "regular" scenes). The images were taken by infants wearing head-mounted cameras, and researchers wanted to know if younger infants prefer "simple" scenes. My contribution was to provide an automatic image classification system so that researchers don't have to spend so much time labeling images by hand.
Adding a GPU interface to an interactive/interpreted programming language.
This was a project for a class called "High Performance Computing". It uses J's foreign function interface (FFI) to call ArrayFire functions. With compatible hardware, this speeds up certain operations. This work was a proof-of-concept intended to find a "cross over" point where the acceleration of the GPU offsets the latency of transferring data from CPU to GPU.
This extension is a simple filter that makes web pages darker. The reason I made this was in response to the complexity of existing solutions.
Programmable keyboard-like user response device with sub-millisecond accuracy.
A graduate student needed something with 4 "normal" buttons and a "home" button with sub-millisecond timing resolution. The "home" button is my favorite part. It is a screw conductively coupled to a capacitive-sensing pin on a Teensy LC, with a library to make it behave like a pushbutton switch.
Measures and records skin conductance levels.
Myself and another engineer built 30 of these for an honors-level Psychology course at Indiana University. The device records skin conductance between 2 electrodes and logs the data to a micro SD card. Students devised their own experiments around the device, and presented their results at the end of the course. Experiment topics ranged from "watch a scary movie" to "listen to your favorite music".