Web apps


A modern re-skinned editor for levels in the classic game Manufactoria. Save and load programs from regular classic Manufactoria share URLs, and automate the verification of your programs by providing a test function in javascript. Credit goes to @wkevina for most of the architecture and editor code – I merely wrote the interpreter and the automated testing.

As part of an exercise in learning Haskell, I also wrote a Haskell interpreter for the Manufactoria Esolang, a programming language that (essentially) implements Manufactoria.

A satire generator making fun of the nLab, a wiki for higher mathematics and category theory. Generates totally legitmate articles about totally legitimate category theory.

It works using my package nearley-generator, which turns a Nearley grammar into an efficient fake-text generator.

Construct a collection of standard and/or completely custom polyominos, and an arbitrary region to fit them in, and this web app will find and display a valid tiling that places all of the polyominos in the region (if it exists).The solver works by converting the problem to SAT and applying boolean-sat, a javascript SAT solver.

Solving NP-hard problems by trial and error can be frustrating, so this tool got written during my playthrough of The Talos Principle, which features instances of these puzzles. As is to be expected, large puzzles may not be computationally tractable to solve in a web browser using javascript, but there are solutions for that.

A small page browse and filter over all the vocabulary and Kanji covered in the popular introductory Japanese textbooks, Genki I and II. Mostly and excuse to play with full offline support with service workers and basic PWA (progressive web app) functionality.

Find posts you or others have interacted with in the past on Reddit with stronger search filtering. Search the submitted, upvoted, or downvoted posts of an arbitrary user and filter by subreddit, title, domain, poster, and link file extension.

Web Components


A web component for creating, displaying, and editing polyominos. Seen here is an instance of the web component itself (try clicking!). More features can be seen at the Codepen demo, and the component can be found on npm. Built with CSS grids and lit-element.
A web component for displaying and selecting points on a Smith chart. Seen here is an instance of the web component itself (try clicking around!) A Codepen demo is also available, and the component can be found on npm. Built with plain SVG and lit-element.

The currently selected point is:
r =
z =

Tiny things


Generate “the clock puzzles” from Final Fantasy XIII 2 - though I really don’t know why anyone would ever want to. Also includes a solver for the puzzles.

A playground/simulator for Project Euler 208

Visualize a class schedule based on text input, and share the link with others