-
Kitteh2 programming language
July 2016 - April 2017
The second revision of my Kitteh programming language. Instead of being an interpreted language, it now has an optimizing compiler to x86 written from scratch. The language is strongly typed with type inference, and the syntax is now more similar to Go than to Javascript.
-
MineBot
January 2016 - April 2016
A bot that can play Minecraft on its own. It uses modified A* with incremental cost backoff for pathfinding.
-
Fusion
July 2017 - August 2017
A client-server program that can fuse multiple internet connections together into a single faster connection without compromising on latency or reliability.
-
Logisim RISC-V
March 2018 - April 2018
A RISC-V processor in the circuit simulation software Logisim. Practically complete coverage of the RV32I base instruction set on normal Logisim, with a modified version of Logisim with support for unaligned memory reads and writes for full coverage.
-
Syncer
(intermittently) September 2016 - October 2017
A client-server system that can play audio in sync from multiple laptops. Uses docker and pulseaudio for the backend, and a Java UI for the client.
-
Scheduling
April 2015 - May 2015
A scheduling program for the upcoming school year. It's able to deal with room requirements, teacher working hours, which teachers can teach which classes, and grade and student level requirements for courses.
-
Kademlia
November 2015 - February 2016
An open source multithreaded Java implementation of Kademlia, a distributed hash table, with some additions to the protocol.
-
Kitteh programming language
November 2014 - May 2015
An interpreted programming language called "Kitteh". It is written from scratch in Java, and the syntax is similar to Javascript, but with keywords changed to be more feline.
-
Mandelbrot set viewer
(intermittently) March 2013 - March 2015
An interactive Java viewer of the Mandelbrot set. Features include zooming, changing Z exponent, viewing Julia sets, viewing orbits, changing orbit limit, and exporting Julia sets along a line as a GIF.
-
Lisp interpreter
March 2013 - March 2013
Java program to run simple lisp programs. Support for arithmetic, conditionals, defining functions and lambdas, and recursion.
-
Reed-Solomon error correction
September 2013 - January 2014
A full Java implementation of Reed-Solomon error correction. Able to detect and correct errors in transmitted messages.
-
3D renderer
April 2014 - October 2014
3D renderer and lighting engine written in Java.
-
SIRDS
October 2013 - October 2013
A small Java program to generate Single Image Random Dot Stereograms.
-
Game of Life
March 2013 - March 2013
Interactive Java program to display and edit cellular automata in Conway's Game of Life.
-
Battleship
December 2014 - December 2014
Interactive Monte Carlo Java program that helps the user guess where their opponent has placed their ships, based on current hits and misses.
-
Connect Four
March 2013 - April 2013
Interactive Java program to solve Connect Four for a given board state using minimax graph tree search.