Undergraduate Thesis: Analysis of NBVH Ray Tracing for Remote Use and for Extension to Dynamic Scenes

Background & Motivation

At the University of Rochester, students majoring in computer science can choose to pursue honors research by completing a handful of additional classes and conducting an independent study with the guidance of a professor. By my sophomore year at the U of R, I decided that this pursuit aligned with my educational goals, so I added the prerequisites for honors research to my four-year plan: First, in my junior fall, I completed the honors problem seminar, which was a small discussion-based class directed by Prof. Lane Hemaspaandra that taught us the fundamentals of conducting collegiate research and that allowed us to meet current CS professors who would be eligible to advise our theses through a series of guest lectures. Then, over the summer and in my junior fall, I completed the independent study portion of my honors research, which involved formulating a research topic and finding the faculty members who would serve as my thesis committee. Lastly, in my senior spring, I completed the honors research process by producing my thesis paper in the style of a scientific journal article, presenting my findings to a public seminar, and defending my work in an oral examination by my committee. After defending my work, I’m thrilled to announce that I received high honors, meaning that my Bachelor of Science from the U of R will be awarded with “high honors in research.” 

For my research topic, I investigated a neural ray tracing acceleration structure developed in 2024 by Phillip Weier and colleagues called N-BVH. When I was initially looking for a professor to advise my thesis, I was struck by the preface of Prof. Yuhao Zhu’s textbook, “Foundations in Visual Computing”, because I’ve always been passionate about visual media like dance, and his description of visual computing seemed to be the perfect intersection between visual media and computer science. Hence, we began emailing back and forth, he agreed to be my thesis advisor, and he told me about a research idea that he had never fully explored: using neural networks to accelerate bounding volume hierarchies (BVHs) in ray tracing. I began investigating the idea, with the help of Prof. Yuhao to figure out which research papers would be interesting to consider, and eventually, I came across Weier’s NBVH. With my learned grasp of the current literature’s progress on using neural networks to accelerate ray tracing, NBVH seemed like an ideal representative work to conduct a deeper analysis on. In addition, breaking down an algorithm like NBVH, doing analysis on what key bottlenecks exist, and determining what implications it would have for future neural ray tracing work seemed like the appropriate scope for an undergraduate thesis. Hence, I finalized this as my topic proposal, and I began to explore.

Below is the full thesis paper I submitted on November 13th, 2025, a description of some of the key takeaways I learned about conducting big projects like an undergraduate thesis, and a photo of me and my defense committee.

The Full Paper

Reflections & Takeaways

Two takeaways I had about effectively conducting research are how important intrinsic motivation is toward forward progress, and how important it is to balance achievable tasks with long-term goals. Maintaining intrinsic motivation for my thesis was especially difficult for me because the only person who was taking the initiative for progress to be made was myself. The only place that undergraduate theses get published to is a somewhat neglected University of Rochester computer science archive, so my thesis was of low importance to computer science administration—in fact, I was often the one pestering the administration to send me forms and the deadline information I needed. In a similar vein, Prof. Yuhao had much more important projects to work on, such as his own research that he was conducting with graduate students pursuing their PhDs in the Horizon Lab, so he would primarily only show involvement to the extent that I asked for help (although he was incredibly responsive and willing to schedule meetings to discuss my project). It also took a lot of persistence to get the University of Rochester research server administrators to grant me access to the fairly integrated parts of the system’s computing network that I needed in order to run graphical displays in the headless environment, and it certainly didn’t help my case when I accidentally caused a temporary security vulnerability on their machine. Even within myself, I knew that I would have graduated just as well without the “honors research” addendum to my diploma, so while the project was on a topic that I was interested in, I had to continually convince myself that it was worth investing all of the effort.

