Projects
2026
Segmentation and Defect Models at Gemminis
EoMT on a DINOv3 backbone, fine-tuned with LoRA for semantic and then panoptic segmentation of street scenes, plus the data and evaluation behind sidewalk and road defect detectors.
Arch and Hyprland Desktop
My Arch Linux and Hyprland desktop, kept as a repository: clone it on a fresh install and one script brings the whole thing up, recoloured from the wallpaper so no…
Sidewalk GPS Correction at Gemminis
GPS noise puts scooter traces in the road or on the sidewalk across the street. I proposed and built a correction that follows the sidewalk network while keeping each trace's…
Computer Systems Performance Evaluation
A course's worth of performance evaluation work in one repository: system monitoring, benchmarking with Sysbench, queueing-network models in QNAP2, workload characterisation with K-means, and capacity prediction.
Neural Classifier
A desktop application that classifies animal images with nothing borrowed: handcrafted colour, texture and shape features, PCA and Fisher selection, and neural networks implemented from scratch.
Game of the Goose Simulator
A Java Swing application that estimates by Monte Carlo simulation how many turns a Game of the Goose takes, validates the estimate against an exact analytical solver, and plays it…
Boxing Match Cinematic
A one-minute cinematic built in Blender 4.5 and rendered with Cycles: a boxing match in a UIB-inspired arena, resolved as a single continuous take that chains nine cameras.
Modified Connect 4 Agent
A Java Swing application that plays a modified Connect 4 with adversarial search: minimax with alpha-beta pruning and a transposition table, a human mode, and agent-versus-agent tournaments.
Calculator Game Solver
A Java Swing application that solves the calculator game with dynamic programming, plays it against you with perfect-play hints and a live decision tree, and benchmarks a family of solver…
Huffman File Compressor
A Java Swing application that compresses and decompresses files and whole directories with Huffman coding, draws the resulting code tree, and benchmarks the priority-queue implementations used to build it.
Closest and Farthest Pair of Points
A Java Swing application that finds the closest and farthest pair of points in a cloud, pitting a brute-force strategy against divide and conquer both visually and in a benchmark.…
Two-Piece Hamiltonian Chessboard Tour
A Java Swing application that solves a backtracking variant of the rook's tour: two pieces share one Hamiltonian tour of the board, moving in alternating turns, with neither ever able…
Asymptotic Complexity Analyzer
A Java Swing application that measures the real execution time of four reference growth orders on the JVM, plots the curves live, and checks a fitted prediction against a fresh…
Airline Passenger Satisfaction
A supervised-learning notebook over a 130k-row airline passenger survey: cleaning, PCA and K-means segmentation, then five classifiers tuned by grid search and compared on accuracy, macro F1 and the train-test…
Brain MRI Scans Using Teachable Machine
Web-based machine learning application for brain MRI scan classification using transfer learning and real-time browser inference.
2025
FrozenLake Learning Agents
A Python comparison of four ways to cross slippery FrozenLake (Monte Carlo, Q-learning, SARSA and a genetic algorithm over deterministic policies) behind a single agent interface and charted by success…
Labyrinth Search Agents
A trio of Python agents that play the same labyrinth game three ways (depth-first, A* with a Manhattan heuristic and minimax with alpha-beta pruning) over one shared state model.
A File System Written in C
A file manager written in C for the Operating Systems II course, implementing the basic operations of a file system (creating, deleting, reading, writing and moving files and directories) over…
Mini Shell and Dynamic Stacks
The three Operating Systems I practices in C: a library of string functions written from scratch, a generic dynamic stack that persists to a file, and a minimal shell taken…
Design and Implementation of a Pac-Man Game in MC68000 Assembly
This paper presents the design and implementation of a Pac-Man-style videogame developed in MC68000 assembly using the Easy68K environment.