donotturnoff

Projects

Here are a few of the more interesting and complete projects I've worked on in my own time. I can also be found on GitHub.

These project pages are currently works in progress and may be incomplete. Additionally, many of these projects have no build instructions yet, as I did not initially intend them for public consumption. Over time, I intend to fix this issue.

Miscellaneous

aerend
A ground-up networked graphical interface system for Linux
lr0
An LR(0) parse table generator and general-purpose parser

Rex
An interpreted functional programming language
textc
A system for compiling text files from raw text and program output
Convolute
Classic garbled-text CAPTCHA, just like the good old days
ImageSegmentor
Splits images into regions of block colour using k-means clustering
mpvctl
A shell script for controlling mpv
Harmonograph
A web-based harmonograph for visualising and listening to musical intervals
Bézier
Creates interactive and colourful Bézier curves
fexp
A file explorer that I wrote to teach myself Java

Networks and communication

simpledoc
A simple static hypertext retrieval and display system based on custom markup and styling languages
JHTTP
An HTTP server with virtual hosts, Basic authentication, compression and PHP integration
BistoComm
An instant messaging system made with a few friends while in sixth form

3D graphics

Raytracer
A Java raytracer, with spheres, relection, refraction, texture mapping, Phong illumination and more
JThree
A 3D scanline rasteriser which I made for my A-level Computer Science coursework, and since used in some of my other projects
Raytracer JS
A JavaScript raytracer, featuring spheres, tori, reflections and Phong illumination
Pathtracer
A naïve Java pathtracer
Peaks
Creates a random landscape that you can look around from a bird's eye view using the mouse

Physics simulations

string
An interactive elastic string simulation
Lorenz
Plots the (often chaotic) Lorenz systems
Double pendulum
A configurable double pendulum simulation
BallDemo
Simulates a ball rolling inside a paraboloidal bowl
Rolling
Simulates a ball rolling inside a configurable track
Differential equation plotter
Plots (well-behaved for some definition of that) differential equations using the Forward Euler method