Projects

Software I have built for research, teaching, and coursework.

DeltaDraw overview: draw it, run it, prove it, with screenshots of a DFA, a Turing machine tape history and the pumping lemma game, the chapters it covers, its step-by-step constructions, and its practice, exam and export featuresView full size
HCISEOpen sourceReleased Oct 2026

DeltaDraw

An interactive toolkit for Theory of Computation

A free, browser-based learning platform organised by the chapters of Sipser’s Introduction to the Theory of Computation. Students draw a machine and watch it compute one step at a time. Nothing to install, no account, and drawings stay in the student’s own browser.

  • Draw and run DFAs, NFAs, pushdown automata, and Turing machines, with the input, stack, or tape shown at every step
  • Step-by-step constructions: NFA to DFA, minimization, regular expressions and NFAs, Chomsky normal form, CYK, grammar to PDA
  • The pumping lemma played as a game against an adversary
  • 50 practice exercises checked instantly with counterexamples, plus an exam mode for proctored Canvas exams
  • Export to PNG, SVG, LaTeX (TikZ), and JFLAP
Desktop version of the germophobia game: a player in a night-time city park, with a live 80 BPM heart-rate readout and a minimap
HCIXRMS thesis

Germophobia Exposure-Therapy Game

Desktop, Android, and VR (in development) serious game

A serious game that guides players through graded exposure to germ-related situations. A companion smartwatch app streams the player’s heart rate to the game in real time, shown live on screen, and the player’s choices change how the environment responds.

  • Unity
  • C#
  • Android SDK
  • Smartwatch app
  • Firebase
Project overview: student enrollments, a course conflict graph, parallel colouring across ranks, and the resulting exam timetable, with four constraints and three parallel modelsView full size
HPCPaper in preparationBegan in CS 5570

Parallel Exam Timetabling

Scheduling exams for a million students with parallel graph colouring

Courses become nodes in a conflict graph, and colouring the graph assigns exam days so no student has two exams on the same day. The solver runs with MPI, OpenMP, and a hybrid of both. Four constraints are added one at a time: no conflicts on the same day, a daily capacity, at least two days between conflicting exams, and room matching. Scaling and time breakdowns are measured after each one, on a synthetic university of one million students and on the Toronto benchmark, and every schedule is verified.

  • C
  • MPI
  • OpenMP
  • SLURM
  • Up to 256 cores
SnakeGo version 2.0: a green snake on a dark grid moving past two rows of purple block walls toward an apple, with the score, mode, level, and speed shown at the top
XRv2.0 released Nov 2026Began in CS 5539

SnakeGo

A modern take on the classic Snake game, playable in the browser

First built as a 2D game project for CS 5539: Introduction to Computer Game Development, with three levels. Version 2.0 fixes bugs, redraws the visuals, and adds new levels, a second mode, sound, and phone support. It runs in any browser on a computer or phone.

  • Eight levels built from text maps, from open fields to a maze
  • Campaign and Free play modes, with saved high scores for every level and speed
  • Three speeds with score multipliers, and a watermelon bonus every fourth apple
  • Generated sound effects, and swipe controls on phones
  • GameMaker
  • GML
  • HTML5