ITS OFFICIALLY OVER
GUYS 😱 It's finally over. I graduated with my bachelor's!!! 🥳🥳🥳 It's a bit bittersweet because I truly have enjoyed my time at UF, but i'm super happy that all those years of work and sleepless nights paid off. Shoutout to the best teachers of all time Dr. Sarvenaz, Goatveci, and Kapoor. Shoutout to the best Student Orgs of all time too, SSD, OSC, SEC, and WiCSE (in no particular order). Now that that's all done, I'll drop some updates on what I did during my last semester at UF!
Team RenderWare Senior Project - Ruda
Liam Mckenna
,Darren Peters
,James Shen
, andKathy Chan
to work onRuda
!!!Ruda is essentially an OpenGL-like Rudimentary Graphics API designed and implemented by our team. It uses a driver-agnostic hardware acceleration library called Gallium to send rendering commands to the GPU. These commands were primarily concerned with rendering stages like primitive assembly, vertex shading, fragment shading, post-processing, and so on. We also developed a suite of demos to go along with the project, to show off what it is capable of.
We used the open-source implementation of OpenGL by the Mesa3D org as our point of reference for learning how these Graphics APIs work under the hood. We also made a small utility library for window management, which basically works the same as GLFW
It was an awesome project, but unfortunately we were not able to finish it. We were
extreeeeemely close
, however. The main issue that prevented us from getting everything to work was the complexity of having our solution use Gallium (the same library used in Mesa3D's implementation of OpenGL!). We had decided some time around the middle of the semester that we did not want to implementprogrammable shading stages
, as this would require we implement our own shading language (and compiler!). We severely overlooked the fact that OpenGL, the API that Gallium was built for, leverages these programmable shaders and, as such, these are hardcoded into Gallium. Essentially, Gallium expects some form of compiled shader in the form of SPIR-V bytecode, to be lowered to address space for use in the vertex and fragment shading stages.However, I'm really happy with how far we got, especially considering most of us had
Zero
experience with graphics programming prior to this project! I also worked on a little mini-renderer on the side in case we needed something to fallback on if the project ended up not working out. Here's a picture of it in action!Graduation
I officially graduated on May 5th! Got to see some of my SSD buddies one last time at the final ceremony. Got to eat at
Seoul Pocha
,BJ's Brewhouse
, andWORLD OF FOOD TRUCKS
at Orlando. Honestly there's so much Puertorrican food there it was incredible. Here's a picture of a crazy ahhh Frappe I got w/ Lilly.What's Next
Work 👁️👅👁️. The plan now is to work as a software/web engineer and develop my skills and continue learning new things. I was fortunate enough to land a Frontend Engineer job at ALTR, where I've been working for about two weeks. So far this has been the best workplace ever. There's no shortage of problems to solve and the people that work there are incredible. Really hoping to make an impact and deliver features that users like 🥳.
Also hoping to continue learning more about software in general. Right now it'll just be reading up on stuff on my own time outside of work. I'm considering going back for a Master's, but that'll probably be a year from now. Right now my goal is to learn more about system design and infrastructure tools (Terraform is used a bunch at ALTR, so I want to get some more hands-on experience w/ it). Right now I've got Designing Data Intensive Applications and The System Design Primer on my reading list.
Last but not least I plan on playing videogames, hanging out with friends, and figuring out my living situation lol. Hoping to stream a little more often too :D.
That is all. Thanks for reading, see you on the next one 😈