About Me!
I am a PhD student primarily advised by Adrian Sampson. Once upon a time, I worked in the hardware industry where for four years, I developed very early-stage pre-silicon software models of architectural features for graphics and machine learning. Through a combination of debugging and performance optimization work, I also improved the simulator's ability to run the latest full DX12 applications. Before then, I had the fortune of being advised as an undergrad by Kayvon Fatahalian while working on (bad) automated optimizations for the image-processing language Halide. I also briefly interned at a fruit company where I worked on the Metal Shading Language frontend compiler writing a (bad) validator for its intermediate representation. Before undergrad, I was a hobbyist game designer and (bad) artist that accidentally entered the world of computer graphics due to the trap of deciding to make my own tools and game engine. As a hobby, I still occasionally model 3D environments, compose music, and build custom tools for the former with occasional relapses into writing real-time renderers to stay up to date.
In my graduate career, I am building tools to reason about the messy hardware-software boundary in real-time graphics and close the gap between artist intent and hardware designs. This is a space historically shaped by telephone games, information hiding, and chicken and egg problems across the stack, and one where the default approach to API design puts the rendering engineer and hardware engineer in false tension, often in ways that have direct impact on artist workflow.
I am particularly focused on unifying geometry representations and programs (rendering and simulation) operating on that geometry, providing a holistic view of both data and code that helps everyone from (primarily) artists to (secondarily) hardware engineers navigate the space of trade-offs.
Teaching Assistantship
- TA Spring 2022: (Cornell) CS 3410 Computer System Organization and Programming
- TA Fall 2021: (Cornell) CS 4620 Introduction to Computer Graphics
- TA Fall 2016: (CMU) 15-317 Constructive Logic
- TA Spring 2016: (CMU) 15-453 Formal Languages, Automata, and Computability
- TA Fall and Spring 2015, Spring 2017: (CMU) 15-210 Parallel and Sequential Algorithms and Data Structures
I have also had the joy of mentoring several interns and undergrads across my professional and graduate experience.
Collaborators (listed reverse chronologically)
- Stephen Verderame
- Mateo Guynn
- Mia Daniels
- Dietrich Geisler