Projects
A collection of passion projects spanning emulation, circuit simulation, hardware, graphics, compilers, and fun creative experiments. Each project represents a deep dive into technology, to learn and grow.
Safe Cracking Robot
Built a chassis and custom PCB controller board to help unlock a safe. Don't worry, it's a friend's safe left behind from previous owners of a newly bought home! Algorithm is a brute-force approach, but with several optimizations that reduce the per-combination check to ~1 second.
Screenshots
Click to view
Fermentation Fridge Controller
Created a custom PCB and PID algorithm to control the temperature of a refrigerator used for fermenting homebrew beer. Successfully created a few good beers. We don't talk about the bad beers...
Screenshots
Click to view
Click to view
Click to view
Click to view
GameBoy Emulator
Created a fully functional Game Boy emulator with working disassembler, stepping debugger, memory inspector, and sprite/"Pixel Processing Unit" inspector. Complete with cycle-accurate CPU and interrupt emulation.
Screenshots
Click to view
Click to view
CoreTCG Card Scanner
A Magic: The Gathering card scanner using Apple's computer vision models and networking to automatically determine the price of card collections. Found solutions to reduce the search-space, as the cards have yearly permutations that look subtly different.
Screenshots
Click to view
Arduinix
A multi-level, top-down space shooter game designed to fit within 4KB of RAM. Targeted a "mini console", the Arduboy, with a screen resolution of 64×128 pixels. Focused on CPU and memory efficiency. Final game binary: 2,385 bytes for loaded executable, 151 bytes left for stack (93% usage), 18,656 SRAM bundled executable (65% usage).
Screenshots
Click to view
Conjurcraft
A fun little board game created with my nephew. Started as a game written on cards, for fun with family, but ended with an online implementation of the full rules.
Screenshots
Click to view
Click to view
Click to view
Click to view
Click to view
Laser128 Apple ][ Clone Restoration
Restored the electronics, keyboard, display, and plastic molding of a Laser-128: a famous 1980s Apple ][ clone. Ported Ardunix from pseudo-C++ to C89, fitting within 2KB of total RAM.
Screenshots
Click to view
Click to view
Click to view
Rotating Cross Optical Illusion
Implemented an optical illusion in a stand-alone shader.
Screenshots
Click to view
RED FANG - No Air
Implemented a visual effect seen in a music video, through a standalone shader.
Screenshots
Click to view
Snake-on-a-shader
Implemented the classic "Snake" game, but through a standalone shader.
Screenshots
Click to view
C3208 Retro Computer
Ongoing project where I've developed a toolchain to synthesize PCB boards, using discrete TTL chips, from my own hardware description language. The toolchain can model, simulate, and layout these elements. I've implemented an ALU, memory control unit, and continue to work towards a working 8-bit CPU. The 8-bit CPU is well-defined, has an emulator, compiler, and can be gate-level simulated.
Screenshots
Click to view
Click to view
Click to view
Click to view
Click to view
Digital Top Hat
A wearable LED strip display integrated into a top hat. Created custom PCB design for power and wireless control. Could draw letters, show light-show, or animate for fun.
Screenshots
Click to view
Click to view
NeoGeo Arcade Cabinet Refurbishment
Refurbished a NeoGeo 1990s cabinet. 140 Games-in-One! Professionally printed a new controller board, replaced all controller parts & electronics, cleaned and repaired original main board.
Screenshots
Click to view
Click to view
Click to view
LCD Display Switcher
A toy hardware project to show how to directly manage an LCD's control pins.
Screenshots
Click to view
QuadGame
A C++ implementation of Quadradius, recreating a beloved childhood strategy game with modern C++, networking, and extensive unit testing. Game state was deterministic and hashable to protect against client-side exploits.
CoreBasic Language
A complete BASIC programming language implementation with compiler and virtual machine runtime, built from scratch for scripting support in other projects.
Screenshots
Click to view
SimpleJIT Compiler
A BASIC-like language with Just-in-Time compilation targeting ARM64 architecture, exploring modern JIT techniques and native code generation. Compared performance of fibonacci algorithm between interpreter and JIT solution: 1,000x speed improvement!
Screenshots
Click to view
Click to view
Click to view
Click to view
SimpleMalloc
A high-performance memory allocator implementation focused on speed and efficiency, exploring advanced memory management techniques. Weekend project for fun.
Multi-Threaded Ray Tracer
A SIMD-enabled, multi-threaded ray tracer with real-time preview capabilities, supporting complex lighting, textures, reflections, and soft shadows. All based on the nice "Ray Tracing in One Weekend" book series.
Screenshots
Click to view
GameBoyGPT
Small experimental use of ChatGPT API to play Pokemon Blue via Game Boy emulator. Explored directly sending image, parsing the screen with OpenCV, and memory analysis to track success. It was not very effective.
CoreGlyph
An experimental arena for testing different glyph rendering strategies, focused on CPU side optimizations relating to multi-threading, SIMD, and CPU cache behavior.
Screenshots
Click to view
Neural Net Snake Game
An experimental neural network trained to play Snake. Explored reinforcement learning techniques, and reward system optimization for game AI.
CoreSoldier
A 2D side-scrolling shooter platformer with a focus on learning lag-compensating strategies for server-authoritative simulation and client-side prediction. Added physics to explore network syncing of non-deterministic elements.
Screenshots
Click to view
D&D Dungeon Generator
A 5th edition Dungeons & Dragons dungeon generator that creates detailed SVG maps with rooms, corridors, and encounter areas for tabletop gaming.
Screenshots
Click to view
Click to view
Click to view
Dungeons!
Implemented a real-world tabletop board game into digital form. It allowed multiple AI agents to act as players, with strict game rules enforcement. Implemented both a human-friendly user-interface to manually play the game against agents, or use a "headless" mode for mass simulation. Ran a competition with friends, to find the best AI agent!
Screenshots
Click to view
Click to view
Click to view
Lego Mosaic Generator
An experiment in generic algorithms and A* path planning to build a LEGO mosaic from a source image, minimizing cost.
Screenshots
Click to view
Click to view
Machi Koro simulation
Implemented the famous card game in code, allowing various "AI" agents to compete to try and find optimal strategies.
OpenGL Deferred Renderer
A simple exploration of real-time deferred rendering, implemented in OpenGL.
GLUI2
An OpenGL graphical user interface with dozens of controls to help with application development. Supported Windows, Linux, and macOS.
Screenshots
Click to view
Laser Cut Dog Puzzle
A multi-layer laser-cut wooden slider puzzle designed as an interactive toy for dogs. Learned details of laser-cut wood design process.
Screenshots
Click to view
Click to view
Click to view
ECS Rogue
An experimental rogue-like game designed to explore Entity Component System (ECS) architecture patterns and modern game development techniques. Was physics-enabled, rendered through Metal, had scripted agents.
Screenshots
Click to view
Eve Market Bot
An automated trading bot for EVE Online using OpenCV for screen analysis and automated buy / sell behaviors for profit. Was fun to code, not play.
Wordle Solver
A simple Wordle solver with a GUI that runs on macOS.
Screenshots
Click to view
3D Rendering Tutorial
An online tutorial, and self-published book, designed to teach the fundamentals of 3D graphics through writing a Javascript software renderer.
Screenshots
Click to view
Penn State Robotics
Worked on various table-top and sidewalk-sized robots that would navigate and solve mazes and paths across campus.
Screenshots
Click to view