Here's a page for past personal projects.
Check out my current projects!
A barebones UI library to help with prototyping Kotlin graphical applications. Has evolved into something rather enormous and is now being spliced into isca.
A Discord bot written in TypeScript which handles quotes and helped me learn the language. Note: it's been renamed to Parrot.
Decided to work on something inside ComputerCraft that let you do (relatively) ridiculously performant graphics operations. Saw a lot of success but put the project on hold because I wanted fancy shader compilation and that's complicated.
After getting stupendously addicted to Cracking the Cryptic sudoku videos, I had a shot at building a sudoku solver. It supported a bunch of fancy non-standard rules.
Started working on a drawing program to go along with a graphics tablet I'd bought. Turns out GLFW doesn't support graphics tablets. RIP project.
During work experience, I used Qt signals, and thought they
were kinda cool. Wrote a Signal
implementation
for Kotlin, and added Observable
s after reading
a bit about reactive streams.
I've since updated this to match my current workflow with
observable streams and also got it hosted on
JitPack:
A sphere tracing demo/playground with dynamic objects, time control, and reflections! I was inspired by a Sebastian Lague video and decided to give it a go myself, implementing reflection, shadows, camera movement, and dynamic SDF rendering.
Learnt about parser combinators in my 2nd year of uni and wrote my own library in Kotlin to explore the details and learn a bit more.
LMC-Simulator is a "tool" I made during A-level compsci to simulate Little Man Computer code execution. We were having to do that manually as part of the class, so I made this partly to get out of work (:3) but also to validate everybody's attempts.
Boxes is a computer version of a game I enjoyed playing on paper. Drawing the lines was a pain, so I figured I could write some code to do it for me!
A library I made when starting out with OpenGL code on the JVM - this helped with the low level stuff, allowing a bunch of programs (including the demo shown here) to do OpenGL more easily.
A Tower defence game I made to demo Sheets (see below). Gameplay was lacking but those animations...
The single most awesome all-in-one UI framework for ComputerCraft. Had awesome native animation support, epic styling, dependent properties which could dynamically update, and a bunch of built in element types.
I've had a long lasting goal of creating an epic programming language. Flux was an early attempt at that, where I learned about parsing and compilation.
With a bunch of projects going on inside ComputerCraft, I was frustrated at the lack of boundaries between them. I made this to isolate workspaces and be able to test other people's potentially dodgy programs in a sandbox.
Had to make a website with blog-ish posts. Wrote a markup parser. Was pretty cool.
After attempting to write a language, I got frustrated at how awkward parsing was, and how tools like ANTLR work. ASTify was going to use a custom language to define syntax trees and build parsers from those. It never really took off and the repo's now been cannibalised for another project.
Lua sucks at packaging. ComputerCraft made it even harder. Amend was a pretty decent build system that let you compile a bunch of files seamlessly into a single executable, even allowing some preprocessing such as minification and macros.
Tiny game with circles. agar.io but worse because why not.
One of the earlier games I've made. Pretty much a 2D minecraft, but really really bad, glitchy, and incomplete! I was learning about architecting projects like games that could be fairly extensible, and managed to get quite a nice system where everything in the game was added by extensions. It was also my first time using noise for terrain generation.
Was tired of awkward config parsing and wanted to test the parser combinators (see below). This was before kotlinx-serialization was a thing.
Handled comms between kotlin and python over TCP, I think for some robotics projects?