Back

All Projects

A vertical timeline of shipped and evolving work. Each build pushes experimentation with AI, interaction, and edge performance.

Recensorium

Peer review for AI-generated research. Agents connect over a REST API or a remote MCP server, publish papers, and are handed other agents' work to review across four dimensions - novelty, significance, clarity and rigour. The interesting part is what they can't do: an agent never chooses what it reviews, and it can't choose who reviews it. I founded the company and designed and built the platform solo - a five-app monorepo with four deployed services, the scoring and reputation model, and the incentive mechanics that keep it honest.

In Progress
August 2026

Tech Stack

TypeScriptFastifyNext.jsPostgreSQLDrizzleRedisBullMQMCPOAuth 2.1Cloudflare WorkersFly.ioStripeWorkOSDockerGitHub Actions

Key Features

  • Agents publish and review over a REST API or a remote MCP server exposing 32 tools, behind an in-house OAuth 2.1 server so the raw API key never reaches the model
  • Review assignment is a weighted bandit over coverage, salience and uncertainty - papers are drawn for you, so a review-swapping ring cannot reliably reach its own work
  • Publishing is gated behind completed reviews: three before a first paper, five per paper after that
  • A reputation score weights how much an agent moves the rankings, so lazy or adversarial reviewers lose influence automatically rather than needing to be policed by hand
  • Self, same-owner and same-lab exclusions plus a redraw cooldown close the obvious collusion routes
  • Browser studio for building agent workflows as node graphs - 20 node kinds across triggers, models, agents, tools and flow control, plus an assistant that edits the graph for you
  • Bounties and competitions on a credits ledger, with a hard boundary that money can never buy a score, enforced by seven CI invariants
  • Scoring constants tuned against a red-team simulation of 17 adversarial reviewer archetypes, including collusion rings and sybil swarms
  • Five-app TypeScript monorepo (~139k lines, 95 migrations) on Postgres, deployed to Fly.io and Cloudflare Workers across three environments
Live

MotionGen (Dissertation)

My BSc dissertation, "Beyond Simple Prompts": a Unity editor plugin for controllable, interactive 3D human motion generation that runs entirely locally. A local Python backend (over gRPC) serves multiple text-to-motion models (T2M-GPT, MoMask, MDM) and writes results straight back into Unity as humanoid AnimationClip assets. In a comparative within-subjects user study it beat Unity's own AI tooling on all four measures - SUS, NASA-TLX workload, task time and ease - with large effect sizes. Graded 77. Free and open-source (MIT); the Unity Asset Store release is pending University approval.

Completed
May 2026

Tech Stack

UnityC#PythongRPCGenerative AIText-to-MotionT2M-GPTMoMaskMDMLocal Inference3D Animation

Key Features

  • Fully local text-to-motion generation inside the Unity editor, with no cloud or external account
  • Serves T2M-GPT, MoMask and MDM through a local Python backend over gRPC
  • Single and batched generation, text-prompted segment regeneration, two-clip inbetweening and multi-segment composition
  • Local Gemma planner splits a complex prompt into a per-segment JSON plan (models, durations, transitions, scene anchors)
  • Variant ranker scores clips on foot skating, jerk, root drift and ground penetration
  • Writes results directly as humanoid AnimationClip assets; evaluated with four methods - a comparative user study, an internal model-fit pre-screen, a local planner latency benchmark and a variant-ranker calibration

HabitFlow

A full-stack habit tracking and goal management web app with social features. Users set numeric goals (e.g. 100,000 push-ups), track daily habits, view AI-powered insights, and compete with friends. Features real-time activity feeds, event planning with Google Maps integration, and a GitHub-style consistency heatmap.

Completed
February 2026

Tech Stack

ReactTypeScriptTailwindCSSFirebase AuthExpressPostgreSQLNeonGemini AIRechartsVercelRailway

Key Features

  • Numeric goal tracking with daily targets, deadlines, and below/on/above target badges
  • Daily habit tracker with week-by-week navigation and positive/negative habit support
  • AI-powered insights and personalised analytics using Google Gemini
  • GitHub-style 52x7 consistency heatmap and skill balance radar charts
  • Social features: friend requests, activity feeds, ping-to-workout notifications
  • Event planning with RSVP system, attendee badges, and Google Maps integration
  • Full activity history with edit and revert capabilities
  • Multi-stage onboarding flow with customisable goals and habits
  • Dark/light mode with persistent settings
  • Firebase Authentication with email/password and Google sign-in
  • Deployed with Vercel (frontend) and Railway (API) backed by Neon PostgreSQL

Neighbourly

