Ray tracer supporting geometric primitives (spheres, planes, and triangles) and meshes imported from .obj files, allowing for rendering textures, reflections, refractions, and customizable BSDFs.
OCaml
Developed a C-like language and a compiler which allows the language to run inside the Desmos graphing calculator. Tested all components directly using browser automation.
Python
Pytest
Selenium
Implementation of the Deep Image Prior (DIP) network and Double-DIP framework, which were applied to a wide variety of inverse problems including denoising, inpainting, and watermark removal.
Python
PyTorch
My dotfiles for pretty much everything I do on a computer. Contains configs for Neovim, Spacemacs, Zsh, Tmux, and more.
Lua
Zsh
Convert images into a series of equations for plotting on a graphing calculator. This approach detects uniform regions in an image and calculates Fourier series representations of their outlines.
Python
Command-line tool to help with resume generation and management. All relevant data is stored in a single location and resumes can be produced via concise specification files.
OCaml
LaTeX
A web application which allows a group of people to maintain a shared queue of songs more easily than Spotify's built-in feature (at the time). Each individual manages their own queue of songs, while a central server rotates through the queues to select and play music.
TypeScript
Node.js
React
Socket.IO
Simple falling sand simulation written in C and compiled to WebAssembly which can be used as a new tab page in Firefox or Google Chrome.
C
WebAssembly
Emscripten
Clone of the game "Tank Trouble" with better collision handling. I made this because collisions in the original game always felt weird.
JavaScript
p5.js
Personal Website
This website you are currently viewing. Demonstrates my love for the Catppuccin theme.
LiquidJS
HTML
CSS
JavaScript