CRITICAL MAKING

ACT IV · GAME · 2 PLAYERS

Agents

An agent is generative AI with tools, put to a purpose. Here the purpose is to unflatten your grammar into an object you can hold: a cryptex whose rings are its slots, or a flower spinner whose petals pair words.

From the talk: is there human agency in agentic AI?

  • Suggested: 50 min
  • Make: a 3D preview, a print file, a process log
  • Need: GitHub, Claude Code, your flat grammar

PRESS START. You keep the controller.

The prints from the talk

In Act III of the talk, Emily showed two of her p5.js sketches made physical with Claude:

A hand holds Emily’s finished 3D-printed cryptex: pale blue-green octagonal rings between dark navy end caps, each face carrying a recessed Spanish word, reading across “el gato / siempre / bebe / mucho.”
The cryptex. “Traceretry,” a Tracery-style p5.js sketch that makes Spanish nonsense sentences, unflattened into four rings: subject, when, verb, how or where. Ten words each make 10,000 sentences, such as “la vaca siempre vuela arriba” (the cow always flies up). Claude helped rewrite the grammar so every combination works. The geometry remixes two MakerWorld cryptex designs (CC BY-NC and CC BY-NC-SA).
A hand holds Emily’s finished 3D-printed flower spinner: two layers of pale green round petals on a black base with a black knob in the center, each petal carrying a recessed word: Making, Play, Technology, DH, Tech Comm, Pedagogy.
The flower spinner. A p5.js sketch for brainstorming how fields combine. Two rings of petals spin on their own, so the pointer pairs two fields at random. Here Claude generated all of the 3D geometry, after print-in-place spinners whose petals were fixed.

Both were printed on a Bambu Lab A1 in PLA. The files and design history are at ekjphd.com/unmaking. Today's reference files are simpler teaching models of the same two ideas, generated from the Act II grammars.

5 min

0. Choose your mode

From Act II of the talk: Claude Code is a longarm.

Since August 2026, auto mode is the default in Claude Code for Pro, Max, and Team plans. A default is a decision someone else made for you. For this act, choose a mode where you approve each step, and use plan mode for the first two prompts.

10 min

1. Set up a repository

  1. On GitHub, create a new public repository (for example my-grammar-object) and tick Add a README.
  2. Upload your files: your flat grammar from Act II as grammar.json, your sketch from Act III (downloaded from OpenProcessing), and CLAUDE.md and process-log.md from this workshop.
  3. Open claude.ai/code, connect GitHub, and start a session on the new repository. Claude Code also runs in the desktop app and in a terminal.
  4. To publish your page: Settings → Pages, deploy from the main branch. The file named index.html becomes the front page.

No subscription? Work the same steps in a free chat assistant: paste in your grammar and a prompt, copy the files it writes, upload them to the repository yourself, and turn on Pages. It's slower, and you see every file it writes.

5 min

2. Write the house rules

Claude Code reads CLAUDE.md at the start of every session. It's where you decide, once, which parts of the process stay yours. The template starts with:

- Plan before you build. For anything bigger than a one-line fix,
  describe your plan and wait for me to say yes.
- Ask before each step. Make one change, tell me what changed and why, then stop.
- My words are mine. Never rewrite, add, or remove words in grammar.json
  on your own. Show me the broken sentences and suggest options. I choose.
- Credit what we remix. Name it, link it, and keep its license in CREDITS.md.
- Keep a log. After each step, add a line to process-log.md.

Edit these. Delete the ones you don't want and add your own. Which steps do you want to keep?

5 min

3. Plan before code

In plan mode, ask the agent to read your grammar back to you before it changes anything:

Read grammar.json. Don't change anything yet. Explain in plain language what
each symbol does, which rules are nested, and which choices are saved with
actions. Then tell me which parts could become physical parts of an object
that someone turns by hand, and which parts could not.

Then ask for a flat, ring-ready version in your own words. The full sequence is in prompts.md. Read each plan before you approve it. Edit the prompts before you send them: the prompt is the source.

5 min

4. Check every sentence

Eight words on four rings make 4,096 sentences. Ten make 10,000. Nobody reads them all, but every one gets printed. This is a job an agent does well, as long as you decide what counts as broken:

Write a small script that prints every sentence the flat grammar can make.
Run it, then show me only the sentences that are ungrammatical or don't make
sense, grouped by the word that causes the problem. Don't fix them.
I'll choose which words to change.

Write down which words you changed and why in process-log.md.

5 min

5. Preview it in 3D

Open cryptex-3d.html and paste in your flat grammar. Each #symbol# in origin becomes a ring, and each word becomes a face. Turn the rings, drag to orbit, and read sentences along the bright row.

Then ask your agent to build its own preview, and compare the two:

Add a p5.js sketch, cryptex.html, that shows the cryptex in 3D (WEBGL), with
buttons to turn each ring and a line of text showing the sentence on the
reading row. Use the grammar file directly. Comment the code for a beginner.

Which version do you understand better? Which one would you rather maintain?

10 min

6. Make it printable

  1. In the preview, press Download .scad. You get an OpenSCAD file with your words in it. Or start from cryptex.scad or spinner.scad, or ask your agent to write one (prompt 5).
  2. Open it in OpenSCAD. Every measurement you might change is at the top: text size, ring length, clearance. Press F5 to preview and F6 to render, then File → Export → STL.
  3. Slice the STL in your printer's slicer (Bambu Studio, PrusaSlicer, or Cura). PLA, 0.2 mm layers. Rings stand on end and need no supports.
  4. Print one ring and the core first. If the ring binds, raise clearance. If it wobbles, lower it. If the letters fill in, raise text_depth or text_size.

The agent can't feel a ring bind. You can. That's the thread break from Act I's story: noticing it and deciding where to start again is your work.

These are teaching models: the rings spin freely, with no lock or click. For a real cryptex, remix a published design, as the talk's print did, and keep its license. No printer? Write each ring's words around a cardboard tube and slide the tubes onto a pencil.

5 min

7. Credit and label

Quilters argue about whether computer-guided quilting counts, and about who goes on the label: pieced by, quilted by. Finish your process-log.md with a label of your own:

Written by ______. Coded by ______. Printed by ______.

Ask the agent to draft CREDITS.md (prompt 7), but write its last sentence yourself.

Unmake

Reference files