CipherIt Hackathon (2020)
CipherIt was made during a 36-hour KnightHack Hackathon competition. The team and I created a variety of encryption algorithms that convert phrases into encrypted messages and revert them afterwards. This being my first hackathon, I had a great time and got a lot of experience using Git and Github to let us all work on the project simultaneously. Here's the published project on Devpost.com. CipherIt is an encryption program that provides the user with four main options:
Encrypting a string of text the user inputs.
Decrypting a string of text the user inputs.
Encrypting an image the user inputs.
Decrypting an image the user inputs.
We coined the term "Pyctography" to describe the latter two options, and this is reflected within our program. In its current state, CipherIt offers Caesar, Atbash, Vigenere, and Numeric encryption methods when encrypting and decrypting strings of text.
Self-Balancing Machine Learning (2020)
I trained AI to learn how to stand up straight in a virtual physics engine (Unity) through machine-learning, using only humanoid appendages and joint/hinge rotations. Here's the ML/AI paper I wrote on the research and experience of the training.
Physical interactions within a virtual environment is one of the more difficult items to teach an AI. During the training, I learned a lot about optimization in the realms of machine learning. At first, I gave the agents full control of the degree/rotation of their lower body. I then realized this was a poor approach. I then made it that the ankles, knees, upper legs and hips could only make at the most 6 fixed degree decisions at time, dependent of the angle of the waist. I went from 52,000,000 decisions the AI could make to approximately 1,300, rapidly speeding up training.
Employee Database (2020)
This production project was a junior-year college project I spent all semester on in Object Oriented Programming (COP 3003). The program allowed an 'employee' to establish a new product with the name, manufacturer, and type of product it is. In addition, after creating the product, it would then be sent to an SQL H2 database to store all products made. On the production tab, an employee can set how many new sets of that specific/selected product have been put in stock by adding a 'quantity' of items. These items are then logged with the date, serial number, product number, product ID, and username of the logged-in employee who inputted it. All in all, this was a great experience to experiment with SQL databases and intellij UI programming. Here's the link to the Github project.
VRBlitz Roblox Virtual Reality (2020)
VRBlitz was an experimental building VR game I made in Roblox over my Sophomore summer of College. Here's the link to the roblox game: VR Blitz. Since Roblox is made with LUA, it was a great experience learning the language. I can now say that it's extremely easy language to comprehend and I definitely consider it a language I now know exceptionally well.
At the time of developing the VR game, Roblox's virtual reality documentation was- well, nonexistent. I had to somewhat reverse-engineer their API to attach the players head to the position and rotation of the VR headset that the user was wearing. I also wanted it to feel more unique for the VR players so the head model actually becomes the head of the player that joined the game with the VR headset so you're identifiable. In addition, the hands and head change to the color of the VR user's skin tone for a slightly more immersive, personal experience.
Here's the complete code of mirroring the movement and rotation of the VR user's headset and hand rotations, as well as buttons pressed for specific hand gestures. This is excluding the vast amount of other methods being called to have these movements and rotations be replicated across the network to all other clients. All together, the Roblox game's written code is approximately 750 lines.
FGCU Horror Research (2020)
At Florida Gulf Coast University, under the Virtual Reality VIPER department, I've been conducting virtual reality research to learn what makes a virtual reality experience feel more immersive through the route of horror. The project will undergo tests in which users will walk down a haunted-walk, linear route of a map to see how they perform under certain constant variables such as sounds and visuals. Factors that will be tracked will be heart beat, player movement/jitterness, vocals, and etc.
FGCU Drone Research (2021)
At Florida Gulf Coast University, I'm developing a drone simulator that's fully physics based to help teach ideal users such as construction workers to use a drone and get a fundamental idea on how to expect the controls to work in a real life scenario. The drone uses a self-balancing algorithm to simulate real mordern-day drones that have similar software. When the propellors on either side of the drone have different heights, the drone detects the lean. It counters this with a torque-force push in the opposite direction, multiplied by the distance vertically between the opposite propellors. The drone also has keeps track of the nearest possible-hazard, calculating the distance between itself and the entity. When the drone is within a distance considered unsafe of the entity, the drone's propellors turn red, indicating the user's failure to stay away from the hazard.
The presentation of the research was the #1 runner-up for best undergraduate research at Eagle X.
Arduino Assembly Traffic Light (2020)
I developed an assembly arduino traffic-light program that runs through a 3-light cycle: green, yellow and red. When the button is pressed on the bread board, the light goes to red, regardless of what state it's in. This is supposed to simulate a pedestrian pushing the crosswalk button on the side of the road. This final project was for my junior year assembly course, Computer Organization and Assembly Language Programming. (CDA 3104)
I set up the first portion of the interrupt to have detect the button press and additionally set up the LED’s in port B. I have a basic lightloop method that calls 3 other methods in sequential order: greenlight, yellowlight, and redlight. At the end, it loops the lightloop method again to cause an endless cycle. I wanted to make the program was small and as optimized as possible, so I had each light change the bit values within Port B, where the LED’s were connected to, all in just 2 lines. For instance, to make the green light turn on and the yellow and red to turn off, the line would be “LDI r20, 0b00000001”. Then, simply ‘out’ it to update it within Port B. Below is the cruit layout that I designed:
Blix Multiplayer Game (2021)
Blix is a work-in-progress sandbox multiplayer game that lets users host and join servers with a variety of different types of game-modes. Build what you want, play what you want. The sky is the limit! (The sky is not actually the limit.)
Blix is the biggest personal project that I have ever worked on. I've spent years experimenting with ideas for the multiplayer sandbox game. Blix is in early-access on steam. You can follow the game's progression on Discord and view its roadmap here.
I challenged myself to create a horror game within 48 hours that generates a random map on each start. I wanted to test out publishing projects onto Itchi.io to allow people to test and play the game. I got a few reviews and even had a gaming commentator review it. Here's the project, Floors, on Itch.io. A basic AI tracks down the player, ending the game. The user's objective is to collect 10 items randomly placed around the map before the monster discovers their location.