MDP: 3D City Mesh
1/2026 - Present Tech Stack: Python, Trimesh
I utilized Python's Trimesh Library as well as Python requests in order to build up 3D meshes of
cities. By using the Overpass API and Python requests, I was able to fetch out data regarding the
buildings, roads, and other city features in a given geographical region.
Once this data was obtained, I utilized Python's Trimesh library to extrude out the building footprints
to the correct heights and render out the mesh into a .glb (3D Format) that can be rendered out using a software
like Blender.
Github: 3D City Mesh
MAAV: Drone Fleet
12/2025 - 1/2026 Tech Stack: Python
I created a distributed system for MAAV. The aim of the competition is to have a fleet
of 4 drones all contributing towards a task. In order to maximize the efficency of our drone
fleet, I designed a distributed system utilizing Python sockets so that the drones can
cover their own regions, and then communicate the results to one another.
The goal of the drones is to be able to map out a football-field sized area and take note
of any obstacles during their flyby. This system allows the drones to fly through
their own zones and then aggregate their results to map out the areas of interest and also
calculate a path that avoids all obstacles from one side to the other.
To process the results communicated by the drones, a MapReduce framework was implemented. By
splitting up the processing into separate map and reduce stage, I was able to extract out the
locations of each obstacle and plot them accordingly. I then utilized a simple Breadth-First Search
with binary search to find an optimal path through the obstacles.
Github: Drone Fleet
MAAV: Object Detection
9/2025 - 12/2025 Tech Stack: Python, YOLO, Blender
I created an object detection algorithm that was ablet to detect objects from images.
To prepare for our upcoming drone competition, our drones need to be able to detect specific obstacles specified by the competition
within images taken mid-flight. To do this, our team decided to use pre-trained models, specifically a YOLO v11n model
that we custom-trained on our own images to better fit our needs. We chose YOLO due to their built-in ability to segment
objects by using bounding boxes. To boost our training efficiency, we took real-world images, but also created a virtual 3D
environment that simulated the competition airfield and generated thousands of Blender images that allowed us to effectively train
our model year-round. As of today, our model has a precision of around 75% and we are still training it to hopefully incrase performance.
Github: Object Detection
Virtual Rubik's Cube
7/2025 - 11/2025 Tech Stack: C++, Swift, Blender, Python
I created a C++ program that could find an efficient solution to the Rubik's Cube with a record time of 250 ms.
I utilized A* search and a custom heuristic function to search through different states of the Rubik's Cube, represented as nodes in a graph to find the solution.
In the end, I deployed the program as an webapp on macOS systems using Swift. In order to visualize the solution produced by the app, I also created a virtual 3D environment for a Rubik's Cube
using Blender and brought the cube to life using Blender's built-in Python API to program the cube to take in user
input and perform the necessary moves.
Github: Virtual Rubik's Cube
MAAV: Drone Image Mapping
3/2025 - 4/2025 Tech Stack: Python, OpenCV
I created an image stitching algorithm using Python and OpenCV.
By capturing many consecutive images of an airfield, I applied classic Computer Vision
techniques such as SIFT features and homography transformations to correctly orient each image.
Once all of the images were properly oriented in alignment with each other, I was able to iteratively
stitch the photos together on a unified canvas, allowing us to produce the proper stitched image.
Github: Drone Image Mapping
Technische Universitat Berlin: Self-Balancing Segway
5/2024 - 8/2024 Tech Stack: MATLAB, Arduino
I spent 6 weeks building a robotic self-balancing segway using MATLAB and Arduino.
I Implemented predictive controls in Simulink and applied Kalman Filtering in order to iteratively update position.
This allowed our segway to re-orient itself given different parameters, such as the tilt angle of the body. By implenting
these features into our custom controller, the segway was able to stay upright for up to arond 5-10 seconds.
Github: Self-Balancing Segway
Michigan Data Science Team: Neural Networks from Scratch
1/2024 - 4/2024 Tech Stack: PyTorch, Python, pandas
I gained hands-on experience by creating a neural network from scratch, integrating Machine Learning concepts from
scratch such as backpropogation and feedforward algorithms. The entire model was coded using Python and pytorch, with
features like backpropogation being implemented using standard Python Numpy Math and matrix multiplication.
The model was trained on network data in order to detect network intrusion
and was able to correctly detect network intrusion with an accuraccy of up to 95%.
Github: Neural Networks from Scratch
Michigan Data Science Team: Webscraping Project
9/2023 - 1/2024 Tech Stack: Selenium, Python, Matplotlib
I worked on a ecommerce webscraping project. The aim of this project was to scrape popular online shopping websites,
such as Amazon, in order to find the average rating and prices for certain objects. We were able to visualize these
metrics in a standard Python plot using Matplotlib and key in on items that were seemingly overpriced for their rating.
This allowed the user, to gague the price range that they should be targeting for the best valued product according to the search query.
Github: Webscraping Project