A community-focused web app connecting neighbors who need help with volunteers willing to assist. Users post requests for help (groceries, errands, companionship) and volunteers view them on an interactive map and offer assistance via real-time chat. An evolution of our HackSheffield 9 hackathon project where we won 1st place in the GitHub competition.

Completed
January 2026

Tech Stack

SvelteKit 5TailwindCSSGoogle Maps APIPythonFlaskSQLAlchemyPostgreSQLNeonAuth0VercelFly.ioReal-time Chat

Key Features

  • Interactive map showing nearby help requests with Google Maps API integration
  • Real-time chat between requesters and helpers
  • Two-way map-address interaction: pin updates address field, typing address repositions pin
  • Secure authentication with Auth0 across separate frontend/backend domains
  • PostgreSQL-backed sessions for multi-instance server support
  • Mobile-responsive design
  • Cross-domain authentication handling with HTTPS behind reverse proxies
  • Evolution from HackSheffield 9 hackathon (1st place GitHub competition)

AlexNet Transfer-Learning Image Classifier

An image classification study built by fine-tuning AlexNet and selectively re-training specific convolutional layers, followed by a range of analyses comparing training strategies, layer behaviour, and classification performance.

Completed
March 2026

Tech Stack

PythonPyTorchCNNsTransfer LearningAlexNetComputer VisionAnalysis

Key Features

  • Fine-tuned AlexNet and probed individual convolutional layers
  • Compared full fine-tuning against selective layer re-training
  • Layer-wise and performance analysis of the learned features
  • Applied transfer learning to a new classification task

Modelling Natural Systems & Reinforcement Learning

A set of modelling and analysis studies of natural and dynamical systems, including the Duffing oscillator and a Predator-Prey agent-based model, alongside an exploration of tabular Q-learning.

Completed
February 2026

Tech Stack

PythonNumPyDynamical SystemsAgent-Based ModellingReinforcement LearningQ-LearningAnalysis

Key Features

  • Analysed the Duffing oscillator as a nonlinear dynamical system
  • Built and studied a Predator-Prey agent-based model
  • Implemented and evaluated tabular Q-learning
  • Focused on system behaviour, stability, and emergent dynamics

Client Website Delivery (Sheffield)

A real client website delivered end-to-end with a full requirements → prototype → feedback iteration loop, followed by deployment and domain transfer coordination with the client’s previous web provider.

Completed
October 2025

Tech Stack

Web DevelopmentUI/UXPrototypingClient RequirementsIterationDeploymentDomain TransferGitFigma

Key Features

  • Ran requirements gathering sessions and converted goals into a clear delivery plan and site structure
  • Built iterative prototypes, collected feedback, and made decisive changes to match client expectations
  • Focused on usability, clarity, and maintainability to support long-term client updates
  • Coordinated deployment and handover, ensuring a reliable release process and minimal disruption
  • Worked with the previous provider to transfer the domain and complete the migration cleanly
  • Delivered a polished, client-ready site with a smooth post-launch transition
LinkedInLive

Old Personal Portfolio

A Next.js based old personal portfolio website, utilising various technologies such as a CMS, Three.js and Shaders.

Completed
December 2024

Tech Stack

Next.jsReactTypescriptPrismic CMSThree.js3D GraphicsTailwind CSSPostCSSSlice MachineCloudflareShadersGSAP

Key Features

  • Prismic driven content slices
  • Custom GLSL shader accents
  • Optimised image delivery via Cloudflare
  • Reusable layout primitives
  • Accessible keyboard navigation
  • Theming & content versioning

Language Learning App

A Ruby on Rails language learning app made for a real client as a university project. Through requirements and regular meetings we developed an app that met the desired standards.

Completed
May 2025

Tech Stack

Ruby on RailsPostgreSQLActiveStorageHAMLBootstrapShakerPackerRakeGSAPWSLGitlabFigma

Key Features

  • Role‑based user & admin dashboards
  • Progress tracking & spaced repetition logic
  • Media asset handling via ActiveStorage
  • Real client requirement gathering process
  • Component animations powered by GSAP
  • Secure Postgres relational schema

MNIST From-Scratch Image Classifier

A complete machine learning pipeline built entirely from scratch in Python for handwritten digit classification, featuring custom SVM and KNN implementations with advanced preprocessing and 99.8% accuracy on noisy test data.

Completed
December 2024

Tech Stack

PythonNumPySciPyAIMachine LearningComputer VisionMathematics

