Active research project with the VISAGG Lab at the University of Calgary. The work is still ongoing, so I'm keeping the technical details off the public site for now. The renders below give a sense of the visual output.
Undergraduate research at the VISAGG Lab
Producing 3D volumetric renders as part of the study
Full write-up coming after the research is published
A full-stack logistics platform built for Morant's Transportation Solutions Ltd., owning the full development lifecycle from requirements gathering with a non-technical owner through design, testing, and deployment. It replaces manual spreadsheet workflows that were responsible for $200 to $1,600 in monthly billing discrepancies. The system also includes an AI-powered document processing pipeline using locally hosted LLMs and agentic loops to extract, validate, and audit data from trucking load documents, with secure handling of sensitive customer and billing data enforced before database entry.
Eliminated manual spreadsheet workflows causing $200 to $1,600 in monthly billing discrepancies
AI document processing pipeline using locally hosted LLMs and agentic loops
Owned the full lifecycle from requirements gathering through deployment
Freelance contract. Built from scratch as the company's online presence and primary lead-generation channel. Scroll animations, a contact-form API, and a content model the owner can extend without my involvement.
Built and shipped from scratch - design, code, deploy
An interactive 3D scene built with Three.js. My name is extruded as 3D geometry and placed inside a procedurally generated Milky Way galaxy with thousands of star particles. The camera orbits the scene to show off the depth and lighting.
Extruded 3D text geometry with custom materials
Procedurally generated galaxy with thousands of star particles
Orbiting camera and lighting setup built from scratch
A Three.js scene of a haunted house with a graveyard, fog, moving ghost lights, and dynamic shadows. Everything renders in the browser - no plugins, no downloads. I wanted to make something simple and yet cool.
Real-time fog and dynamic point-light shadows
Procedurally placed graveyard with randomized graves
A peer-to-peer skill-sharing platform where users teach and learn from each other through live sessions. Built MVC backend with Express, JWT auth with RBAC, and real-time chat plus 1:1 video calling over Sockets and WebRTC.
A full-stack travel discovery app following the MVC pattern. Passport.js for secure auth and sessions, Mapbox for geolocation visualization, and Cloudinary with Multer for multi-image uploads to the cloud.
A desktop pathfinding visualizer built in C++ with SFML. Generates random weighted graphs, then animates Dijkstra's, A*, and BFS step-by-step - showing visited nodes, the final path, and the minimum spanning tree. Press R to regenerate a new graph instantly.
Step-by-step animation of Dijkstra's, A*, and BFS
Randomly generated weighted graphs with instant regenerate
Visualizes visited nodes, final path, and minimum spanning tree
Built at the University of Calgary. A Pacific Rim-inspired desktop tracking app written in Java with JavaFX. Tracks entities like Jaegers, Kaijus, and battle locations through an interactive GUI with modular architecture and a focus on usability. Originally designed as a centralised database for franchise entities.
Interactive desktop GUI with modular MVC architecture
Tracks Jaegers, Kaijus, locations, and battle records
Filterable battle log with multi-field constraints