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.

Robotics Sensors Algorithms Arduino

Screenshots

Robot Mechanism
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...

Robotics Sensors Arduino Raspberry Pi

Screenshots

Initial PCB
Click to view
Complete PCB
Click to view
Controller Software
Click to view
Single Stage to Orbit Beer
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.

C++ Emulation CPU Architecture Debugging Tools

Screenshots

Emulation Tools 1
Click to view
Emulation Tools 2
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.

Computer Vision Apple Vision OCR macOS

Screenshots

Card Capture Setup
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).

C Embedded Systems Performance

Screenshots

Ardunix
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.

Web Game Multiplayer Card Game

Screenshots

Game Board
Click to view
Story 1
Click to view
Story 2
Click to view
Game Rules
Click to view
Board
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.

BASIC Restoration

Screenshots

Restoration 1
Click to view
Restoration 2
Click to view
Restoration 3
Click to view

Rotating Cross Optical Illusion

Implemented an optical illusion in a stand-alone shader.

OpenGL Shaders

Screenshots

Shadertoy
Click to view

RED FANG - No Air

Implemented a visual effect seen in a music video, through a standalone shader.

OpenGL Shaders

Screenshots

Shadertoy
Click to view

Snake-on-a-shader

Implemented the classic "Snake" game, but through a standalone shader.

OpenGL Shaders

Screenshots

Shadertoy
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.

TTL Logic 8-bit Architecture Hardware Design Assembly

Screenshots

Hardware Description Language
Click to view
KiCad Design
Click to view
Simulation Graph
Click to view
Initial PCB Print
Click to view
PCB Memory Tester
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.

PCB Design LEDs Wearable Tech Wireless

Screenshots

Top Hat Front
Click to view
Top Hat Back
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.

Electronics

Screenshots

Original NeoGeo
Click to view
Before Repair
Click to view
After Repair
Click to view

LCD Display Switcher

A toy hardware project to show how to directly manage an LCD's control pins.

Hardware Control LCD Switches

Screenshots

LCD Controller Front
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.

C++ Networking

CoreBasic Language

A complete BASIC programming language implementation with compiler and virtual machine runtime, built from scratch for scripting support in other projects.

Compiler Design Virtual Machine Language Design

Screenshots

Simple BASIC program
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!

JIT Compilation ARM64 Native Code Gen C++

Screenshots

Wordle Solver in action
Click to view
Wordle Solver in action
Click to view
Wordle Solver in action
Click to view
Wordle Solver in action
Click to view

SimpleMalloc

A high-performance memory allocator implementation focused on speed and efficiency, exploring advanced memory management techniques. Weekend project for fun.

C Memory Management Performance Systems Programming

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.

C++ SIMD Multi-threading Ray Tracing

Screenshots

Sample Image
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.

ChatGPT API Computer Vision Game AI Emulation

CoreGlyph

An experimental arena for testing different glyph rendering strategies, focused on CPU side optimizations relating to multi-threading, SIMD, and CPU cache behavior.

C++ Text Rendering Performance

Screenshots

Sample Screenshot
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.

Neural Networks Reinforcement Learning Game AI Python

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.

C++ Networking Physics Lag Compensation

Screenshots

Sample Screenshot
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.

Algorithm Design SVG Generation D&D 5e Procedural Generation

Screenshots

Sample Dungeon 1
Click to view
Sample Dungeon 2
Click to view
Sample Dungeon 3
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!

Algorithm Design SVG Generation D&D 5e Procedural Generation

Screenshots

Game View 1
Click to view
Game View 2
Click to view
Game View 3
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.

Image Processing Color Quantization Optimization LEGO

Screenshots

Lego Build
Click to view
Bill of Materials
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.

Card Game Optimization

OpenGL Deferred Renderer

A simple exploration of real-time deferred rendering, implemented in OpenGL.

Graphics OpenGL

GLUI2

An OpenGL graphical user interface with dozens of controls to help with application development. Supported Windows, Linux, and macOS.

C++ OpenGL DirectX

Screenshots

Screenshot
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.

CAD Design Laser Cutting Woodworking Pet Toy Design

Screenshots

Dog Toy - Disassembled
Click to view
Dog Toy - In Assembly
Click to view
Dog Toy - Finalized
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.

Algorithm Design Game Strategy Metal Objective-C

Screenshots

Screenshot
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.

OpenCV Automation Computer Vision

Wordle Solver

A simple Wordle solver with a GUI that runs on macOS.

Algorithm Game Strategy Objective-C

Screenshots

Wordle Solver in action
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.

Education Javascript

Screenshots

Sample Image
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.

Robotics Navigation Path Planning Maze Solving

Screenshots

Penn State Robot
Click to view