Projects

Raytracing in "one weekend"

More like in several weeks, an hour or two at a time for me lol. Another Rust buildout of a classic C++ graphics tutorial, this is the project I'm working on now. I'm intentionally moving rather slowly and trying to understand the math while some Recurse friends and I make our way through the raytracing chapters of Real Time Rendering. Hopefully by the end I'll get the chance to mess around with the more complicated algorithms in RTR, but for now I'm working on translating C++ headers to idiomatic Rust lol. Check out my progress here!

screencap of a simulation of the double slit experiment. simulation is in 70s colors with adjustments for wavelength, slit separation, slit width, distance to display screen, and light or particles. display screen is shown with a particulate interference pattern.

Double Slit Simulator

I missed my undergrad physics program, or at least I missed the physics part, and decided to go back to the classics for my first GPU-based graphics project.

screencap of a simulation of the double slit experiment. simulation is in 70s colors with adjustments for wavelength, slit separation, slit width, distance to display screen, and light or particles. display screen is shown with a particulate interference pattern.

This is a sim of the double slit experiment, a classic physics experiment demonstrating the wave-like/probablistic nature of particulate matter. (I also included a light double slit experiment, though for light the classical understanding of EM radiation as a wave makes the same predictions and thus is less exciting lol.) It's coded up in Bevy with shaders in WGSL and GLSL, and you can access a moderately buggy WASM version here, or download the desktop version here. If you've got a physics background, probably at this point you're squinting and going "waaaiit a second. Electrons are not in the visible light spectrum, and their de Broglie wavelength is certainly smaller than the 400-700nm range. What kind of simulator is this!" To which I say: so true lol I need to add onto the caveats that the scale and visuals here are misleading. The equations themselves should be the correct ones for particle interference, but I need to go back and polish up the edges and add a bunch of "CAVEAT: electron interference patterns can't be seen by the naked eye" messages, etc.


Rust Graphics Engine

A basic software renderer, my first Rust project and my first graphics project.

You can check out my writeup here! and take a look at the code here.

gif of a software renderer rendering a rotating mesh of a pink utah teapot, with basic shading on a plain blue background

It's a basic software renderer I wrote to get a handle on the basics of rasterization. Modeled off of javidx9's excellent C++ graphics engine tutorial.


(Old) YelpCamp

impeccably rendered mesh of utah teapot, now rotating!

This is the first full stack web project I made, back when I was learning web development. It's a boring CRUD app, but it taught me the basics of authentication/authorization, basic sanitation of user inputs, routing, etc. It's modeled off a Colt Steele Udemy course I took; I also added on custom error-handling and client- and server-side validation to make sure nobody was uploading 1000s of images to my free cloudfare account, lol. Check it out here, see if you can spot the easter egg. . .