Personal projects & coursework
Projects
Game engines, simulations, hardware, and other software projects. Source code and demos are linked where available.
Project collection
18 projects
Filter by category or search by technology 01 / SystemsSelected work
A C++ game engine with a Qt editor, archetype-based ECS, and Metal rendering.
Build notes +
- Archetype-based entity storage, reflected fields, and document serialization.
- Metal rendering with selection, transform gizmos, and dockable editor panels.
C++26 / REFLECTIONconst auto xml =
serialize(value);
↓TYPE → STRUCTURE
<Planet> <name>Earth</name></Planet>
02 / SystemsSelected work
A header-only XML serializer using C++26 reflection.
Build notes +
- Serializes reflected structures, vectors, optionals, variants, and registered std::any payloads.
- Shared reflection helpers and compile-time annotation types, with XML writer and serialization tests.
03 / GraphicsSelected work
An n-body simulation in Rust with parallel gravity calculations and wgpu rendering.
Build notes +
- Parallel acceleration calculations with softened gravity, configurable substeps, and time scaling.
- JSON-defined bodies, procedural sphere meshes, depth-tested rendering, and camera controls.
04 / GraphicsSelected work
A C++ fluid simulation compiled to WebAssembly, with interactive browser controls.
- C++
- WebAssembly
- React
- Web Workers
Build notes +
- Runs simulation work off the main thread with Web Workers and shared memory.
- Emscripten connects the C++ engine to an interactive browser interface.
05 / Hardware
Connect Four implemented in Verilog with VGA output and PS/2 keyboard input.
Build notes +
- Custom VGA output with double buffering and 24-bit color lookup tables.
- PS/2 keyboard input and eight or more finite state machines coordinate gameplay and rendering.
06 / Graphics
Polygon Triangulation
Draw a polygon and step through ear-clipping triangulation in an interactive Unity visualizer.
Build notes +
- Procedural meshes and shader highlights make each step of the algorithm visible.
- Pause, step, and compare the intermediate geometry.
Personal project
07 / Hardware
A 3D game engine running on a Nios II processor, with graphics, sound, and hardware input.
Build notes +
- 3D transforms, rasterization, and DMA double buffering synchronized to the display.
- PCM audio and interrupt-driven PS/2 mouse input over memory-mapped I/O.
08 / Systems
A C++ mapping application with custom rendering, route finding, and a parallel courier optimizer.
Build notes +
- Parallel map preprocessing and A* routing.
- Courier optimization using precomputed shortest paths, simulated annealing, and 2-opt moves.
09 / Machine learning
A coursework project using VGG16 transfer learning for cancer and COVID-19 image classification.
- Python
- PyTorch
- VGG16
- Computer vision
Build notes +
- Image preprocessing, transfer learning, and confusion-matrix analysis.
- Reported 90.1% overall accuracy on the project test set.
10 / Games
A Python battle royale with 99 AI opponents, crate looting, and weapon-dependent bot behavior.
- Python
- PyGame
- Game AI
- Pathfinding
Build notes +
- State-machine bots find crates, pursue opponents, and react to incoming fire.
- Range-aware targeting adapts to the equipped weapon.
11 / Games
Play locally, challenge a minimax opponent, or join an online match through Firebase.
- Java
- JavaFX
- Firebase
- Minimax
Build notes +
- Player accounts store match statistics and ratings.
12 / Games
A top-down driving game with AI traffic, pickups, hazards, and increasingly busy roads.
Build notes +
- Separate scenes for car selection and gameplay, with persistent high scores and difficulty settings.
13 / Games
A puzzle platformer where switching between 3D space and a 2D plane changes the way forward.
14 / Graphics
An interactive collision simulation for experimenting with mass, speed, direction, and impact angle.
15 / Systems
An insertion sort visualization with adjustable speed and input size.
- Java
- Algorithms
- Visualization
16 / Games
An endless parkour runner with procedurally placed platforms, made with p5.js.
- JavaScript
- p5.js
- Procedural generation
17 / Hardware
Competition robot software for elevator control, climbing, and autonomous drivetrain alignment.
Build notes +
- Encoder-based elevator presets, limit-switch resets, and a pneumatic climb ratchet.
- Gyro and time-of-flight sensor feedback drive PID-based auto-alignment.
18 / Hardware
A CO₂-powered F1 in Schools car project focused on aerodynamics and mechanical design.
- CAD
- Mechanical design
- Prototyping
No projects found.
Try a different technology or show the full collection.