Austin Funk
📻 Computer Engineering at Brown University
Who I Am
I'm a rising senior (class of 2025) studying computer engineering at Brown University. My areas of interest include 3D graphics, systems programming, web development, robotics, and high performance electronics. I have enjoyed being a teaching assistant for three computer science courses, CS19, CS300, and CS1230. I'll be returning as a teaching assistant for Introduction to Computer Graphics this fall and am excited to also be a teaching assistant for ENGN1630, Digital Electronics Systems Design. I've previously worked for Hologic as a systems engineering intern, in the Interactive 3D Vision & Learning Lab as a funded undergraduate researcher, and for Barclays as a technology developer in support of large scale loan trading. A few of my projects are featured on this site but feel free to visit my Github pages here and here for more. Beyond academics, I'm an Eagle Scout, have taken part in teaching and service initiatives via IgniteCS at Brown, and I play the alto saxophone.
If you're interested in my work or would like to learn more about what I do, feel free to reach out via LinkedIn or by email.
P.S. The cows rotating in the background are from one of my graphics projects. One of the features from this project allows users to simplify complex meshes while retaining their general context. The pink cow includes 5804 unique triangle faces while the yellow cow includes only 804 faces, reducing the file size by over 87%.
🔠Projects
Physically Accurate Simulation
During my sixth semester I took CS2240, Advanced Graphics, which included five intensive projects, including an open ended group implementation and extension of a recent graphics paper. One of these projects was designing and building a physical simulation engine using the finite element method (FEM). This project explores advanced mechanics, collision detection and resolution, surface mesh extraction, and a system-solver design paradigm. The engine was built using primarily C++ and OpenGL.
ReSTIR/NRC
My final project for Advanced Graphics was an implementation of ReSTIR GI and NRC for vastly improved path tracing both visually and in performance. We primarily used C++, OptiX, and CUDA to implement both papers on top of a preexisting path tracer implementation. The left side of the video is path tracing with our improvements and the right side of the video is path tracing without ReSTIR and NRC.
Computer Science Concentration Manager
With a team of three others, we built the Computer Science Concentration Manager for our final project in CS32. Below are two screenshots of the interface, one without the information boxes displayed and one with the boxes. The goal of the project was to provide computer science students at Brown an easy-to-use tool to non-deterministically generate a schedule based on the user's preferences and previous courses.

The tool provides many user tested and suggested features, including a custom graduation year, a dropdown with different pathway options, a search bar with an up-to-date database of courses that can be used to fulfill the computer science ScB requirements, a table with different categories to sort courses into, an interactive schedule that allows for easy and intuitive editing, and several more quality of life features. Using these constraints, a backend optimizer built using Google OR-Tools creates a suggested schedule that differs with each generation, even when given the same inputs. The backend is written primarily with Java, while the frontend uses HTML/CSS/TypeScript with React, Node.js, Jekyll, and more.

Itsy Bitsy Spider
My final project for CS1230 was Itsy Bitsy Spider, a user-controlled spider that uses inversed kinematics to animate its legs. The project utilizes OpenGL and C++ as its primary technologies. This was a partner project that we designed to further our skills with graphics programming. The idea to use inverse kinematics is borrowed from the field of robotics and involves solving a set of complex equations to determine the angles between leg segments given the position of the foot and the shoulder.

Maze Solver
My maze solver is built using Python and PyGame. The project provides a visual and interactive demo of Dijkstra's algorithm and gives intuition into how it works. The program allows users to change the size of the board, randomly generate mazes, create and edit mazes, place custom start and end points, clear the canvas, and run/rerun Dijkstra's algorithm. The project has states for both possible and impossible maze designs, using a wave of blue tiles to indicate where the algorithm has searched and a yellow path to indicate the shortest path to solve the maze. The project is built to be easily extensible to incorporate other search algorithms, such as A* and Trémaux's algorithm.