Key Features

  • Custom multi-class SVM with One-vs-All strategy
  • Mini-batch gradient descent with hinge loss optimization
  • PCA dimensionality reduction retaining 95% variance
  • Advanced data augmentation (rotation, flip, noise)
  • Robust preprocessing with threshold masking and Gaussian blur
  • Complete type annotations and comprehensive documentation
  • Performance progression from 70% to 99.8% accuracy
  • Model persistence and evaluation pipeline
Source

3D Rasterizer Engine

A 3D engine pipeline built from scratch enrirely in python, usiliting rasterzing, loading models from .obj files and using custom vector and matrix types.

Completed
June 2023

Tech Stack

PythonPygame3D GraphicsRasterizationMathematicsObject representation

Key Features

  • Custom software rasterization pipeline with triangle filling and z-buffering
  • Support for loading and rendering 3D models from .obj files
  • Custom vector and matrix math library for transformations
  • Camera system with perspective projection and rotation controls
  • Wireframe and solid rendering modes for debugging and visualization
  • Scene management with multiple objects and real-time rendering loop
Source

EYH Swarm Pipe Robots (FISH)

A third-place Engineering You’re Hired (EYH) concept project: a decentralised swarm of pipe-crawling robots for inspection and leak detection, designed with failure-tolerant locomotion, robust operational protocols, and clear system-level animations.

Completed
March 2025

Tech Stack

Swarm RoboticsRoboticsAlgorithmsSystems DesignComputer VisionLiDARUltrasonic SensingCADCFDBlender3D AnimationTechnical DrawingsBusiness Planning

Key Features

  • Designed caterpillar-like pipe locomotion with grippers + motors and spring-extended safety behavior for power loss
  • Developed swarm rules for cohesion + full coverage exploration while minimizing redundancy and missed sections
  • Specified multi-sensor leak detection approach combining vision, LiDAR, and ultrasonic techniques
  • Defined robust operational protocols (rescue, corner navigation, disconnection handling, recovery procedures)
  • Produced system animations in Blender, learning the tool from scratch under hack-week time pressure
  • Delivered CAD concepts, CFD simulations, electrical/technical drawings, and an industry-facing business plan
LinkedIn

Interactive AI Portfolio

This live portfolio you're browsing: an AI-augmented, animation-rich Next.js site with streaming DeepSeek V4 Flash chat, contextual system prompt generation, markdown rendering, and dynamic placeholder suggestion engine.

Completed
January 2026

Tech Stack

Next.jsReactTypeScriptTailwind CSSGSAPLLM StreamingDeepSeekMarkdownNode.jsEdge PatternsAILLMAPI

Key Features

  • Real-time streaming AI chat on DeepSeek V4 Flash, with conversation memory and rate-limit retry
  • RunId-based deterministic placeholder suggestion animator (no overlap)
  • Lightweight custom markdown renderer with links, code & lists
  • Dynamic system prompt built from structured JSON context & project injection
  • Responsive glass UI with particle & hero entrance animations (GSAP)
  • Server-side streaming proxy that keeps the model key off the client entirely
  • Type-safe project metadata with extended feature lists
  • Optimized minimal message rendering and scroll management

Mobile Based Offline AI App

A mobile based app that runs distilled models on the phone to access AI without internet. It also has personalities, offline maps and survival guides.

In Progress
July 2025

Tech Stack

AILLMFlaskPythonLLama.cppSQLiteGGUFSwiftFigmaReactNext.js

Key Features

  • Fully offline inference (no cloud dependency)
  • Multiple AI personalities / system profiles
  • Local vector store & semantic recall
  • Offline maps & survival reference modules
  • Optimized quantized GGUF models (memory aware)
  • Energy adaptive runtime (battery aware)
Source

Texas Hold'em Poker in Haskell

A complete Texas Hold'em poker game implementation in pure Haskell featuring multiple AI strategies, comprehensive hand evaluation, and full game mechanics including betting rounds, blinds, and sophisticated tie-breaking systems.

Completed
December 2024

Tech Stack

HaskellFunctional ProgrammingGame DevelopmentAIRandom GenerationMonadic Programming

Key Features

  • Complete poker hand evaluation system (Royal Flush to High Card)
  • Four distinct AI strategies: Random, Passive, Aggressive, and Smart
  • Human player interaction with input validation
  • Full betting mechanics (fold, check, call, raise) with proper constraints
  • Comprehensive tie-breaking system for all hand types
  • Proper blind system implementation (small/big blinds)
  • Multi-round gameplay with chip tracking and dealer rotation
  • Advanced functional programming patterns and monadic IO
  • Deck shuffling and card dealing with proper randomization
  • Complete game state management and player elimination
  • Sophisticated winner determination with multiple tied players
  • Pure functional implementation with immutable data structures
Source