Personal Projects
RomniBot: Omni-directional Robot
Winter 2022 / Spring 2023
-
3D-Printed robot designed, programmed and wired in-house. Ultimate goal of achieving autonomous driving using an array of measurement and perception equipment. Revision 1.0 provides lots of chassis surface area for this reason.
- Transmitter PCB design complete and currently being assembled.
- Designed with Solidworks, programmed with Arduino, however soon to be transitioned to Raspberry Pi for autonomous driving preparation.




Quaxel - STL to Voxel Mesh Converter
Summer 2022
-
The purpose of this program is to convert STL files' geometry into a voxel (cube) mesh representation. A voxel representation of a solid enables a designer or engineer to conduct FEA, and CFD on a component. Voxel meshes are the most primitive of mesh types when it comes to FEA, however they are also used in computer graphics and visualization. Therefore, it felt like a good middle ground for future development down either path.
-
The program is not yet complete, as it requires extensive robustness and speed improvements. These will be worked on post-graduation, when I convert the program to C++. However, as seen below, the program can handle various complicated geometries.
-
Through this project I was able to learn more about STL file formatting, Quad Tree and KD Tree data types, recursion and Ray Tracing.




Various Tool Augmentations
-
Filament Guide: This design is overly complicated, and was just made for fun. The Rev 2.0 filament guide connects to the x axis gantry, is 1 solid component, and requires 1 additional socket head screw, lock washer and nut. PS, ignore the filament fractures (humidity).
- Soft Jaw: To hold work pieces softer than the jaws that came with the vise. A TPU soft jaw would outperform this PLA version due to its compliance, however I do not currently have any TPU.



Graham Scan - 2D Convex Hull Generator
Summer 2021
-
Completed a Python implementation of the Graham Scan for generating 2D convex hulls of randomly positioned sets of Cartesian points. This implementation used only numpy arrays and lists. A module contains the function definition, and is to be used by a grander computational geometry package that I am currently building.
-
Since creating this program, I have learned about the relevance of Queues and Stacks to computational geometry, and will be making a revision to the code such that the Python linked list class "deque" from the collections package will be used to implement a stack.




Python - Dijkstra's Shortest Path Algorithm
Summer 2021
-
Dijkstra's algorithm is used in Graph Theory and extensions from it, to find the shortest path between a datum point, and any other point in a graph/network.
-
This initial implementation instantiates a 2D symmetric graph of coordinates, whose cost is purely displacement, using the created "graph" class, and then uses the Dijkstra function to calculate the shortest distance between a selected node and all other nodes. Extensions of this routine would be to return a graphical representation of each path, as well as allow for asymmetric graphs.
Summer 2020
-
Soldered both active and passive circuits elements such as resistors, capacitors, transistors, stomp switches and potentiometers to a printed circuit board, and assembled IC components, and external jacks for DC power supply.
-
Completed testing and troubleshooting.
Fixed "Wah" Guitar Pedal

2 DOF Sun Tracking Solar Panel
Summer 2019
-
Wrote Arduino code to track a powerful light source using a matrix of 4 photo-resistors and two perpendicular servo motors.
-
Brackets and housing for all components were designed in Solidworks.
Future Projects
-
Smart mirror, linked to Evernote account, to list word of the day
-
The 'Ant' - Desktop PCB Milling Machine
-
3D-Printed Orrery
-
3D-Printed Scara 3D Printer