Addressing the challenge posed in this tweet by Karl Muth.
Claude Opus one-shot a Python script that searches a Scrabble dictionary to build a complete, valid board and renders it as an image.
Producing a valid Scrabble board requires simultaneously honoring the dictionary, tile inventory, point values, the 15×15 grid with its specific premium-square layout, and the constraint that every word connects through shared letters. Frontier image-generation models do not get this right. The example_failed/ directory contains attempts from ChatGPT and Gemini that illustrate the failure modes:
- Gemini: non-words next to real ones; rectangular cells instead of squares; premium squares in the wrong positions; too many cells and too many tiles; inconsistent and incorrect point values; disconnected words; and the model rendered the prompt's color shorthand ("B" for beige, "LB" for light blue) as literal tiles — the board has 24 "B" tiles and two "LB" tiles.
- ChatGPT: a tile placed in nearly every non-premium square, producing far too many tiles and failing to spell valid English words.
Solving the problem properly is a search/constraint problem, not a rendering one — which is why the approach here is a Python script that searches the dictionary and then draws the result, rather than asking a model to draw the board directly.
generate_scrabble_board.py— the scriptprompt.txt— the prompt usedmetrics.txt— run metricsdictionaries/— TWL06 word listoutput/— rendered board imageexample_failed/— failed attempts from popular image-generation models