Typography

c32-fig-5001.jpg

Ransom Letter

Create a sketch to display a brief text in which each letter is individually set with a random typeface and font size.

c32-fig-5002.jpg

One-Line Typewriter

Create a sketch that accumulates and displays a string of letters as they are typed. For an additional challenge, delete characters when the backspace key is pressed.

c32-fig-5003.jpg

Dynamic Text

Choose a word describing a bodily action, such as “grow,” “shiver,” or “jump.” Animate this word on your screen in a way that represents its meaning. For example, the word “grow” could become larger over time.

c32-fig-5004.jpg

Responsive Text

Assign an interactive behavior to a word, such as “avoid” or “tickle,” that expressively defines its personality relative to the cursor.1

c32-fig-5005.jpg

Scrolling Headlines (Chyron)

Choose a series of recent news headlines and write a program that displays them scrolling along the bottom of the screen. For an additional challenge, fetch the latest headlines automatically using a news API.

c32-fig-5006.jpg

Split-Flap Display (Word Ladder)

Curate a list of words that all have the same number of letters. Create a display that interpolates from one word to the next, in the manner of a split-flap airport sign, by iterating through the intermediate letters in alphabetical order.

c32-fig-5007.jpg

Word Finder

Typeset a brief text, such as a poem or email. Create a program that locates instances of a “word of interest” in that text. Your program should perform a visual treatment of that word, such as highlighting, underlining, or redaction.2

c32-fig-5008.jpg

Letterform Collage Tool

Create a tool that allows a user to make abstract collages or concrete poetry with letterforms. The user should be able to select a letter with the keyboard and then place it using the mouse. Save three compositions made with your tool.

c32-fig-5009.jpg

Procrustean Typography

In Greek mythology, Procrustes stretched or cut different people to make them all fit in a certain iron bed. You will do the same with type. Create a program that captures words typed by the user and adjusts their font size so that they always fit the precise width of the canvas.

c32-fig-5010.jpg

Text along a Curve

Set text along a curve, writing code to position each letter. If you can, orient each letter so that it is locally perpendicular to the curve.3

c32-fig-5011.jpg

Glyph Hacking: Playing with Outlines

In this exercise you will load a typeface, modify its characters, and save out a new font of your own. Identify a method for loading font outlines into your preferred programming environment, such as by converting a TTF typeface to SVG using FontForge, or by accessing glyph contours directly with textToPoints() (in p5.js), opentype.js, the Rune.Font plugin4 (in Rune.js), or the Geomerative library5 (in Java Processing). Using code, create a treatment for all of the letters in the alphabet, such as making them puffy or spiky. Name your new font, and use your font to typeset its name. If you can, export your new glyphs to .ttf or another font format when you have finished.

c32-fig-5012.jpg

Tiny Word Processor

Using a fixed-width font, create a word processor that allows a user to type characters into a field of cells. Provide a text cursor whose position can be moved with the arrow keys and mouse. Implement word-wrapping, deleting (with the backspace key), and text file exporting.

c32-fig-5013.jpg

ASCII Vision

Write a program to generate an ASCII art representation of an image. To do this, you'll need a sequence of characters that represents different brightness values in an image. A common character ramp for representing 10 levels of grey is “@%#*+=-:. “6

Notes