Computational Letterforms and Layout (Schedule, Spring
2025)
Syllabus here. Readings should be generally available
on the web, unless otherwise indicated. Some readings will only be
accessible when connected to an NYU network. Please contact me if you
have trouble accessing any of the readings.
Please install Python
on your computer. Once Python is installed, use the pip
command to install Jupyter
Notebook. Note that this will probably require doing a little bit of
work at the command line (Terminal on macOS, PowerShell on Windows).
Make sure that you can launch Jupyter Notebook on your machine before we
begin next session.
NOTE: If you already have a working installation of
Python 3 on your computer, you don’t need to install it again! Just use
the version that you already have installed.
Linux users and users of other UNIX-alikes: In this class, you can
probably get away with using your distribution’s default Python 3.
However, you may want to research a tool like pyenv or asdf to make it easier to have multiple
versions of Python available on your machine at once (e.g., your
distribution’s Python alongside the latest version of Python).
Another option for many platforms is Anaconda (though please
read the licensing terms).
Note that (as far as I know) there is no satisfactory option for
installing Python on iOS or Android. If you only have access to iOS
and/or Android, you may be better off using a web-hosted service like Python Anywhere (you
will need their $5/mo service, which includes access to Jupyter
Notebooks). You can also use Google Colab in a
pinch.
Reading assigned
To be discussed at the beginning of session 02.
Pipkin gives a clear and friendly historical
overview of character encoding. How might character encoding have turned
out differently? Amiri Baraka and Ross
Gay present different takes on writing interfaces.
Consider the material of the tools you use for writing: where do those
tools come from? What affordances do they have? What kinds of written
artifacts do they produce? Weingart talks in detail
about digital materiality: how is text manipulated, contorted,
reconstituted, constrained in the process of being digitized and
transmitted electronically? Drucker gives an overview
of different types of materiality on the page and argues that text is
“an event, rather than an entity. The event is the entire system of
reader, aesthetic object and interpretation – but in that set of
relations, the ‘text’ is constituted anew each time.” Do you agree?
Baraka, Amiri. “Technology & Ethos.” Raise, Race, Rays,
Raze; Essays since 1965, Random House, 1972, pp. 155–58.
Python cheatsheet: a
good overview of fundamental syntax and important parts of the standard
library
Think
Python: thoughtful tutorial from the ground up, in Jupyter notebook
format!
If you do a web search for Python programming questions, you’ll
usually find yourself faced with a lot of spammy sites of dubious
quality (and a lot of pay-only Medium posts, also of dubious quality).
One site that comes up a lot in search results that is pretty okay (at
least for now) is Real Python. You
might consider using their search feature directly instead of a general
web search.
If you’re interested in branching out, Awesome Python provides an
up-to-date index of Python tools and libraries, organized by topic.
Using the example code discussed in class, create a composition based
on computational manipulation of data, either on a
character-by-character or byte-by-byte basis.
Beingessner’s article is an informative overview of
the technology of text rendering, and how even the most straightforward
kinds of text rendering are incredibly complicated. Can you think of
kinds of text that would be impossible to render with a
computer? Eve gives a history of the most popular
format for digital page design-the PDF-and argues that the digital page
is not a “substitution of screen for codex” but instead a hybrid of
conventions from many historical and physical formats. I’m especially
interested in his argument that the wax tablet prefigures the
“non-rivalrous malleability” of the digital screen. Li
writes extensively on his techninques for writing concrete poetry (in
Chinese) and strategies that have been deployed to translate it (into
English). Can you think of other kinds of text or particular examples of
texts that similarly resist translation? Reed’s text
explores Terrance Hayes’ “Sonnet” as a limit case of concrete poetics,
arguing that “in drawing attention to the ‘facticity’ of words” concrete
poetry “suggests the possibilities of unsaying—speaking of the world and
history without repeating the already said,” thereby enabling a unique
form of witness.
Only pp. 27-37 from Reed, Anthony. “Broken Witness: Concrete
Poetry and a Poetics of Unsaying.” Freedom Time: The Poetics and
Politics of Black Experimental Writing, Johns Hopkins University
Press, 2014, pp. 27–58. (For context, you may want to review the
concrete works in N.H. Pritchard’s The
Matrix, particularly sections II, III and IV.)
Johnston, David (Jhave). “The
Assimilation of Text by Image.” Electronic Book Review, 7
Oct. 2012. (Wide-ranging, contains many great references for interesting
work, well-argued though I’m not sure I agree with the conclusions, a
bit unhinged in that Jhave way.)
S Cearley. How
to read a concrete poem. (Helpful if you’re unfamiliar with the
genre and need a gentle introduction.)
Wichary, Marcin. “How
I Learned to Hate InDesign.” Shift Happens Newsletter, 6 July 2021.
(A tale of computational page design.)
The Electronic
Literature Collection is a good place to look for examples of
specifically computational concrete poetry (see the “visual” categories
of ELC2
and ELC4
for example.)
No homework this week, but here are some suggested activities:
Write a web page by hand and upload it somewhere on the Internet
(e.g., neocities).
Revisit sketch #2 to use HTML/CSS in its output for formatting
purposes, or use one of the methods of string interpolation that we
talked about in today’s tutorial.
Figure out how to replicate some of the work that we’ve been doing
in class so far, but in a different programming language (e.g.,
JavaScript, C#).
R.P. Draper says
that concrete poetry “is the creation of verbal artefacts which exploit
the possibilities, not only of sound, sense and rhythm—the traditional
fields of poetry—but also of … the two-dimensional space of letters on
the printed page.” Imagine a concrete poetry that also exploits the
possibilities of computation (by, e.g., algorithmically placing words on
the page). Make use of the in-class example code or other computational
tools.
Create a computer program that produces an asemic writing
composition. Your program should implement a system of rules that
produce visual artifacts that imitate the motion of physical writing or
suggest the appearance of written language. Use the AxiDraw plotter to
draw your piece on something (paper probably but I’m open to
alternatives).
No homework this week. Spend some time revisiting previous
assignments and making small prototypes to help you figure out what you
want to do for your final project.