As a member of the Trope Tank during the Spring 2018 academic term, I co-founded Taper together with Professor Nick Montfort, Dr. Angela Chang, and Professor Lillian-Yvonne Bertram. As described on its home page, Taper is an online magazine published by Bad Quarto, focusing on very short web programs (2048 characters or fewer) that exhibit poetic and/or artistic qualities. I was a member of the Taper Editorial Collective for Taper #1 – Taper #4, and have contributed works to Taper issues 1, 2, 3, and 8 (shown below).

Taper #1

Spring 2018

193

“193” is a simple exploration game through an abstract world of text. The source code is a (very) tiny 1008 characters. The game can be played here.

The original published commentary:

“193” is an interactive, randomly generated 1kb JavaScript+Canvas poem. Controls are mapped to the arrow keys. It is not immediately evident from the program’s execution, however the spaces being traversed adhere to the properties of Euclidean geometry. Backtracking will reveal familiar landmarks.

193 is the result of a bitwise XOR of 404 in decimal and 0b10 repeating. Inspiration for this poem was drawn from Adventure by Warren Robinett, as well as computational poems such as Taroko Gorge by Nick Montfort.

“ArcMaze” is a simple computational abstract art piece inspired by linear printing in terminal emulators (among other things). It can be viewed here.

The original published commentary:

“ArcMaze” is a 1kb random concrete poem written in JavaScript, using Canvas.

This generator is interactive only in the sense that the user may click several times on the canvas in order to restart the program. The rest of the program’s output is dictated entirely by the code and is not affected by user input.

Inspiration for this generator was drawn from “Sega Swirl” and the short BASIC program, “10 PRINT CHR$(205.5+RND(1)); : GOTO 10”

ArcMaze was originally written for the Love2D framework (0.10.0) as a 255-byte program:

l=love g=l.graphics v=g.newCanvas()r=math.random x,y=0,0
function l.update()x=x+20 if x>800 then x,y=0,y+20 end v:renderTo(function()g.setColor(r(255),r(255),r(255))g.arc("fill",x,y,10,r(0,3)*1.57,r(1,4)*1.57)g.reset()end)end
function l.draw()g.draw(v)end

“193” and “ArcMaze” displayed at the Trope Tank for the Taper #1 launch party.
Photo courtesy of Nick Montfort, article here

“Thermodynamics” is a computational poem on the nature of entropy, change, and the passage of time. It can be viewed here.

The original published commentary:

“Thermodynamics” is a 2kb random concrete poem written in JavaScript, using canvas functionality.

Context frames meaning, and establishes the canvas upon which thoughts are painted. Paint exists as a concrete entity in material existence, yet it is in our usage of its physical qualities that we impart upon it the sense of an ontological nature. In being unable to know the ontology and epistemic certainty that leads us to this manifestation, the root of causal interaction escapes our grasp. So too, as we derive and define our reality does it reflect the glimpses of being, and in ephemeral fragments shapes a mirror for truth.

Spring 2019

“Triangles of Mind” is a 2kb computational poem that paints a visualization of the Merge operator, while exploring the emergence of complexity. It can be viewed here.

The original published commentary:

“Triangles of Mind” is a geometric exploration of complexity and symbolic representation inspired by the concept of Merge in Why Only Us (Berwick and Chomsky, 2015). The second law of thermodynamics roughly indicates that ordered systems decay and become disordered over time. Merge as a concept may provide an alternate symbolic paradigm of increasing complexity across iterations via combination of disparate ideas. This visual poem serves as a tangential response to my Taper #2 poem, “Thermodynamics”. On a programmatic level, “Triangles of Mind” is an exploration of function generation and combination inspired by the function-level programming paradigm.

Spring 2022

“Lambda Blaster” is a fully playable 2048-byte tribute to a classic arcade game. It can be played here. (Arrow keys to move, space bar to shoot)

The original published commentary:

λ.COMMENTARY:  The source code for this game was written from the ground up, character by character, and is presented in its unmodified form below. A common approach to writing short programs for Taper or similar publications is to first write code in standard programming style and conventions, then to use a minification program to remove excess characters. These minification programs, while useful, generally cannot analyze semantics to find the various shortcuts and tricks to taper code length that a human programmer might employ.

There is great joy in finding and using these tricks, and this process works best in the mindset that emerges from writing code character by character, ground-up. Almost every sane programming convention is forgone and broken in the process. Variables are reused across semantic meanings, textual coincidences are exploited, and code segments serve multiple simultaneous purposes. Actions are achieved through relatively low-level concrete syntax, somewhat reminiscent of the assembly programming used to create the original games and programs of the 8-bit era (despite in this case actually being written in a high-level interpreted language). The resulting code is dense, terse, opaque. Every character is essential, and only patterns and structure remain, almost devoid of symbolic identifiers. Although abstractions are an indispensable tool in the construction of complex, maintainable systems, a temporary return to concrete style can be a much-needed reprieve from climbing the grand Tower of Abstraction that ceaselessly reaches for the heavens.

This joy, I believe, is characteristic of the same spirit that fueled the astonishing creativity of the 8-bit era. It is an echo of the drive programmers had in pushing the limits of their hardware, making every bit, CPU cycle, and memory access count. When everything is at a premium, the successful, lasting games are those that boil their mechanics down to those elements maximally suited for challenge and fun. More than 40 years later, many of these games still retain a timeless quality, and are still just as enjoyable and unique as when they were first created.

Even though this small tribute program will generally not be displayed on a cathode-ray tube, I hope it is just as fun without the phosphor layer, electron guns, and 2,000+ volt circuitry. (To any arcade collectors or restorers reading this, do not swap your CRTs for LCDs. Vive le voltage!)

Sebastian Bartlett Fernandez