2D Shadow Simulator

This 2D shadow simulator made in p5.js simulates shadows effectively in a 2D space. Move the cursor to change the source of light.


A crude simulation of Conways Game of Life within a 30x30 grid. More information about Conways can be found here. The spawning of white cells is random, so the resulting grid is different each time.

Solar System

A very basic animation showing the relative moving of planets around the sun in our solar system, up to the astroid belt. Planets movements are given a set path, gravity is not being simulated in this example.

Visual sorting

A collection of 3 (bubble, insertion, selection) visualised sorting algorithms, and short explanation. Starting states of all visualisations are random.

2D Physics simulator

Create balls by clicking (and holding to increase size) and dragging, and watch as gravity, momentum and conservation of energy are all simulated (continuous ball on ball collision is a little broken).

Blockchain animation

View the simple animation used on many blockchain websites in its full glory. New particles are spawned whenever another goes off screen, and lines are drawn when two particles less than 50px apart.

Lan Buddy

A web-based application written in PHP to manage LAN events within the esports society and the University of Warwick. Utilises SQL databases, the Riot API and a functioning matchmaking algorithm.

Warwick Esports Website

A static HTML/CSS page giving information about Warwick Esports to potential members, sponsors, and anyone we can get to listen. The page is based upon a heavily edited wordpress template.

During my time at Gamoloco I worked on thxpurge, a page which tracked all the times DOTA2 anaylst came on screen. I worked on the data processing and detection of these moments.

On the fly highlights generated by real-time analysis of Twitch chat. My role consisted on clip detection and generation, with heavy interaction with the Twitch API and web scraping.

A webpage comprised of p5.js animations which I've made over the last few years. Some might look familiar, although some concepts have been done before I liked to challenge myself to see if a recreation was possible