Here is a selection of projects I have done over the years. A few are from classes I have taken, and some are from previous internships.
A C++ ray tracer created for a CS4620 Graphics final project, created in collaboration with Jack Greenberg, Aidan Campbell, and Christopher Bakhos. Featuring phong lighting, reflections, transparency, refraction, and many optimizations to make it run fast(er). Definitely one of my favorite projects.
This is my personal website. I put my projects, experience, and my resume on it. It is created using Gatsby.js, a framework for React.js to generate static sites, using the Material UI theme for most of the default components. Click the link to see how much fun recursion is, or see the source code on Github.
Lml is a functional programming language that is compiled into Lambda calculus. It based on the syntax of OCaml, and includes features such as first class functions, recursive functions, n-ary tuples, lists, while loops, sequences, and references. This project was completed for CS 4110 Programming Languages and Logics, in collaboration with Aidan Campbell.
You can try an online version of the same interpreter here or at the link below. You can read the demo here for more information.
This is a food blog I run with my girlfriend. It is a mostly a joke, it is a joke, kind of, but we do kinda take it seriously. We originally wanted to find the best eggs benedict in Ithaca. However, we have since expanded to include more than brunch, and never included a single eggs benedict on our blog. The blog is made with Hexo, a content manager which builds to a static site.
OScrabble is an implementation of scrabble written in OCaml, in collaboration with Tony Yang and Jack Greenberg, created for our CS 3110 final project. It includes local multiplayer, automatic word checking, as well as automatic scoring including bonuses.
TempChamberView is a node.js and express based web interface for a temperature calibration chamber at Wicked Device. This software was succesfully used for 3 years until the company purchased a new temperature calibration chamber.
Critter World is a simulation of critters defined by programs written in Java for a CS2112 final project. Critters can move around a hexagonal world, eat manna, attack other critters, spawn new critters, and mate with other critters. The behavior of critters is determined by their program, which can mutate and chage as they mate and spawn new critters. Critter world includes a functional GUI created using JavaFX.
This project involved writing a parser and interpreter for critter programs, writing a simulator that simulated the world and ran critter programs, writing a GUI, and finally, writing a networked, distributed version of the same program, where a simulation was run on a server and any number of clients could connect to that server to view and modify the world.
Source code not available due to academic integrity.