I’ve recently taken an interest in the demoscene, and so I’ve written a few demos for fun. They’re written in C++ and have Perlin noise, ordered Bayer dithering, colour quantization, and a basic CPU 3D rasterizer.
Projects
Ubisoft NEXT 2026
I participated in Ubisoft NEXT 2026. I didn’t end up finishing because I didn’t take it very seriously until it was too late, but I wrote a small linear algebra library and a pretty neat renderer with the API they provided, and it could load Quake 2 models. The main issue with the code I did write was that it was underdocumented, but I was able to at least structure it well.


Minecraft WASM runtime
This project embeds a WebAssembly runtime into Minecraft, and also renders a framebuffer into the world as blocks. I wrote a couple Python scripts to find the average colour of each block texture in the game, and then map block names to a list of colours in a palette. The guest program can swap the palettes and write to the framebuffer however it pleases, which is enough to run DOOM’s main menu. Had I figured out a good way to implement user input, the game would have been fully playable within Minecraft. It uses a datapack containing the palettes and program. Additionally, I had to write a script to dump DOOM’s palette data so I could use it in the mod.
x86 ring 0 software rasterizer
The actual rasterizer was lacking because I never got texture mapping working correctly, but I gained a substantial understanding of how to work with serial, interrupts, the GDT, and BIOS calls.

A very low poly Utah teapot with what’s supposed to be the missing texture used in Source games and Minecraft
2D Sorting Visualizer
Someone dared me to visualize sorting a billion numbers, so I came up with this visualization that I think is pretty neat. The “expected” X and Y of a number given that the list is sorted determine the red and blue of the pixel, so you get a nice smooth gradient at the end.
Chifir Engine

Chifir Engine was my second game engine project. I wrote it without using the C runtime or C++ STL and very few outside libraries. I never really reached the point of it being anything close to an engine, but I designed and partly implemented an RHI, and a basic SIMD math library.
After a certain point it was more of an exercise in writing support code and platform glue than an engine, but I learned a lot from it. I gained a much better understanding of abstraction and SIMD from it.
Purpl Engine
Purpl Engine is my first game engine project. It went through several revisions stretching as far back as 2019, before I moved on to other projects. The final revision had a basic renderer with Vulkan, Direct3D 12, and OpenGL backends, and could do basic lighting. It supported Windows, Linux, and Nintendo Switch.
This is a demo of it running on my modded Switch.
Minecraft Server Updater
A long time ago, I wrote a simple program that would fetch the Minecraft server JAR for the latest snapshot release, so I wouldn’t have to do it myself.