How I Made a Virtual Car Drive Itself: The Wild Ride from PID to Model Predictive Control (Term 2)
Continuing through Term 2 of the Udacity Self-Driving Car Nanodegree, where I used filters to estimate the car’s position from noisy sensor data, and found smarter ways to control speed and direction for a smoother ride.
How I Made a Virtual Car Drive Itself: Lane-finding, Traffic Signs, and Behavioral Cloning (Term 1)
A personal journey through Term 1 of the Udacity Self-Driving Car Nanodegree, from basic to advanced lane detection, training neural networks to classify traffic signs, and using deep learning to make the car drive like me!
Iris-31: A Play in VR
A groundbreaking virtual reality theatrical performance that combined live acting with VR and hand/body motion-tracking technology to tell the story of my grandfather surviving a catastrophic hurricane in 1931 British Honduras.
Lexing and Parsing: Building a Java(ish) Interpreter in Haskell
A look back at my final project for Programming Languages at CC: building an interpreter for a Java-like language using Haskell’s “Alex” and “Happy” libraries along with the IO monad. It was a 3-week sprint that melted my brain in the best way possible.
Three and a Half Weeks of AI Coding Challenges
A whirlwind tour of the wildest, weirdest, and most rewarding AI projects I built in just 3.5 weeks.
23 Plays in 23 Days: The Best and Worst Theatre in London
Reflecting on my ‘Performance Away’ class in my junior year of college - from sci-fi nightmares that changed my perspective on theatre to documentary dramas that nearly put me to sleep… and meeting celebrity actors, of course!
A Child of Light: Staging Tesla's Story in The City Where He Became Chief Electrician
Reflecting on the wild journey of writing, directing, producing, and performing a short play during my study abroad semester in Budapest, navigating academic rigor, a new culture, and the unexpected challenges of theatre in a foreign city.
Solving Sudoku with Prolog: A Journey into Declarative Programming
An exploration of how Prolog’s declarative nature makes it a powerful tool for solving Sudoku puzzles, from basic rule implementation to tackling advanced variants like Skyscraper Sudoku.
Raycaster: Rendering a Chessboard in C++ with Procedural Graphics
A custom raycaster built in C++ for a Computer Graphics course at AIT, featuring a procedurally textured chessboard and complex chess pieces modeled with quadrics, glass, gold, gemstones, and procedural normal mapping.
Mario Typer: Rewriting a Buggy OBJ Parser for 3D Games
How I created a 3D typing game in a weekend for a school project, by fixing bugs in a parser for .OBJ files and using OpenGL to render them with textures and planar shadows. Features include multiple difficulties, seeker AI, collision detection, and projectiles.