Projects

point-and-line-to-plane

A futile attempt at capturing the ideas in Wassily Kandinsky’s Point and Line to Plane in two domain specific languages, one to generate images the other to analyze them. Runs in the browser.

exquisite-corpse

Exquisite corpse of the surrealists. There is no backend, the pictures are encoded in the link. Runs in the browser.

quine-engine

A framework to generate exotic quines with proofs in Lean. Some examples are SVG and PostScript files that draw QR and Aztec codes of themselves, a Python program that plays its own source as the sound of a modem, and a G-code program that laser-cuts its own source out of a sheet.

fonksiyonel-programlamaya-davet

Matematikçiler için Fonksiyonel Programlamaya Davet (An Invitation to Functional Programming for Mathematicians), a book in Turkish. It invites pure mathematicians to functional programming. Read the PDF.

visual-proof-engine

A domain specific language for proofs without words. It can be rendered into animations or elaborated into Lean proofs.

turkce-sayi-latex

A LuaLaTeX package that puts the right Turkish suffix on the numbers LaTeX generates, such as page references, section numbers and citations. The package looks at the Turkish name of the number and applies vowel harmony and consonant assimilation to whatever suffix you type.

homemade-fca

A small tool to compute the formal concept lattice of a table and draws it using Mermaid. Runs in the browser. I gave a talk about it, Table Goes in, Picture Comes Out: slides.

straightedge-compass

A domain specific language for straightedge-and-compass constructions based on exact arithmetic in the constructible field. Runs in the browser.

dad-joke-attack

A tiny browser game made with Godot. You are a boy tortured by his father’s jokes, who one day fights back by rolling his eyes so hard that they leave his skull and destroy the jokes.

cubed-tomatoes

A puzzle game influenced by Eddie Elliot’s video streamer. It runs in the browser on itch.io.

shrinktris

A block-based game for the Raspberry Pi Pico with a 240×135 display module. When you clear lines, the board can get smaller, down to blocks of a single pixel.