CRITICAL MAKING

ACT II · TEXTILE

Patterns

Tracery, by Kate Compton (her tutorial), is a grammar for generating text. Like a quilt pattern, it names the pieces, says how they fit together, and lets them repeat in new combinations.

From the talk: why keep making?

  • Suggested: 35 min
  • Make: a grammar, plus a flat version for print
  • Need: a browser

Every block is a rule. Piece them together.

Like Mad Libs, run backwards

Left: a fill-in-the-blank pad reading '(person) (verb, past tense) a (noun) out of (plural noun)', filled in by hand with 'a quilter stitched a map out of dead links'. An arrow points right to the same sentence as a Tracery grammar: an origin rule with #person#, #made#, #thing# and #material# in place of the blanks, and a list of options for each.

If you've played Mad Libs, you already know how Tracery works. A Mad Libs page is a story with blanks, and under each blank is a label: noun, verb, past tense, plural noun. A Tracery grammar is the same thing. The story with blanks is the origin rule; each label becomes a symbol in #hashes#.

Start with Kate Compton's own Tracery tutorial. It walks through symbols, rules and modifiers with live examples, and goes well past what we need today. Keep it open in a tab.

5 min

1. Read a grammar

A Tracery grammar is written in JSON: a list of named rules. Each name is a symbol; each symbol has a list of options. Wrap a symbol in #hashes# to have Tracery pick one of its options there.

{
  "origin": ["#maker.capitalize# #made# #thing.a# out of #material#."],
  "maker": ["a quilter", "a student", "the bot"],
  "made": ["stitched", "folded", "remixed"],
  "thing": ["map", "archive", "zine"],
  "material": ["old t-shirts", "index cards", "dead links"]
}
8 min

2. The playground

Edit the grammar and the output changes as you type. This runs the real Tracery library, stored locally, so it works without Wi-Fi.

10 min

3. Grow at least three rules

Make the grammar yours: words from your own research, craft, or memory. For variety, give origin more than one sentence shape, and let rules call other rules:

"origin": ["#line#", "#line# #line#", "#question#"],
"line": ["#maker.capitalize# #made# #thing.a#.", "Nobody asked for #thing.a#, so #maker# made one."],
"question": ["Who taught #maker# to make #thing.a#?"]

Press Regenerate twenty times. Which outputs surprise you? Which repeat too often? A word that appears in many lists, or a list with only two options, shows up a lot.

5 min

4. Remember a choice

An action in square brackets picks once and saves the result, so a name can recur in the same sentence. Load quilt blocks in the playground to see it:

"origin": ["[maker:#name#]#block#"],
"block": ["#maker# could not finish the #pattern#, so #maker# gave it away."]

Without [maker:#name#], each #maker# would pick a different name.

if time

5. Put it somewhere

7 min

6. Flatten it for print

To get Act IV ready, make a second, flat version of your grammar: an origin made only of symbols, and lists of plain words, with no nested #rules# inside them. A printed ring can't expand a rule, so every word on one ring has to work next to every word on the others.

{
  "origin": ["#who# #when# #does# #how#"],
  "who": ["the agent", "a quilter", "my bot", "the archive", "a student", "the machine", "our zine", "the cursor"],
  "when": ["always", "never", "slowly", "quietly", "sometimes", "rarely", "gladly", "still"],
  "does": ["unravels", "remembers", "stitches", "forgets", "loops", "glitches", "listens", "wanders"],
  "how": ["by hand", "offline", "in public", "at night", "for us", "in loops", "on paper", "elsewhere"]
}

Same number of words in every list: each becomes one face of a ring. Load cryptex (flat) above, regenerate, and read a few aloud. Cut any word that breaks a sentence. Save your flat grammar as grammar.json.

Unmake

Textile arts have long argued about what automation means for expressive work. Tracery has gone back and forth between screens and cloth: in Re:Traced Threads (ELO 2019), a Tracery bot proposed quilted text, and its output was stitched into nine physical blocks.

A grid of small art quilts with appliquéd circles and stitched lines of generated text, beside a monitor showing the bot that designed them.
Re:Traced Threads: a Tracery bot's proposals, quilted.
Vee Kennedy’s Tracery page “The Internet Graveyard of Critical Baking” on a mint-green background, showing one generated verse and a Regenerate button.
Vee Kennedy, The Internet Graveyard of Critical Baking: a student grammar of baking, dead websites, and PhD life.

Reference files