Overall, my decision to conduct a thesis truly felt like a matter of personal choice, and unlike traditional classes that have specific assignments, projects, or exams to complete, the only end goal I had was the vague concept of creating a “paper in the style of a scientific journal article,” which was both liberating and intimidating. What I learned is that having a large amount of freedom surrounding a project intensifies what I consider to be the “rollercoaster of programming,” or the constant oscillation between having a god complex and experiencing imposter syndrome, a phenomenon that seemingly every programmer experiences. When my code was working how it was supposed to, or when I reached a breakthrough in understanding about my research, I achieved a flow state, and I felt like a god with the powers of superhuman technology at my fingertips. In addition, the fact that I was pursuing this project of my own volition made me feel like a truly superior student, seizing my education by the reins. However, when my code started to fail, or when I realized that my breakthroughs had already been discovered, my pride came crashing down in an instant, and I felt like an incompetent imposter who had no business working in technology. At times like these, my motivation for the project would often be extinguished abruptly, and sometimes it would take days before I could muster up enough enthusiasm to start back up again. Overall, what I want to take away from this experience is that having a high degree of freedom in technology projects makes intrinsic motivation for the project essential, and that the effects of the rollercoaster of programming would likely get intensified—with this knowledge, hopefully I can more effectively take on independent projects like this in the future.

 

The second major takeaway I learned about conducting research is the importance of balancing specific, achievable tasks with long-term goals. During the first half of my independent study—perhaps out of fear that I would fail to consistently work on the project without having someone to monitor my progress—I arranged to make progress on a strict schedule of achievable tasks. For example, I forced myself to send a weekly email update to Prof. Yuhao, no matter what—even if it was just an explanation that I hadn’t been able to work on the project because of major exams and projects that I had for other classes that week. In addition, I kept intricate notes to record each research paper that I had read, which research papers I was planning to read, and which parts of the codebase analysis I had completed. Overall, having this strict mindset was a great way to keep me accountable, but at times, it also gamified my project and made me lose sight of the end goal. Since I sent my updates to Prof. Yuhao on Mondays, I often procrastinated my thesis work-time until the weekend, and even when I did get started, I would often stray towards tasks that had specific, reportable outcomes even if they didn’t necessarily align with the overall research objective. For example, I spent almost three weeks reading chapters of Bjarne Stroustrup’s “The C++ Programming Language” textbook since I knew that my project would be written in C++, but since my thesis ended up being mostly theoretical, and only a few updates needed to be made to the actual codebase, I ended up barely leveraging what I had learned.

On the contrary, during the last couple of months of my independent study, I ended up not sending the email updates altogether. On the one hand, discontinuing regular check-ins seemed to foster a more natural progression of conducting research, because I noticed that I would think about my thesis in terms of the actual tasks that needed to get done—such as how I was going to overcome the OpenGL error I was encountering—as opposed to strictly thinking about it in terms of how many hours I needed to get done in order to impress Prof. Yuhao. However, as expected, this lack of accountability also made it difficult to stay consistent about my progress, and as per the rollercoaster of programming, I found myself getting huge mood swings about the accomplishments of my project as opposed to feeling small but steady hits of success. In retrospect, I think that both my former overbearing approach and my latter neglectful approach had flaws, and that it would have been best to strike a middle ground between the two. Perhaps it would have been best to send the email updates, but just at a lower frequency—such as bi-weekly or monthly—so that I didn’t feel pressured to report findings when I hadn’t actually made a significant breakthrough, but so that I also stayed accountable. Alternatively, maybe the best improvements to my strategy would have been to set goals that were more obviously related to my ultimate objective of writing the thesis—such as how many pages I should write per day—although this might have made some of the thesis’s content seem forced in the same way that some of my email updates were. Overall, I’m glad to have completed this project, so that I could learn how conducting independent projects is a careful balance of control, and I hope that I can use these insights to conduct subsequent projects more effectively in the future.

The Defense Team

From left to right: me, Prof. Yuhao Zhu, Prof. Chen Ding, and Prof. Yukang Yang, after I successfully defended my thesis on December 1st, 2025.