💼 Work History
Intern, Technology Developer
Barclays
For 10 weeks between my junior and senior years (2025), I worked at Barclays, one of the largest and oldest banks in the world. I worked on the wholesale lending team, developing new requested features for high volume loan trading, notably a security feature that prevents unsettled trades from being prematurely closed. The primary languages and technologies I worked with were Java, TypeScript, React, Spring, Hibernate, and AWS.
Intern, Systems Engineer
Hologic
For 13 weeks between my sophomore and junior years (2024), I worked at Hologic, a medical devices manufacturer and innovator. I designed and implemented a desktop application that allows engineers and technicians to quickly and easily change the device settings of one of Hologic's diagnostic machines. This project was unique for me in that I was able to work directly with the end users of my product in order to add features and improve the tool to fit their needs. The technologies used include WPF, C#, and SQL. Most of the key features are showcased in the video below. I have also linked a powerpoint presentation that dives into my other projects and was presented to senior leadership at Hologic, including Vice President of Research & Development / Innovation Mike Quick, including a 24/7 hardware bug surveillance system and performance measurement tool. I was also featured in an internal article on Hologic's website and on the Brown Engineering website for this internship.
Undergraduate Teaching Assistant
Brown University
I was a UTA for CSCI 0190 for the Fall 2022 semester and was a UTA for CSCI 0300 for the Spring 2023 semester. My responsibilities for CS19 included grading 5 to 10 programming assignments for 4 hours per week; running weekly 2-hour labs for ~25 students on various topics, including Git, Linux commands, SQL, and more; holding 2-hour weekly office hours to help ~8 students with conceptual and practical questions; and expanding the class's mentorship program, which included mentoring 5 students. As a UTA for CS300, my responsibilities included holding project and lab specific office hours for 3 hr/week for assignments focused on C/C++ programming, multithreading, and more; grading ~12 project submissions weekly or biweekly, depending on deadlines; and helping students with debugging through the class's online discussion board. For the Fall 2023 semester I was a UTA for CSCI 1230, Introduction to Computer Graphics. I worked on several course improvements including new scenes for grading and testing, I held office hours and one-on-one grading sessions, and mentored three final project groups from conception to product.
iD Tech Camps
This role was a lot of fun, I acted as a mix between camp counselor and programming instructor, which required me to actively work for ~17 hr/day Sunday through Friday. While a lot of work, I found the experience to be very rewarding. I had to opportunity to teach courses on machine learning with Python to high schoolers, Java programming for high schoolers, game design with Roblox to middle schoolers, and Scratch to 7 and 8 year olds. The class sizes ranged from 5 to 12 with the whole camp being a maximum of around 60 campers. Some campers would spend the night, so my team and I would be responsible for feeding and taking care of ~20 campers per week, 24/7. I got to work with students of all backgrounds and ability, and learned a lot about teamwork, leadership, and education.
Biocore LLC
Biocore is a biomechanics lab contracted by the NFL to develop safety standards for various equipment, most prominantly helmets and cleats. This was a part time position in high school that I got because my dad was a part of the relatively small company. I'm including it here because it was my first working experience and gave me a lot of insight into engineering as a profession. I got hands-on experience with 3D printing mouth scans of NFL players for specialized mouth guard manufacturing, construction of multiple types of specialized equipment (including trays of artificial turf and mouth guard sanitation cases), and hardware testing with Python and Jupyter Notebooks.
🔬 Research
I currently work in the Interactive 3D Vision & Learning Lab (IVL) on text-to-motion for 3D hand actions using diffusion and LLMs. This position was originally funded via an UTRA award under Professor Srinath Sridhar. I've also worked in the Humans to Robots lab under Professor James Tompkin with a PhD student and other undergraduates. We worked on expanding the VR teleoperation project, applying developed technology to a different VR headset and robot, specifically the Oculus and Boston Dynamics SPOT. Some of the key technologies involved include ROS and Unity.
Thanks for visiting!