In the summer of 2023, I was contacted by Dr. Nate Veldt, my professor for CSCE 411: The Design and Analysis of Algorithms.
He was reaching out to see if I would be interested in working with him on a research project for the coming year, specifically a graph algorithm visualizer tool to create animations for lectures and presentations.
Dr. Veldt was an incredible professor when I had him for 411, and I was onboard the second I received his email.
As it turned out, Nicholus Campbell, one of my closest colleagues at TAMU had contacted Dr. Veldt and agreed to work with him on a hyper-graph visualizer.
Because of this, Nick and I were able to work very closely during our first semester as student researchers, and were able to tackle the several challenges with creating a project from scratch using a language and framework previously unknown to us.
By far the most difficult part of the project was getting used to the Julia language, and the Plots.jl package.
There were many things to get used to and limited time to get used to them.
The project ended up working quite well, but there are several issues that I would fix if I could start over again. Particularly:
This project was my final assignment for CSCE 450: Computer Animation, which was taught by Dr. Shinjiro Sueda.
I decided to take the honors version of the course in order to fulfill my "high-impact experience" graduation requirement.
The only difference between the normal and the Honors course was one extra requirement:
the final project had to incorporate some animation concept that "went beyond what was covered in the course."
The first topic that we covered was keyframing, which is a technique in which a 3D model transitions between
two different positions and rotations in space over time. I decided to expand upon this idea by using "dynamic keyframing,"
which would essentially be predetermined keyframes that would vary in position and duration based on the ship's speed, position,
and direction over time.
The Gameplay is very simple. Users can maneuver the ship with the WASD keys and can shoot a laser beam by pressing the J key.
The ship can also perform maneuvers, such as a starfox-style "barrel-roll" in the left or right directions using the Q and E keys, respectively.
Users can also do a sommersault move by pressing the SPACEBAR key.
The goal of the game is to destroy all of the asteroids on the map.
Whenever an asteroid intersects a laser beam, the asteroid will either split into two smaller asteroids, or explode.
The project also features particle effects, and they can be seen with the spaceship's exhaust trail and asteroid explosions.
Although this project took a little too much time, I received second place in the class.