This page lists some of the projects I’ve worked on over the last few years. It’s mostly a compilation of different papers or projects you might find on GitHub or Google Scholar, just with a little context added. The diversity of my interests is likely apparent, but I believe the underlying theme of intelligent systems runs throughout.


Anyone in the legal domain knows that there's a lot of paperwork. In my natural language processing class, we developed a system for summarizing legal cases and extracting some other information like acronyms and key entities. Summarization is a very complex field, so while there's much development to continue on this project, we did present the initial work at COLING in December 2016.

Paper ➙


My information retrieval class involved using the open source Apache Solr project to build a search engine. Solr is very powerful, and we used it to create a keyword search engine for films. Using information and reviews from Rotten Tomatoes, were we able to make searching for films based on relation to generic keywords, actors, other films, and more very simple. FilmWord generates live word clouds using the common words associated with films, and these give a particularly visual approach to finding similar films.

Paper ➙

Assisted Navigation for the Visually Impaired

The Computer-Assisted Navigation Engine (CANE) was designed to help blind users navigate without impairing their other senses. Audio feedback can be very distracting; most individuals with severe visual impairment prefer tactile feedback through guide dogs or white canes. CANE yielded a belt lined with proximity sensors and vibrotactile devices. Users receive early warning of obstacles through vibration. Presented at an IUI workshop in its initial form, CANE is an ongoing project in the lab.

Paper ➙

Automated Car Detection in Parking Lots

What if you had an app to tell the available parking spaces in any lot without your needing to circle looking for an empty spot? For my digital image processing course at TAMU, I worked on a simple approach for determining parking space availability from aerial imagery. More specifically, automated systems deployed on parking lot surveillance cameras can find cars and spaces using a combination of edge detectors, feature descriptors, sliding windows, and neural networks.

Paper ➙     Poster ➙

Frontier: Graph-Based Web Browsing

Mentoring a team of undergraduate computer science students for their captsone project, I had the opportunity to play a small role in the development of a unique Chrome browsing extension. Frontier is designed to save browsing as a graph rather than a stack. In practice, this means that users can go back and forward any number of times along any path in their history, not just the most recent sites. Graphical browsing also supports more useful visualizations in the history menu. The paper was presented at CHItaly 2015.

Paper ➙     Poster ➙


Another education project, I worked on the Sketch Recognition Lab's Persketchtivity software for about a year. Persketchtivity is a web-based program that helps teach students to draw following a scaffolded approach based on standard design curriculum. Owing to the spectacular design talent of the creator, Blake Williford, it is a visually stunning program that has generated a lot of useful research, including methods for computationally scoring a person's drawing proficiency.

Poster (UI) ➙     Poster (Recognition) ➙

Mining Trends in Student Data Analytics

The Mechanix project has generated a huge amount of student data -- sketches, feedback, and submission metadata. The metadata has revealed some interesting patterns, such as time between attempted submissions predicting the student's performance. There's a lot of promising research in the Educational Data Mining area, and these trends may be leveraged by future versions of Mechanix to make the system even more responsive.

Paper ➙     Poster ➙


For a couple of years during my time at TAMU, I've been heavily involved in maintanence and development of the Sketch Recognition Lab's Mechanix software for engineering students. The tool is a Java-based application that supports natural, pen-based interaction with real-time recognition and personalized feedback. The user interface was presented at Intelligent User Interfaces in 2015.

Paper ➙     Poster ➙

Integer Neural Nets - Machine Learning on Hardware

System on a Chip (SoC) design pushes more capabilities onto a single chip for improvements in power, mobility, and cost. Since machine learning is vital to developing smart applications today, why not make neural nets a hardware module? In codesign embedded systems at TAMU, my team explored that question with the development of an integer neural net (INN) module. In our simulated hardware tests on healthcare cost modeling, we found hardware INNs are orders of magnitude faster than traditional software NNs.

GitHub ➙     Paper ➙

Anchor-Based Voice Conversion

In my speech processing class at TAMU, I worked with a team performing voice conversion. The approach relies on converting speech from the origin and target into MFCC dimensions. By using the phonemic averages, or "anchors", of the target speaker, the origin audio can be resynthesized to sound more like the target for any desired phrase. This is a large research area, and it's worth checking out the related research on PSI Lab's page, plus author Chris Liberatore's page. It was presented in InterSpeech the next year.

Paper ➙

EMG and the Biosensors Revolution

Biosensors were just beginning to find mainstream consumer applications in 2014, and working in a neuroscience lab, I was curious to what extent bio-electric sensors could play in this new market. For my undergraduate thesis, I built an ultra low-cost electromyogram (EMG) and studied its usability and reliability. As we've seen with devices like the Myo armband, EMG is becoming an increasingly affordable and reliable option for wearble, biosensor interfaces.

Paper ➙     Poster ➙


This was a bit of a fun project. To learn Python, I built a IRC-based chatbot built on the Artificial Intelligence Markup Language (AIML) and the open source interpreter pyAIML. If you want to deploy a chatbot to an IRC channel or just waste time talking to a computer, check out pybot. It's pretty simple to deploy and edit.

GitHub ➙