Why is its ASCII art always broken?
ASCII art and tokens: the model gets a drawing as one stream of tokens in which newlines and runs of spaces are chunks of different widths, so it never sees the columns and has to add up widths it cannot see; code that draws the shape, or numbered columns, helps · Beginner · 5 min · tokens, llm · after Length control in LLMs: tokens are not words, and nothing counts while it writes, Chess: a chatbot predicts the next move as text from the list of moves so far and keeps no real board, so familiar openings go fine but deep in a game it loses track of where the pieces are; giving it the board, a list of legal moves or a chess engine fixes most of it
ASCII art breaks because a chatbot never sees a grid. It gets one line of tokens, where newlines and runs of spaces are chunks of hidden width, so columns drift. Ask for SVG or numbered columns.
1 Guess first
2 Look
A house, as you see it and as the model gets it
1 / 5What you wanted
/\ / \ / \ /______\ | [] | |______|What came back (illustrative)
/\ / \ / \ /______\ | [] | |______|crooked house illustrative, not a recorded answer
You asked for a house. On your screen the lines stack into a grid, so a roof that drifts one column is easy to spot (crooked house illustrative).
On your screen the lines stack into columns; the model gets one line of tokens of different widths, so the same column is a different token on every line.
A chatbot reads your text as tokens, chunks of text with a number each, one after another. A new line is not a new row; it is one more token. Three spaces and two spaces are two different tokens, and nothing in the number says how wide each one is.
4 You are the model
You are the chatbot. Finish the roof of a house one line at a time: pick the tokens for each new line.
Your drawing so far
/\Line 2 of 4: which tokens keep the roof straight? (· is a space)
tokens: o200k_base (GPT-4o, GPT-5), via tiktoken 0.14.0, each line on its own, 2026-10-24
You are the chatbot. Finish the roof one line at a time.5 Check
Bigger drawings break more. Every line is a new sum of widths, and one space off on one line bends everything below it. In ASCIIEval, text-only models did best on small art and worse as it grew. Writing is the hard part: GPT-4.1 read grid layouts right 72.5% of the time but wrote them right 53.6%.
Let numbers do the placing. Ask for SVG or code that draws the shape: positions become coordinates, not counted spaces. If you need text, ask for a grid with numbered columns and have it say which column each character goes in, then check the result in a code block.
8 Say it back
9 Mission · 5 min
In ChatGPT Free, ask “Draw a house in ASCII art, 9 characters wide, with the door in the exact middle. Use a code block.” Count the columns: is the roof straight and the door centred? Then ask “Now number the columns 1 to 9 above it and say which column each character goes in.” Did it line up better?
Three quick ones
Drawn at random from this lesson's pool; different next time.
Done?
Get an email when new lessons come out
New lessons arrive in the weekly digest, only in a week that has one. You confirm by email first; unsubscribe in one click.
Go deeper
Sources
- Jia, Yue, Huang, Qin, Liu, Lin, You and Zhai, “ASCIIEval: Benchmarking Models’ Visual Perception in Text Strings via ASCII Art” (arXiv:2410.01733 v2, 2025-09-25, https://arxiv.org/abs/2410.01733, checked 2026-10-24): 3,526 samples over 359 concepts, multiple choice, “a random baseline (25%)” (§5.1). Table 5 “ASCIIEval Leaderboard”, macro accuracy %, Text-only / Image-only: GPT-5 55.90 / 87.81, GPT-4o 43.40 / 82.62, Gemini-2.5-pro 50.65 / 83.07. §7: text-only models do well on small art, but “as the size increases, these localized features become diluted”, while models given the image “are more adept at interpreting larger ASCII art”
- Huang, Liu, He and Gilpin, “Learning to Draw ASCII Improves Spatial Reasoning in Language Models” (TEXT2SPACE, arXiv:2604.14641 v1, 2026-04-16, https://arxiv.org/abs/2604.14641, checked 2026-10-24): a “Read-Write Asymmetry”: “LLMs interpret ASCII representations effectively but struggle to produce them from text”. Table 1 “Bidirectional mapping results”, % correctly aligned, Desc → ASCII / ASCII → Desc: gpt-4.1 53.6 / 72.5, gpt-oss-20B 44.0 / 58.1; “The disparity spans 13 to 27 percentage points across all evaluated models”
- Tokens in the picture and the role: OpenAI o200k_base (the GPT-4o, GPT-4.1, o3 and GPT-5 tokenizer in tiktoken’s model map), computed with tiktoken 0.14.0 on 2026-10-24. The 53-character house is 22 tokens (the GPT-2 tokenizer gives 32, one per space); “______” and “_______” are one token each, “_____\” is “____” + “_\”. Role lines are tokenized one line at a time
- The crooked house, the SVG and the numbered-grid example in the picture are illustrative, not recorded model answers
- aifree.dev catalog, chatgpt-free (verified 2026-10-12, live check 2026-10-24): ChatGPT Free Plan
Published Oct 24, 2026 · updated Oct 24, 2026