← Back to book

Projects

This Portfolio

HTMX, PHP, Three.js, CSS • Live — you’re looking at it.

This site is the project. Built from scratch as an interactive book, not a template. The design choice was deliberate — a portfolio should demonstrate the thing it claims. Every page, every interaction, every layout decision was made by hand.


D&D Encounter Planner

In development

A session management tool built for the way I actually run games. Most encounter planners assume you have everything written down in advance. I don’t — I work from a mental model and improvise at the table. This tool is designed for that workflow: flexible enough to support improvisation, structured enough to keep things consistent.


Immersive XR Experience for Equestrian Promotion

Unity, Blender, C# • Third-year Dissertation Project

Built an immersive XR environment for a horse club client exploring virtual reality as a promotional tool. Created 3D models and environments in Blender, integrated into Unity for interactive VR. This project involved regular client meetings, iterative design, requirements gathering, and a formal dissertation and presentation delivered to external stakeholders and academic supervisors.


Tool Lending Platform

Java, MySQL, HTML/CSS • Backend Developer & Database Lead

An Airbnb-style tool lending platform. I designed and implemented the MySQL database schema for user accounts, tool listings, and transactions, built API endpoints connecting frontend to data, and coordinated across team members working on different system components.

What I took from this: the hardest part of group projects isn’t the code — it’s making sure four people’s mental models of the system actually match.


OpenGL Graphics Coursework

Java (JOGL), OpenGL

A custom 3D rendering pipeline built from scratch. Manually created geometric objects, applied transformations, and handled rendering without the safety net of a game engine. This is the project that taught me what frameworks are actually doing under the hood — and made me appreciate both the abstraction and the cost of it.