Projects
-
Remote Firework Detonator
Two ESP32 boards that arm and fire fireworks over LoRa, using a custom MAC layer and a protobuf command set.
-
Multisensory Pretraining for Contact-Rich Manipulation
Pretraining a multimodal encoder on RGB, depth, segmentation and force-torque data to improve robot manipulation in contact-rich tasks.
-
Autonomous Navigation and Collision Avoidance for Drones
A simulated forest, a sampling-based expert planner, and a student policy trained to fly through it from depth images alone.
-
Ray Tracer
A ray tracer written from scratch in C with no external libraries.
-
The Effect of Impossible Spaces on VR Locomotion
A VR user study testing whether impossible spaces lead people to walk more and teleport less.
-
Cart-Pole in Hardware: State Estimation and Real-Time Control
Built the inverted pendulum on a rail, read its state off quadrature encoders, and balanced it from an embedded control loop.
-
Quantum Cryptography: Coin Flipping and Key Distribution
The mathematics of qubits and conjugate bases, applied to BB84 key distribution and to flipping a fair coin with someone you do not trust.
-
Multi-Drone Coordination in a Delivery Simulation
Drones that ask each other for help when a battery will not last the delivery.
-
Eigenfaces
Using SVD on a few thousand face photographs to rebuild each face from its first 100 eigenfaces.
-
Deep Genetic Learning Cars
Cars driven by small neural networks, evolved by a genetic algorithm instead of trained with gradients.
-
Muzzle Flash
A top-down dungeon lit only by torches and gunfire, built in 48 hours.
-
Early Projects
Eleven personal projects built before university, including flocking, mazes, ray casting, cellular automata and a few games.
-
Ray casting engine v1.1, with a 2D grid map on the left cast into textured brick walls on the right.
-
Maze generation by recursive backtracking, then an animated flood-fill solve on a large maze.
-
Circle packing. Discs grow until they touch, then new ones are seeded in the gaps.
-
Asteroids, the larger "world" version, with vector-drawn asteroids that split when shot.
-
A basic platformer with tile collision, gravity and jump arcs.
-
The first version of the ray casting engine, before wall texturing.
-