top of page

School Projects

Emotion Detection Algorithm

I created an algorithm in Matlab that uses linear regression to detect emotion in pictures of faces. The algorithm uses linear regression to classify a test dataset of images into positive or negative images. It then applies the same linear regression techniques to the images it classified as positive or negative to classify them into happy, surprised, sad, or angry. 


The linear regression equation Ax=b, where A is the image, x is a set of weights, and b is the classification of the images. By solving for x, a weights vector can be calculated. Then by multiplying our emotions_test dataset by these weights, a prediction vector is created. For each image in the prediction vector, if the associated value is closer to 1 than 0 it is considered positive and vice versa. Using this prediction, the test images are classified into new positive and negative datasets, along with their corresponding emotion tags. This process is run again on each dataset, but the training data, and in turn the weights, are created from datasets of images classified by their specific emotion (happy, surprised, frustrated, angry). 

A more detailed report can be found here

Battery Powered Electrical Grid Model

The goal of this project was to determine the optimal battery capacity needed to store enough power to meet the electricity demand in Boston. Due to the unreliable nature of most renewable energy sources, any electrical grid that runs primarily on renewables must rely on batteries to supply electricity when demand exceeds production. I used Python to create a model of theoretical Boston renewable production and actual consumption. I then modeled different battery sizes to find the capacity that always stored enough energy to meet demand.

A more detailed report can be found here

The purpose of this project is to characterize welder skill based on the consistency of their motion. When MIG welding, typically the welder uses some type of cyclic motion in addition to the forward progression in the direction of the weld. To have a quality weld it is critical the welder moves consistently. By looking at the variation in speed of the welding gun we can estimate how experienced the welder is. 


Consistency of the weld joint is important as any deviation from the ideal parameters of torch height, travel speed, torch angle, etc. reduces the quality of the weld. 

This project uses Fourier transformation to determine the consistency of the welder and provide feedback, allowing them to improve.

A more detailed report can be found here


As my final for Principles of Integrated Engineering my self and 4 other engineers had 6 weeks to complete an integrated engineering project. The project had to incorporate significant mechanical, electrical and software components. We also had to make the project without spending more than $250. With these constraints we came up with the Ball Matrix Display.

We created a Ball Matrix Display, which is a device that creates an image out of small black and white plastic balls. It does this by dropping balls into clear tubes and moving the tubes until it has created a full image. Once our Matrix Ball Display creates an image it drains the balls into an elevator that brings all the balls back up to the top where they are sorted by color and are ready for the next print.

As a mechanical engineer on the project I designed the elevator, ball sorter, and ball dropper. I also designed the frame for the display.


A more detailed description of the project can be found here.

bottom of page