Levels I've built

Projects

Bots, libraries, desktop tools and systems experiments. Each one solves a real problem for someone, often me first. Spin the moon and pick a level, or scroll on for the full list.

The most impressive projects.

Tools & libraries

Smaller utilities, libraries and experiments that solve one problem well.

Terminal output of hprint's example: centred headers with different border characters, including a Japanese one
HPrint · 2026

HPrint

Stable2026Author

Header-only C++23 utility for centred terminal headers, with compile-time border characters, UTF-8 aware width and terminal size detection.

  • C++23
  • CMake
  • v1.2.0release
abba's four protected areas (memory, files, input and settings) around a shield, with its INI configuration
ABBA · 2026 – now

ABBA

WIP2026 – nowAuthor

Arbitrary Binary Behavioural Anticheat. A C++26 anti-tamper companion that runs next to any program and watches its memory, files and configuration.

  • C++26
  • CMake
  • ~9,000lines of C++
The simulator's CPU, memory, console and instruction set views after running LOAD 5, ADD 3, OUTPUT, HALT
Von Neumann Machine Simulator · 2026

Von Neumann Machine Simulator

Active2026Co-author (with Krisunio)

A teaching simulator for a simple Von Neumann machine, with a native GUI showing the CPU, registers, memory and console while programs step through.

  • Rust
  • egui
  • eframe
  • serde
  • ~1,700lines of Rust
  • 12opcodes
Right Ctrl and Insert mapped to the hiragana/katakana and full/half width axes of Japanese input
IBus Mozc System · 2026

IBus Mozc System

Stable2026Author

Scripts and X11/XFCE configuration that make Japanese input with IBus and Mozc work reliably on a keyboard with no Japanese keys.

  • Python
  • POSIX sh
  • X11
  • xdotool
  • xmodmap
A monitor split into four quadrants, one for each of the Super+1 to Super+4 shortcuts
Xfce Tiler · 2026

Xfce Tiler

Stable2026Author

Quadrant, half and directional window tiling for XFCE / xfwm4, across multiple monitors, driven by keyboard chords.

  • Python 3
  • X11
  • Xinerama
  • EWMH
The PATH editor listing entries with %JAVA_HOME% kept unexpanded, next to the Windows error it works around
PATH Variable Editor · 2025

PATH Variable Editor

Stable2025Author

Windows GUI for editing User and System PATH entries that keeps working past the 2047-character limit that breaks the built-in editor.

  • Python
  • Tkinter
  • winreg
  • ctypes
A Discord favourites export turning into downloaded GIFs, with video sources converted to GIF
Download Favourite Discord GIFs · 2026

Downloads every GIF in a Discord favourites export in parallel, converts video sources to proper GIFs, and names files after what they contain.

  • Python 3.10+
  • requests
  • ffmpeg
The ray tracer's final render of matte, metal and glass spheres, shown in a window
Raytracer · 2024

Raytracer

Paused2024Author

A CPU ray tracer in C++ following Ray Tracing in One Weekend, with diffuse, metal and glass materials.

  • C++
  • CMake
A frame-rate graph going from uncapped to a steady 60 once strangle is applied
Libstrangle dlsym Fix · 2026

Libstrangle dlsym Fix

Stable2026Maintainer of the fork

A fork of milaq's libstrangle frame limiter with the __libc_dlsym lookup corrected, so OpenGL frame limiting works again on current glibc.

  • C
  • glibc
  • OpenGL
X11 Mic Monitor · 2026

X11 Mic Monitor

Stable2026Author

A small python program for X11, which plays back a recording of the current microphone input with a bit of delay. Used for testing how my voice sounds before I say something.

  • python
  • bash

Community

Things I build and run for the communities I help manage.

A LiveSplit layout for Escape the Backrooms next to The Watcher bot confirming a linked speedrun.com profile
Escape the Backrooms Community · Ongoing

Escape the Backrooms Community

ActiveOngoingCommunity manager (Fancy Games) · organisation owner

The tooling I build and run for the Escape the Backrooms community as a community manager for Fancy Games: a speedrun verification bot, a LiveSplit autosplitter, a UE4SS fork and the community wiki.

  • Python
  • aiohttp
  • MongoDB
  • ASL (LiveSplit)
  • C++
  • UE4SS
  • 4repositories

University

Coursework I went further with than the brief asked.

Network diagram: 21 one-hot inputs from car.data's six attributes, hidden layers and four output classes
Neural Network from scratch · 2025

Neural Network from scratch

Stable2025Author

