Projects
See all the fun stuff I work on!
Lunar Lander with Reinforcement Learning
Picture this: an artificial agent autonomously figuring out how to land a spacecraft on the moon! 🚀 Created with the Unity Engine and C# This project was not just about coding, it also allowed me to showcase my ability to tackle complex problems with a can-do attitude. Overall, I loved working with MLAgents to further my learning in AI and ML, all while also developing my skills within Unity!
Binding of Issac Remake
Recreated "The Binding of Issac". I built this project from scratch using Unity and C#, I animated all sprites, developed all logic and designed some of the items. This project allowed me to really evolve my coding and game design skills, all while doing something I love. Check out the project on github and itch.io!
Genetic Algorithm Fishing Simulator
How would you make a complex ecosystem without overworking your system? I'd suggest a Genetic Algorithm. I created a Fishing Simulator that is based around an ever-evolving ecosystem that changes the optimal traits and behaviors of a fish depending on which season we are currently in. This mechanic and simulation was made using C++ and Unreal Engine 5.
Spooky VR Multiplayer Escape Room
This was my first time not only creating a VR game, but also a multiplayer game! I alongside another collaborator developed a VR multiplayer Escape Room that involves solving puzzles all while fending off ghosts! Made with Unity, C#, Photon Fusion 2 and Meta's Interaction SDK. Submitted as a part of the Meta Quest Presence Platform Hackathon.
Navigation App
I created an android app and associated hardware to act as compass to direct a user toward a specific destination using the Google Maps API. The hardware uses LED's to direct the user accordingly, the expected usage was to be placed on a longboard or skateboard to avoid making the user constantly look at their phone.
Awake Again
This was my first Game Jam Game for Brackeys Game Jam 2024. Working with a team we created a game encompassing the theme "What's Behind the Door" using the Unity Game Engine and C# I implemented a flashlight, and the associated battery system. Aswell as all character movement and object interaction. This game jam taught me important skills on collaboration specifically wihtin the realm of designing and creating a game within a strict time frame.
![](images/full_drone.jpg)
Raspberry Pi Drone
Over the course of the summer, my previous coop gave me a stipend to use for skill development. I decided to learn to build a drone. I connected with someone on the internet offering a course for drone building and they mentored me into learning to create a drone from scratch. Firstly the drone is controlled via a Pixhawk which is microcontroller based, so inorder to get linux functionality on the FC we used a raspberry pi. Basically so we could do computer vision based control we can communicate to the raspberry pi via our ground station, i.e my laptop. The firmware that runs on our flight controller is ardupilot, the firmware interacts with and commands the hardware. Then we chose a microcontroller based board over a linux based board, for its faster computational speed. I also decided to use LIPO batteries over Li-ion batteries due to the variation of their C-rating. For example, in our LIPO batteries we have a discharge rate of about 50 C meaning we have a larger range for safe current draw. Our motors were brushless Motors
![](images/PCB_Real.jpg)
48-24V Multiphase Buck Converter
Being a part of the UW Robotics Design Team we are required to build a remote controlled/ autonomous rover that can fulfill challenges specified by the Mars Society. There is an annual event held taking various universities across the globe to compete in proving their rover is the most efficient & optimal “Mars Rover”. One of the systems that was being redone was our 48 -24 V buck converter that was on a previous iteration of the rover but had too large of a ripple voltage. I went through and got familiar with the design procedure, consulting specific documentation with respect to the controller we selected for the project. Then we moved on to creating the schematic, getting it reviewed and proceeding with creating and optimizing the layout to prevent parastic effects. We made sure we had sufficient ground planes in order to minimize disruptions from signals propagating through the PCB. Finally, I also got to partially test the PCB before finding issues with the inductors, which required us to order new parts and retest. Oh the joy of physical circuits and needing to reorder parts and resolder :) .
![](images/electric_cabinet.jpg)
Energy Savings Program
While working at my first Coop with Tenneco I created an "Energy Savings Program". Basically, at the plant, we have multiple machines in the working area that are connected to one exhaust fan to clear dust and smoke from the welding cell. Each cell is equip with a shutter that can be controlled with a valve. When the machine operates in the automatic cycle, the shutter opens and the fumes are extracted. If the cell is not in operation the shutter is closed. Since not all machines are operating at the same time, some shutters remain open and some remain closed for a significant amount of time. In order to run the fan efficiently, we decided to measure the static pressure in the duct in the position before the fan. This static pressure measurement would change depending on how many shutters were open at that moment in time. So we would change the speed rotational frequency in order minimize the static pressure buildup in the vents to prevent possible damage to the motors. I also got the chance to wire the electrical cabinet and create the schematic for this project!
![](images/full_prototype.jpg)
Object Sensing System
During one of classes in the 2A term, we were given a project to design and create an object sensing system that could be placed on a quote on quote Mars Rover that could determine whether there was an object in its FOV, how far away this object was and where the center of the object was located with respect to our rover. The distance was measured using an ultrasonic sensor. Our process of scanning the area around the rover was done by using two servo motors. One being used for panning and the other for tilt. There was also a laser pointer in order to give a visual aid to observers the center line of the FOV. With this system I implemented a manual control via a joystick, but also there was an automatic control. The automatic control would scan the entire range of rotation that the servo motors could provide and create calculations in order to determine how many objects were sensed, where there were located with respect to the servo’s rotation measured in microseconds. The entire system was coded via the STM32CubeIDE where the code was loaded onto a nucleo F401RE board to manage the peripherals. Also we set up UART connections in order to display the needed information onto our laptop which we connected via PUTTY. Overall, even though our tests were not exceptionally difficult we saw that testing displayed a distance sensing accuracy of ~95 % and an object angular width calculation accuracy of 93 %.