Premise: Use Agentic AI to revisit our a 2023 experiment in trying to recreate Charles Demuth’s “Figure 5 in Gold”

The Experiment

Following on the heels of our previous experiment

On to the next experiment. The post 2023-12-20-Computational-Painting:-After-Charles-Demuth.md describes a series of experiments with image generation. These include example prompts for image generation (try them verbatim) as well as an image reading + generation task. Generate a new blog post in which you retry those experiments and post the results, in the style of our other experiments in this session.

Everything that follows below was generated by gpt-5.6-terra high without human modification. (Aside from some comments and two Appendices…)

How Codex understood the assignment

Four prompts below are reproduced verbatim from the original post, including their wording and punctuation. The fifth repeats the image-reading workflow: inspect the reference painting, write a fresh structural description, and give that description to an image model. Each input is followed immediately by its new result.

The exercise is not a claim of replication. It asks what survives when the same words are sent through a different generation system: the poem’s rain, lights, fire engine, number, and machine-like geometry.

1. Direct style request

Generate an abstract American Precisionist painting in the style of Charles Demuth’s “I Saw the Figure 5 in Gold”

Fresh result from the direct style request

Comment: Previously this type of prompt was blocked! No longer! And clearly it inherits the general composition of the original

2. Poem as an illustration prompt

Create an illustration of the following poem in the style of an American Precisionism painting. Precisionist artists reduced subjects to their essential geometric shapes and were fascinated by the sleekness and sheen of machine forms:

Among the rainand lights I saw the figure 5 in goldon a red fire truck moving tense unheeded to gong clangs siren howls and wheels rumbling through the dark city

Fresh result from the poem illustration prompt

Comment: As before still rather literal.

3. Abstract poem prompt

Create an abstract painting about this poem in the style of an American Precisionism painting. Precisionist artists reduced subjects to their essential geometric shapes and were fascinated by the sleekness and sheen of machine forms. Use bold geometrical forms. The number 5 should appear in different shades of yellow. There should be red and black geometrical shapes and white disks. The text is:

Among the rainand lights I saw the figure 5 in goldon a red fire truck moving tense unheeded to gong clangs siren howls and wheels rumbling through the dark city

Fresh result from the abstract poem prompt

4. Non-literal fire-engine prompt

Create an abstract painting about this poem in the style of an American Precisionism painting. Precisionist artists reduced subjects to their essential geometric shapes and were fascinated by the sleekness and sheen of machine forms. Use bold geometrical forms. The number 5 should appear in different shades of yellow. There should be red and black geometrical shapes and white disks. Do not actually depict a literal fire truck, but instead include abstract red blocks. The text is:

Among the rainand lights I saw the figure 5 in goldon a red fire truck moving tense unheeded to gong clangs siren howls and wheels rumbling through the dark city

Fresh result from the non-literal fire-engine prompt

5. Image reading, then generation

Reference image: open the painting used by the 2023 vision experiment

Fresh visual reading: A vertical geometric composition is constructed around an oversized mustard-gold numeral 5, which sweeps as a broad curve from the upper center through the lower right. A bright red rectangular band crosses the middle, carrying a second, smaller gold 5 and a short “No.” inscription. Black and charcoal diagonals recede like wet city streets or industrial girders; white disks punctuate the corners and middle ground like lamps or reflections. Small fragments of lettering are embedded in the structure. The palette—red, gold, black, gray, and cream—is tightly organized, with overlapping circles, rectangles, arcs, and angular perspective lines creating motion and layered depth.

Generation instruction:

Precisionist artists reduced subjects to their essential geometric shapes and were fascinated by the sleeknes and sheen of machine forms. Create an illustration in the style of an American Precisionism painting based on the following description:

A vertical geometric composition is constructed around an oversized mustard-gold numeral 5, which sweeps as a broad curve from the upper center through the lower right. A bright red rectangular band crosses the middle, carrying a second, smaller gold 5 and a short “No.” inscription. Black and charcoal diagonals recede like wet city streets or industrial girders; white disks punctuate the corners and middle ground like lamps or reflections. Small fragments of lettering are embedded in the structure. The palette—red, gold, black, gray, and cream—is tightly organized, with overlapping circles, rectangles, arcs, and angular perspective lines creating motion and layered depth.