A multithreaded feed-forward neural network in C++26 with no ML libraries, trained on UCI Car Evaluation and MNIST. Submitted as my algorithms and data structures final project.

  • C++26
  • CMake
  • CTest
  • ~3,900lines of C++
Heap sort mid-run in Visual Sorter v2, with compared, swapped and sorted bars highlighted
Visual Sorter v2 · 2025

Visual Sorter v2

Stable2025Author

Twelve sorting algorithms drawn one comparison at a time with OpenGL and ImGui, with audio, a benchmarking mode and plotted results.

  • C++20
  • OpenGL
  • GLFW
  • SDL3
  • ImGui
  • Python
  • pandas
  • matplotlib
  • 12algorithms
Process diagram: the master process and the patient, registration, triage, doctor and dispatcher roles around a shared-memory registry
Emergency Department simulation · 2025 – 2026

Emergency Department simulation

Stable2025 – 2026Author

A hospital emergency department where every role is a separate process, coordinating purely through POSIX message queues, shared memory, semaphores and signals.

  • C++20
  • POSIX IPC
  • CMake
  • Linux
  • ~4,700lines of C++
  • 6process roles
The heat equation and the Crank-Nicolson stencil on a chalkboard, with a plot of analytic against numerical solutions
Numerical methods labs · 2026

Numerical methods labs

Archived2026Author

Twelve lab programs for my numerical methods course, from nonlinear systems and linear solvers to finite-difference methods for partial differential equations.

  • C++
  • Python
  • matplotlib
Folders for semesters 3 to 5 and the .NET class, with cards for the larger university projects
University coursework · 2024 – now

University coursework

Active2024 – nowStudent

Everything from my computer science degree, organised by semester, plus every exercise from the .NET course.

  • C
  • C++
  • Python
  • Jupyter
  • C#

Configs & tinkering

Miscellaneous configs and themes I use.

A TF2 HUD mock-up with the rebuilt scoreboard, health, speedometer, cloak meter and ammo
G-Mang HUD, MattFor Edition · Ongoing

G-Mang HUD, MattFor Edition

MaintainedOngoingMaintainer of this edition

My long-running modification of a 16-year-old TF2 HUD, tuned for playing Spy, with a speedometer moved out of the way of the cloak meter and a rebuilt scoreboard.

  • TF2 HUD resource files
Table of .bashrc functions and the packages each one needs
.bashrc · Ongoing

.bashrc

MaintainedOngoingAuthor

My shell setup for Void Linux, with system, packaging, media and programming helpers, each documented with the packages it needs.

  • Bash
A GTK file chooser in the theme's colours, showing the gtk-3.0, gtk-4.0 and Microdeck3 folders
GTK Config · 2026

GTK Config

Maintained2026Author

My GTK 3 and GTK 4 theme and configuration for Void Linux.

  • CSS
  • GTK 3
  • GTK 4
A sticky note in the XFCE notes plugin describing what the patch changes
Xfce4 Notes Plugin · 2026

Xfce4 Notes Plugin

Maintained2026Maintainer of the mirror

A mirror of the XFCE notes plugin with the .git folder detection and the folder name in the title removed.

  • Vala
  • C

Archive

The Grand Archives.

The Relaxy! logo with the v1 public showcase label
Relaxy! Public v1 · 2023

Relaxy! Public v1

Archived2023Author

The first stripped-down public showcase of the Relaxy! bot, from 2023. Superseded by relaxy-public-v2.

  • JavaScript
  • Node.js
  • discord.js
The Grand Archives bot answering the alchemy command with an Emoji Kitchen mix of a dog and a cat
Grand Archives Discord Bot · 2021-2023

Grand Archives Discord Bot

Archived2021-2023Author

A bot for an old roleplay server called The Grand Archives. Fun fact: emoji-mixer happened because I wanted the alchemy command to combine emojis!

  • JavaScript
  • Node.js
  • discord.js
A classic Windows dialog splitting runners into two teams
Escape the Backrooms team maker · 2023

Escape the Backrooms team maker

Archived2023Author

A Win32 app that builds teams for Escape the Backrooms, used by nightmare-difficulty runners early in the game's life.

  • C++
  • Win32
A Matura computer science exam sheet with a short Python solution
Matura exam preparation · 2024

Matura exam preparation

Archived2024Author

The scripts and notes I used as study material for the Polish Matura computer science exam.

  • Python
The Asteroids ship, a first backpropagation network and a sorting visualiser
Early projects · Early days

Early projects

ArchivedEarly daysAuthor

An Asteroids clone in SFML, a C sorting visualiser built in Code::Blocks and a first backpropagation network in Python, from when I was first learning.

  • C++
  • SFML
  • C
  • Python