Capstone
For lack of a better descriptor, these are broader, extensible projects.
-
photon: path tracer, using BVH tree construction, SIMD acceleration, and multithreading.
-
paxos: generic state machine replication via the Paxos consensus algorithm, along with test harness and basic chat program.
-
gnocchi (CS 4621 course project): Minecraft-like read-only multiplayer voxel server and WebGL client.
-
cinema-pop (CS 4300 course project): move recommendation site using TFIDF on IMDB/TMDB movie summaries and KNN.
Conceptual
In contrast, these are smaller projects to explore specific ideas.
-
hungarian: the assignment problem.
-
rubik: 2x2x2 Rubik's cube solver.
-
synth: software synthesizer.
-
simplec: simply typed lambda calculus with extensions.
Useful
Unlike everything else on this page, I use these tools regularly.
-
tock: digital clock for the terminal.
-
tmux-copy: personalized (and fast) tmux-fingers clone.
-
mc-suite: Discord bots for Minecraft server management.
-
marco: naive "dynamic DNS".
Competitive
These are entries or solutions for various programming competitions.
-
advent-of-code: Advent of Code framework, with caching command-line client for submitting solutions and fetching input, problem description HTML to Markdown converter, and miscellaneous library code.
-
icfp-2020: ICFP programming contest for ICFP 2020, placing 42nd.
-
halite: Halite II and III bots, placing 57th and 348th, respectively.
-
battlecode: Battlecode 2018, placing in top 32.
-
project-euler: Project Euler solutions.
Educational
These are things I wrote as an undergraduate TA.
-
discussion-sp19: additional slides and instructive exercises for teaching CS 3110 discussions.
-
discussion-fa18: same as above, for Fall 2018.
-
submission-checker: Cornell CMS bot to validate student submission format.