The goal of this small project was to get some hand on experience applying computer vision as well as some linear algebra concepts.
The face is drawn to a polygon that has been created from several points on the hand and wrist. The face is then made angry or sad based on the determinant of some vectors forming part of that polygon. This was an interesting chance to apply the concept of the determinantbeing the area of a given parralellipiped and worked smoothly after I realised that the coordinate system openCV2 was using had its origin in the top right of the window.
This sparked my interest in augmented reality as when I dove into the field to try mapping my whole body to a 3d model using Google's broader mediapipe library found that the field was incredible young still. The second video is me experimenting with a media-pipe based program that was entirely documented in chinese and only 2 weeks old when I found it.
This project was inspired by reading through Amit Patel's articles on dual-mesh map generation. My goal was to reimpliment the concept from mostly scratch (I used a delaunay triangulation library and a poisson distribution library) in C++.
I made significant progress using this method with just C++ and opengl and was very careful about structing my code effectively. Eventually however, my progress implementing the concept in c++ felt more like i was wrestling with OpenGL than geting a feel for this intersting data structure so I decided to try using someones unity implementation of it to try my idea more quickly more technical details about the C++/OpenGL variant included generation speed etc is listed on it's github page.
I had originally thought that this data structure would be amazing for simulation-style games and so I created a system for spawning random civilisations and their people and letting them traverse the area that worked very well. I am a big fan of the idea of gameplay emerging from complex systems as is the case with things like Tynan Sylvestor's "Rimworld" and Joar Jakobsson's "Rain World" and intend to continue trying my hand at it as more free time presents itself.
In the Unity version, each civilization is spawned inside a random safe biome polygon on the mesh. You can see in the video that the circles representing units are grouped in colours by their civilisation then move independantly throughout other regions avoiding the ocean.
This project was made leading a team of 3 in a 3-hour school hackathon themed around the OpenAI API. The website takes in a prompt to complete the phrase "How to ___ :" and python is used to structure the request to gpt in a way it gives consistently formatted replies. Each step is then fed into DALL-E, the prompts are reprocessed to attempt less error-prone images in response. All of the responses are then returned to construct the WikiHow-style page.
Initially I found the theme of relying on gpt's API a bit too simple, but after doing it myself and having students try their own hand at applying the api, I found that there is definitely still unexplored applications as this technogy becomes more prevalent.
The 3-hour time crunch and GPT theme constraint gave me a renewed appreciation for finding ways to innovate on the basics through their application rather than just their technical makeup.
This project gave an opportunity to challenge the drawbacks of current LLMs and and try to overcome them algorithmically. Takeaways are that double-entendres are to be avoided as they most often lead to unpredictable (and sometimes comedic) results
In addition to the time and technical constraints, I found being chosen to lead the team put me in a unique position to make the most of my groupmates varied abilities. I am happy to say my teaching experience helped tremendously in this regard and I was able to break of the tasks efficiently.
I definitely could not gotten runner-up own my own and I am thankful to my wonderful team!
I have been lucky in that the many jobs I worked outside of tech I believe have prepared me well for the field. This section is mainly dedicated to soft skills as I believe my technical skills as to not overlap in information with the Projects section.
I am currently seeking SWE Internship or Research Assistant roles. If you would like to contact me about an opportunity or talk to me more about my projects please don't hesistate to reach out using your preferred method below!