Rendering of infinite spheres by ray marching with a modular SDF. Implemented using a Fragment Shader on shadertoy.com in 2021, as a senior in high school.
Rendering of infinite spheres by ray marching with a modular SDF. Implemented using a Fragment Shader on shadertoy.com in 2021, as a senior in high school.
In high school, I developed a great interest in Computer Graphics after messing around with shaders on shadertoy.com. At this point, I was already well-versed in programming and had already taken multiple college-level programming courses. Though I already knew I would be going into Computer Science, I now knew what area of Computer Science I wanted to focus on.Â
Going into college, I didn't have any programming courses for the first two semesters, so in between classes, I started learning C++, so that I could easier work with OpenGL, while still working on my shader code skills. At this time, I wrote a basic ray marching framework to use in my learning endeavors. The summer after this year, I interned at RIA advisory, where I developed API's as a full stack developer.
In my second year at the University of Florida, I started taking some programming courses, such as Advanced Programming Fundamentals, Data Structures and Algorithms, and Computer Organization. Digging deeper into Computer Graphics led me to learn about proper GPU programming and I started to develop an interest in how it works on the hardware level. I decided to take some Computer Engineering courses, starting with Digital Logic and Computer Systems. This was completely different than any class I had ever taken before; the fast-paced structure meant I had to learn something completely new every week and be able to apply it in a complex lab the very same week. The exams seemed moderately difficult at first, but quickly I realized we were given 5 questions worth of time for 10 questions. I was struggling. Despite these difficulties, I knew that this was what I was interested in, and I had to persevere. Working together with close friends to study all night in the engineering library (many times that semester), I was able to develop a very strong understanding of the material. In fact, I was one of the highest scorers in the final exam, getting over 100% after the curve, where the average was in the 50% range. Now I knew for sure that I wanted to explore more into hardware, especially after one of our final labs, which was effectively designing a simple CPU. The summer after this, I interned at RIA advisory again, this time going fully into back-end development, and effectively leading a team of less-experienced interns, communicating with an adjacent team of front-end developers.
The next year, in the fall I took Microprocessor Applications, my next hardware course, which was a different direction than Digital Logic. I developed a strong ability to program in assembly (AVR to be precise), and learned about the many important serial communication protocols. Most exciting however, is the semester after this, where I am now. I am taking Digital Design, Computer Graphics, and Programming Language Concepts (relevant courses listed only). In Digital Design, I developed a good basis in VHDL, and am excited to work on our final project, which is a complete MIPS processor. In Computer Graphics, I have already done two projects, and I am so excited to finally put my GPU programming skills to the test. Finally, in Programming Language Concepts, we are developing both an interpreter and a compiler. I have already finished the interpreter early, and am working on starting the compiler.
Additionally, during Fall 2024, I worked as a TA for Data Structures and Algorithms (DSA), grading assignments, and assisting students with assignments and concepts during office hours. I did not TA this semester to focus on my courses, since I have been told all of the courses I am taking this semester are very difficult, from past students. However, having shown my skills in Fall 2024, in this upcoming Fall 2025, I will be TA'ing for DSA again, this time with a discussion, where I will get to teach a room of students, and hold quizzes.
Outside of classes, at the moment, I am learning Complex Analysis, developing a CPU-based rasterizer (to better understand the graphics pipeline), and starting to look into learning Vulkan. I included some of my select recent projects in the main portfolio page.