Hero

Hello World!

Photos taken by me with a Sony A7iii

Summary

   I am a Senior Year Software Development student at the University of Utah. My degree has an emphasis on game development, and I have extensive experience with game engines such as Godot and Unreal Engine 5. I am also the programming team lead of Utah Student Robotics, a student organization that competes in the annual NASA Lunabotics competition against 50 teams. Factoring in my coursework and experience as a Teaching Assistant for the School of Computing, I have formidable talent in multiple domains of software development along with the confidence to communicate and collaborate effectively.

Utah Student Robotics

The competition is simple. Move the most amount of material from the excavation zone into the dump zone, and don't hit any rocks on the way. In 2024, we did just that. We moved the most amount of moon dirt (LHS-1) out of all 50 teams from universities around the US and the military. My main contribution was implementing all of the software that allowed 2 pilots to simultaneously commandeer the robot wirelessly and in real time using 6 camera feeds streamed using FFmpeg over RTP. We also received points for being able to dig and dump autonomously using state machines. Due to our robust and noise-resistant communication protocol over UDP, we had the smallest bandwidth usage whilst having enough camera coverage and fidelity to avoid using the arena provided cameras.

Technology

The entire robot is programmed with Rust. tokio is used as the core model of execution, and wgpu with compute shaders written in WGSL is used for any GPU programming. To promote rapid prototyping, a feature-complete robotics framework was developed from the ground up in the footsteps of the Robot Operating System. This framework was called unros and is now superceeded by urobotics for the 2025 competition. The mission control software is developed in Godot and is used to visualize the robot's state and direct the robot's autonomous actions.

rust wgpu
tokio godot

Game Development

There are about 3.22 billion self-reported gamers around the world, and the market size is about 220 billion USD and only going up. Despite how lucrative this might seem, I studied game development at the University of Utah because I wanted to make games that I would enjoy playing. The first proper game engine I learned was Godot and it is by far the engine I have the most experience in. Here at the U, I have taken courses in Unreal Engine 5 and GameMaker, and am now in Senior Capstone using Unity. Shown below is a game I made in my Traditional Game Development class.

Bola Screenshot

Bola was the first game I made in college. It was a 2D physics platformer made in Godot that underwent several iterations, many of which I wrote during my classes. My friends enjoyed it and influenced its development, so of course the next natural step was to add leaderboards and multiplayer. The leaderboard database API was implemented in Rust with Rocket but have since been taken down. Multiplayer was never finished. I subsequently practiced developing multiplayer with an FPS shooter, also in Godot, and was able to have 2 players and a spectator fight against one AI, but that was the extent of it.

Web Projects

0.5x 5x

Masses

3 Body Problem

A simulation of three gravitational bodies written in Rust and compiled to WebAssembly. The simulation is done on the GPU using WebGPU through wgpu and wgsl. Rapier2D was used to implement physics collisions. The color of each pixel represents which body has the most gravitational influence. For example, the region near the blue circle is shaded blue as most of the gravity is coming from the blue circle. However, at the exact center of the canvas at the beginning, the color is black as the gravity from all 3 bodies cancel each other out.

Thanks for taking the time to check out my website. This may be my largest frontend project so far.

If you are a recruiter, consider checking out my resume.

If you are interested in viewing the source code, check it out here.