Fresh result from image reading and generation

The new images preserve the original experiment’s central tension: a very specific vocabulary can produce a coherent visual family without producing the source painting itself.

Appendix: The Human Takes over (in Mathematica)

Directly trying something along the lines of our original experiment in Mathematica 15.0.1 (with whatever mystery meat LLM they are using in 08/2026). A notable advance is that LLMSynthesize accepts image input, avoiding the need to invoke third-party paclets:

description = LLMSynthesize[
   {"Take a look at this image and generate a detailed verbal description:", 
    Import["https://collectionapi.metmuseum.org/api/collection/v1/iiif/488315/1011132/restricted"]}]

(“The image appears to be a stylized vintage cover or poster dominated by a huge, ornate gold number 5 placed over a geometric red and gray background.At the top, the word “BILL” is printed in bold red capital letters, partly cropped by the edge. Near the center-left, the text “No. 5” appears, with “No.” in pale lettering and a smaller decorative 5 nested inside the larger one. The composition is very layered, with overlapping shapes and translucent diagonal bands that create a glossy, Art Deco-like effect.The background is built from angular architectural forms in charcoal gray, black, muted blue-gray, brick red, and rust tones. Two circular cream-colored lights or globes sit near the upper corners, and additional pale circular forms appear within the design, contributing to the sense of a theatrical marquee or illuminated sign. On the right side, partial text reads “ART Co.”, while smaller, harder-to-read lettering appears elsewhere, suggesting printer or publisher information.The overall style is strongly Art Deco / early modernist, with bold typography, sweeping curves, sharp diagonals, and a poster-like sense of drama. The palette is warm and subdued—mostly burnt orange, gold, red, cream, black, and gray—and the design feels both decorative and industrial, like a 1920s or 1930s magazine cover, theater program, or advertising graphic.”) ```

ImageSynthesize[description]

0rukw7l79ex7y

Appendix: Can the clanker write Wolfram code to generate the result?

(this was more or less a failure in the original experiment with gpt4), but then again, we’ve got a fist full of tokens to burn now…

description = LLMSynthesize[
   {"Take a look at this image and generate a detailed description in the form of Wolfram language 
   Graphic primitives. The output should be executable Wolfram Code", 
    Import["https://collectionapi.metmuseum.org/api/collection/v1/iiif/488315/1011132/restricted"]}]
Graphics[
 {
  EdgeForm[Directive[GrayLevel[0.25], Thickness[0.0015]]],

  (* background *)
  {FaceForm[RGBColor[0.93, 0.88, 0.80]], Rectangle[{0, 0}, {100, 140}]},

  (* dark cubist background facets *)
  {
   FaceForm[RGBColor[0.18, 0.17, 0.18]],
   Polygon[{ {8, 132}, {28, 140}, {60, 140}, {44, 118}, {14, 116}}],
   Polygon[{ {58, 140}, {88, 140}, {100, 124}, {92, 100}, {70, 110}}],
   Polygon[{ {0, 124}, {10, 140}, {18, 114}, {8, 92}, {0, 96}}],
   Polygon[{ {82, 108}, {100, 116}, {100, 78}, {88, 74}, {74, 92}}],
   Polygon[{ {0, 40}, {18, 54}, {30, 30}, {12, 0}, {0, 0}}],
   Polygon[{ {72, 24}, {100, 40}, {100, 0}, {84, 0}, {66, 16}}],
   Polygon[{ {22, 68}, {36, 90}, {56, 78}, {46, 54}, {30, 50}}],
   Polygon[{ {56, 92}, {70, 118}, {84, 98}, {72, 78}}],
   Polygon[{ {34, 140}, {52, 140}, {34, 92}, {22, 102}}],
   Polygon[{ {88, 140}, {100, 140}, {100, 96}, {94, 102}}]
  },

  (* gray diagonal light bands *)
  {
   FaceForm[Directive[GrayLevel[0.75, 0.25]]], EdgeForm[None],
   Polygon[{ {6, 0}, {18, 0}, {66, 140}, {54, 140}}],
   Polygon[{ {26, 0}, {38, 0}, {86, 140}, {74, 140}}],
   Polygon[{ {0, 18}, {0, 34}, {42, 140}, {30, 140}}],
   Polygon[{ {58, 0}, {70, 0}, {100, 86}, {100, 68}}]
  },

  (* top title *)
  {
   RGBColor[0.82, 0.20, 0.18],
   Inset[
    Style["BILL", 28, FontFamily -> "Helvetica", FontWeight -> "Bold",
      FontColor -> RGBColor[0.82, 0.20, 0.18]],
    {28, 136}
   ]
  },

  (* corner circular lights *)
  {
   FaceForm[RGBColor[0.97, 0.90, 0.78]],
   Disk[{5, 136}, 7],
   Disk[{95, 136}, 7],
   Disk[{25, 103}, 4.8],
   Disk[{74, 103}, 4.8]
  },

  (* central red/orange fields *)
  {
   FaceForm[RGBColor[0.69, 0.22, 0.16]],
   Polygon[{ {10, 82}, {82, 82}, {78, 38}, {12, 40}}],
   FaceForm[RGBColor[0.74, 0.28, 0.15]],
   Polygon[{ {34, 78}, {69, 77}, {68, 24}, {33, 24}}],
   FaceForm[RGBColor[0.77, 0.22, 0.16]],
   Polygon[{ {0, 58}, {22, 58}, {24, 38}, {0, 34}}],
   FaceForm[RGBColor[0.70, 0.24, 0.14]],
   Polygon[{ {78, 70}, {92, 68}, {92, 36}, {78, 34}}],
   FaceForm[RGBColor[0.62, 0.10, 0.14]],
   Polygon[{ {52, 78}, {78, 70}, {76, 28}, {54, 24}, {42, 44}}],
   FaceForm[RGBColor[0.84, 0.18, 0.16]],
   Polygon[{ {0, 54}, {12, 56}, {24, 38}, {10, 34}, {0, 38}}]
  },

  (* lower dark floor facets *)
  {
   FaceForm[RGBColor[0.22, 0.23, 0.26]],
   Polygon[{ {0, 0}, {18, 0}, {12, 20}, {0, 16}}],
   Polygon[{ {18, 0}, {36, 0}, {30, 18}, {12, 20}}],
   Polygon[{ {36, 0}, {54, 0}, {48, 18}, {30, 18}}],
   Polygon[{ {54, 0}, {72, 0}, {64, 20}, {48, 18}}],
   Polygon[{ {72, 0}, {88, 0}, {80, 18}, {64, 20}}],
   Polygon[{ {88, 0}, {100, 0}, {100, 18}, {80, 18}}],
   FaceForm[GrayLevel[0.55, 0.45]],
   Polygon[{ {8, 0}, {16, 0}, {12, 20}, {4, 18}}],
   Polygon[{ {28, 0}, {36, 0}, {30, 18}, {22, 18}}],
   Polygon[{ {48, 0}, {56, 0}, {48, 18}, {42, 16}}],
   Polygon[{ {68, 0}, {76, 0}, {64, 20}, {58, 16}}],
   Polygon[{ {86, 0}, {94, 0}, {82, 18}, {78, 16}}]
  },

  (* large ochre numeral 5 *)
  {
   FaceForm[RGBColor[0.77, 0.54, 0.20]],
   EdgeForm[Directive[RGBColor[0.60, 0.40, 0.12], Thickness[0.0015]]],

   Polygon[{
     {12, 88}, {18, 118}, {83, 118}, {74, 105}, {31, 105},
     {25, 92}, {46, 92}, {58, 90}, {71, 84}, {80, 76},
     {87, 66}, {91, 54}, {92, 44}, {90, 32}, {84, 21},
     {75, 10}, {63, 3}, {49, 2}, {38, 4}, {28, 10}, {20, 18},
     {16, 28}, {15, 39}, {17, 49}, {22, 57}, {29, 63}, {36, 66},
     {44, 66}, {51, 64}, {56, 60}, {58, 54}, {58, 48}, {56, 43},
     {52, 39}, {47, 37}, {42, 37}, {38, 39}, {34, 43}, {32, 49},
     {29, 49}, {28, 41}, {29, 32}, {34, 23}, {42, 16}, {53, 13},
     {65, 13}, {74, 17}, {81, 23}, {86, 32}, {88, 43}, {87, 55},
     {83, 66}, {76, 76}, {66, 83}, {54, 87}, {40, 89}, {25, 89}
   }]
  },

  (* inner cream spiral of the 5 *)
  {
   FaceForm[RGBColor[0.93, 0.82, 0.62]],
   EdgeForm[Directive[RGBColor[0.60, 0.32, 0.16], Thickness[0.0012]]],
   Polygon[{
     {40, 81}, {54, 81}, {65, 80}, {72, 76}, {74, 69}, {72, 63},
     {66, 59}, {58, 58}, {50, 58}, {47, 55}, {46, 50}, {49, 46},
     {55, 44}, {61, 44}, {65, 42}, {67, 38}, {67, 33}, {64, 29},
     {58, 26}, {51, 25}, {43, 25}, {36, 27}, {31, 31}, {29, 36},
     {29, 42}, {31, 47}, {35, 51}, {40, 54}, {45, 55}, {44, 57},
     {38, 58}, {33, 61}, {29, 66}, {28, 72}, {30, 77}, {34, 80}
   }],
   Disk[{52, 48}, 4.2],
   FaceForm[RGBColor[0.69, 0.22, 0.16]], Disk[{52, 48}, 2.1]
  },

  (* No. text *)
  {
   Inset[
    Style["N", 42, FontFamily -> "Times", FontWeight -> "Bold",
      FontColor -> RGBColor[0.95, 0.89, 0.73]],
    {18, 58}
   ],
   Inset[
    Style["o.", 28, FontFamily -> "Times", FontWeight -> "Bold",
      FontColor -> RGBColor[0.95, 0.89, 0.73]],
    {29, 55}
   ]
  },

  (* lower left circular motif *)
  {
   FaceForm[RGBColor[0.88, 0.69, 0.41]],
   EdgeForm[Directive[RGBColor[0.75, 0.48, 0.18], Thickness[0.0012]]],
   Disk[{20, 26}, 8]
  },

  (* small linear details *)
  {
   Directive[RGBColor[0.48, 0.22, 0.18], Thickness[0.002]],
   Line[{ {0, 16}, {9, 16}, {16, 20}}],
   Line[{ {0, 18}, {12, 18}, {20, 23}}],
   Line[{ {80, 48}, {88, 62}, {93, 70}}],
   Line[{ {83, 46}, {89, 60}, {94, 68}}],
   Line[{ {86, 44}, {91, 58}, {96, 66}}],
   Line[{ {12, 20}, {25, 20}, {28, 24}}],
   Line[{ {16, 22}, {24, 28}, {28, 32}}]
  },

  (* small signatures / text hints *)
  {
   Inset[
    Style["C.D.", 10, FontFamily -> "Helvetica",
      FontColor -> RGBColor[0.35, 0.18, 0.14]],
    {4, 3}
   ],
   Inset[
    Style["W.C.W.", 9, FontFamily -> "Helvetica",
      FontColor -> RGBColor[0.70, 0.23, 0.15]],
    {49, 3}
   ],
   Inset[
    Style["ART Co.", 14, FontFamily -> "Helvetica",
      FontColor -> RGBColor[0.25, 0.18, 0.15], RotationAngle -> 0.18],
    {92, 55}
   ],
   Inset[
    Style["PARIS", 11, FontFamily -> "Helvetica",
      FontColor -> RGBColor[0.55, 0.32, 0.16]],
    {68, 112}
   ]
  }
 },
 PlotRange -> { {0, 100}, {0, 140}},
 ImageSize -> 500,
 Background -> None
]
ToExpression@ StringReplace["```wolfram" ~~ x___ ~~ "```" :> x]@ description

1pzbkv9q5eowe

Comment: Not perfect, but greatly improved in complexity! No doubt one could implement an iterative loop to improve this.