Daniel Temkin

Updates by email:

New Languages

New Languages zine


A printed collection of my programming languages, including info on most of the languages below. 24 pages, available from Transfer Gallery for $CHEAP (or reach out to me; I love to trade for other zines / art books). There will be an issue two with new material.




A JavaScript library expanding JS to allow typos and misspellings as valid code. Published in Leonardo and presented at SIGGRAPH, 2018



A language where code is written as empty folders. the program is encoded into a directory structure. All files within are ignored, as are the names of the folders. Commands and expressions are encoded by the pattern of folders within folders. Allows for infinitely long programs that take up 0 bytes on disk (* yes there's a caveat).

Light Pattern


A language where code is written with photographs. The LP coder creates algorithmic photography: a series of photos that, in addition to their visual content, function as a program when run in Light Pattern. Programs written by the creator of LP explore this relationship.


A language made up of all the programs that fail to compile in C. Any piece of text (or other information) that is not a C program, or an imperfect C program, is a program in ↄ, a language that may or may not exist, with an interpreter which you might already have on your machine.



A language where one writes code using music; the program is a MIDI file read by the compiler in terms of pitch intervals (the first language to function this way). The coder creates a song that also functions as a program. Designed with the songwriter in mind, allowing flexibility in how the music is constructed.

Time Out


A language where any meaningful action takes place between the lines of code. Every command is a time-out, an instruction to sleep. This is the only thing accepted as a valid command. The other functionality of the language occurs based on how much time has passed. This means that waiting the correct amount of time might fire a print command, or adding a value to the stack. As a web-based language, one has to keep the program running in the active tab and not click away, or risk the wrong amount of time passing, causing the program to fail. Only rapt attention by the programmer (or an inactive computer) will let the program run as intended.