I have worked on many projects in and outside of school. Below is a list of projects I have worked on since the beginning of highschool. The projects range from purely code to purely mechanical with a bit of everything in between.
Code
Python
HTML
CSS
I used Vercel to host this Flask-based website on my domain Boozer.dev. Coding this has taught me a lot more about HTML and CSS, and encouraged me to work on my graphic design and UX skills. While initially the website was built using Python, upon loading, Vercel didn't like this load, so I had to transition to building the website and then uploading the built HTML directly. This, of course, is a better and more efficient approach to loading the website that just puts a bit more effort on my end.
WPI
Code
AI
Python
HTML
CSS
Another one of my graduate-level classes about the social implications of artificial intelligence let me explore the user interfaces of AI. Here, a partner and I designed a website initially intended to be displayed on the Pepper robot. The project explored interacting with ChatGPT to tell stories requested of it. We included settings to allow for the exclusion of certain topics, as well as the length and age rating of the stories told. This project taught me to use Flask as well as how to use the ChatGPT API.
WPI
Code
Python
ROS
Robotics
Gazebo
At the end of my sophomore year, I took a course called Unified Robotics IV, considered the most difficult of the Unified Robotics classes. The lab goals were to program a turtlebot (essentially a Rumba with LIDAR) to map a random maze using the SLAM approach and then return to its starting position before being taken to a random spot in the newly mapped maze and having to find its way back to the start again. We had to program C-Space and A* for navigation while selecting new frontiers based on frontier size and distance. These algorithms together made simultaneous localization and mapping possible, and while the words may be simple, the programming was not. After managing the programming, we still had to use a particle filter along with Bayesian probabilities to localize within the map we had constructed while SLAMing. These algorithms were very difficult to code on top of learning ROS, RViz, and Gazebo for the first time. I came away from the class with a deeper understanding of the many challenges involved in autonomous vehicles.
WPI
Mechanical
Electrical
Robotics
Report
My first introduction to graduate-level classes was in Soft Robotics. Soft robotics is an experimental field in which non-rigid materials are combined with traditional robotic actuators and electronics. In this class's lab, I got to be part of a team in which we designed a robotic crawler powered by electromagnets. The design was intended to use magnets both to propel the legs of our crawler and to allow two of the robots to connect at the legs, thus making them modular. Unfortunately, seven weeks were not enough to explore the wide world of magnetics. We had planned to use electropermanent magnets (EPMs) to reduce power requirements and increase the strength of the magnets, but did not have the time to narrow down on a material for them. The project was a great introduction to the world of soft robotics.
Code
Python
As part of the ballroom dance team at WPI, I frequently used the Dance Mentor program, which let newer dancers receive lessons from the more experienced. This program helped us greatly improve, but it was clunky to manage. I decided to take it upon myself to code an automatic system to replace the current manual one. I used Beautiful Soup to read When2Meet pages and create Google Forms based on available times. While the basics are simple, keeping an organized code base and good resources for future members of the team to edit or build on took more work. Using object-oriented programming for this was not my strongest choice, but it did work out. I learned a good bit about working with Google APIs and scheduling, as well as hosting Python code on a Raspberry Pi.
WPI
Code
Matlab
During my sophomore year at WPI, I took Unified Robotics III and the corresponding lab. I learned the math behind robotic manipulators in an earlier class, Industrial Robotics, but in this class, I got the chance to implement it. In a team of four, we programmed forward, velocity, and inverse kinematics for a 4-degree-of-freedom robot arm. Alongside the kinematics, we learned and coded vision to automate the sorting of objects. The class taught me further difficulties involved in inverse kinematics; I naively used geometric inverse kinematics to program the arm; however, using numeric kinematics would have been much simpler after having already computed the Jacobian.
WPI
Mechanical
Electrical
Code
Robotics
Report
In my freshman year at WPI, I took the first robotics class, Introduction to Robotics, and the included lab course. Within the lab, I was in a group of 3 and we had to design a mobile robot to move small balls to the opposing side of a field across a wall. We used parts made by VEX Robotics to build our robots. This was familiar territory for me after competing in VEX back in middle school; however, this time the robot had to be mathematically designed first. This meant computing force requirements for going up a ramp, and torque requirements for the lift we made. This was a new way of doing things for me and helped me learn the benefits of using math to test designs before implementation.
Code
JavaScript
The CE Assistant was a project from one of my close friends, Andy Garcha. He is part of the online Discord community Challenge Enthusiasts (the CE in CE Assistant), where people compete in getting special achievements in video games. For a while, the moderators had a lot of work to do in checking people's achievements, giving out challenges, curating games, and generally moderating the server. Andy wanted to help the moderators and asked me to help him with a Discord bot for their server. To start, we implemented a bot that scraped the various games from the CE website and created a database to keep track of updates and the various challenges surrounding each game. We then found ways of displaying that information within Discord messages and set cron jobs for the bot to run automatically. This project helped deepen my JavaScript and API usage, as well as provided a brief insight into UI design.
Highschool
Code
Java
Sea is an esoteric programming language I made. In my senior year of high school I took a class aptly named "Programming Languages" in which each student created their own language while learning about the principal makeup of languages. My language started from a need to make a pun on the well-known language C and wanting to code in a unique medium. With these goals, I started by making See, a color-based language taking inspiration from Piet. As we worked on these languages, I realized I wanted more than just to make the language from colors; I wanted those colors to look good. With plenty of information in one pixel (3 bytes or over 16 million combinations), I decided to narrow my focus to the blue-green hues with white pixels acting as whitespace. This created an ocean-like picture, and once I rotated the reading orientation to be top to bottom, left to right, the language began to resemble the beach, and thus the language was renamed to Sea. To emphasize this, the GUI I programmed for writing in Sea had a sandy colored background as depicted in the image shown. This class gave me a great understanding of programming languages on a fundamental level, sharpened my Java skills, and forced me to learn to write better test cases.
Highschool
Mechanical
Electrical
Report
In my senior year of high school, I undertook an independent study with a partner on the differences between internal combustion engines (ICEs) and electric vehicles (EVs). For this study, we designed and built a go-kart frame and both a gas and an electric drivetrain for the frame. The frame build involved welding square steel tubes and fastening the necessary hardware into place. The frame included the steering column, front and rear wheels, a braking system, and a seat. When it came to the seat, the small go-kart chair we had available to us through the school was extremely small and uncomfortable, so we opted to use a retired porch swing, as seen in the picture. The ICE was a 40cc gas engine designed for go-karts that was mounted behind the seat and a chain to the rear axel. Since the same frame was used for the electric kart, we chose to mount the two motors where the engine had been, so the power could be transmitted using the same chain. The batteries were located at the front of the vehicle to improve steering. We then tested the go-karts for speed, acceleration, steering radius, stopping distance, and more. These were then analyzed and compared to the general ICE and EV markets in the final report and presentation. As a bonus, we also researched the impact on the climate of both styles of drivetrain.
Mechanical
Electrical
CAD
Robotics
Swerve is a commonly used drivetrain within the First Robotics Competition community. The basic concept is to use powered caster wheels to provide omnidirectional translational movement while also allowing for rotation. While there are commercial swerve options for FRC, my team opted to make our own. This decision allowed us to tailor the swerve modules to the yearly game. In the 2023 game, we used this to create a tall variant, which gave us better clearance over the bumps in the field. Designing the mechanisms required for this took us four years. It started as a passion project for another teammate, but by the third year, we were using them on the robot. The modules we designed were by no means perfect - they often broke - but we did win a design award in 2023 for using a custom swerve drive. Over the four years of work, this project taught me a lot of CAD and design skills, such as using master sketches, keeping a BOM, and designing for manufacturability.