Programming projects

Perhaps somewhat inevitably for someone on Gemini I like to program a lot, so I have a number of programming projects that are in various states of completion. Normally they are in service of some creative end, but a few are more general projects that can be used in more contexts than its original one.

This document attempts to enumerate the currently relevant projects.

Major projects


This is a text-based animation engine that specifically is used to match my mental model of how animations work. Specifically, I imagine a design where an animation consists of some slips of paper, and they move around on some table. Only, since this is a computer, what's drawn on the paper can also change. In essence, a sprite-based animation system.

The way to specify the animation is to use a language which currently has no name but would be a script in both senses of the word: a text file of instructions for a computer to interpret, and also a list of directions from which actors need to perform in order to create the production.


A much more personalised program. It takes in a scan and a typed-in set of metadata and puts it in a specialised database that can then be searched and displayed. It would also post to certain social media.

It is a necessary rewrite after the previous generation died from not being able to keep up with a desktop upgrade.

Previous iterations of this program used AutoHotKey and then Lisp, but this one would most likely be a collection of shell scripts and Lisp centred on the database.


A Lisp project – the very first I ever did.

The idea is simple: take a representation of a piece's move in Betza funny notation and then display a move diagram of it. Despite how simple it sounds, it's sufficiently nontrivial in terms of getting the right libraries that it has taken me years to get half of it done.

Betza notation

I question my own programming chops.


A mahjong engine for my own variant, which has its own idiosyncrasies that prohibit a conventional off-the-shelf engine (where there is one). Part of a larger exercise that can nevertheless be used on its own.

A game format for recording mahjong games.


Radiance is a Lisp web server architecture. It's sufficient flexible to serve anything, and I intend eventually to implement the Gemini protocol on it. Then I can use it to run my own web server on my own domain.

Other projects

When I remember them I'll put them here.