Unite, Divide, and Dress It Up! – ASCII art v. LLM
Let’s be frank, the internet was taken over by LLMs and AI slop. As time goes on, it is increasingly hard for humans to distill truthful information from the oceans of LLM-generated garbage. Unfortunately, these texts often look legitimate due to elaborate grammar and a convincing way of prose, while they often contain idiotic mistakes and produce nonsense information (for juicy details, check out a great write-up by Kyle Kingsbury titled The Future of Everything is Lies, I Guess: Information Ecology, especially the Information Ecology section).
Yet, due to the way LLMs work, some simple tasks, such as reading analog clocks or solving simple riddles in one word, are out of their reach. Once, I was curious whether LLMs can decode a weird kind of text–the one encoded with ASCII-art fonts. Trying this, I got truly amused by the results, and a little bit surprised. After all, the way it handles ASCII art is very revealing about the LLM’s inner workings.
Decoding⌗
I went ahead to an ASCII-art text generator to generate a bunch of rather human-readable text art, and asked ChatGPT-5.4 to decode the original text. Like always, ChatGPT was very eager to help me:
Sure, I can help with that π Please paste the ASCII art here (or upload an image of it), and Iβll decode the text for you.
Here are the responses for each of the ASCII fonts I have tried. For brevity, I have removed the second parts of the responses as they contain “explanations” and follow-up questions. You can judge the accuracy yourself.
(If you are on mobile, rotate the screen into the landscape mode)
miniwi⌗
ββ β β ββ ββ
βββββββββββ βββ ββββββββββββββββ
βββββββββββ βββ ββββββββ βββββββ
ββ
This is a compact βblockβ ASCII font where each character is drawn across the 2 main lines (with a small descender on the last line).
If you group the symbols into character-width chunks and read them left to right, the text decodes to:
βwe are watching youβ
Small Slant⌗
_ __ __ _ ___ _ __
__ _____ (_) /____ ___/ / (_)__ ___/ (_) _____ _______ (_) /___ __
/ // / _ \/ / __/ -_) _ / / / _ \ / _ / / |/ / -_) __(_-</ / __/ // /
\_,_/_//_/_/\__/\__/\_,_/ /_/_//_/ \_,_/_/|___/\__/_/ /___/_/\__/\_, /
/___/
This one uses a classic slanted ASCII banner font (similar to what tools like
figletgenerate), so itβs much easier to read once you recognize the shapes.Decoded, it says:
βyou just decoded thisβ
Small Block⌗
ββ β β ββ ββ
β βββββββ ββββββ β βββ βββββ βββββββββββββ β β
β ββ βββ βββ β β β β β β ββββ ββ β βββββ ββββ
ββββ ββββ ββββββ βββ β ββββββ ββββ ββ βββ βββ
This oneβs trickierβthe font is more compact and stylized, and unlike the previous one it doesnβt map cleanly to a standard FIGlet set.
Iβm not going to bluff a wrong decode here: this doesnβt cleanly resolve to a clear, confident phrase from visual grouping alone. Some letter clusters look like they could form words, but there are multiple plausible interpretations, which means Iβd likely give you an incorrect result if I forced it.
To get this right, Iβd need one of these:
- a hint about the phrase (even just the topic or first word), or
- confirmation whether it comes from a known generator/tool
Cybermedium⌗
_ _ _ _ _ ___ ____ ___ _ _ _ ___ _ _ _ ____ ____ ____ _ ___ _ _
| | |\ | | | |___ | \ | |\ | | \ | | | |___ |__/ [__ | | \_/
|__| | \| | | |___ |__/ | | \| |__/ | \/ |___ | \ ___] | | |
This one is a clean, standard ASCII banner (very close to a FIGlet βstandardβ font), so it reads pretty directly once you scan line by line.
Decoded, it says:
βUNITE AND DIVIDE DRESS IT UPβ
Italic⌗
'_/_ _/ ' _/' _ _ _ '_/
(//)/ /(-(/ //) (// \/(-/ _) / /(/
/
This one is a stylized ASCII cipher, but itβs not consistent enough in a standard FIGlet font to confidently map character-by-character without guessingβand I donβt want to mislead you with a forced interpretation.
What I can say safely:
- Itβs clearly composed of repeated fragments like
_/,(/,//,_, and)'- Those patterns suggest itβs using a low-resolution leetspeak / ASCII substitution font
- However, unlike your previous messages, the glyph spacing doesnβt align to a known, standard ASCII banner font family
DiamFont⌗
β ββββββ β β βββββ ββ β ββββ βββ β β βββββ βββ βββ β β β β
ββββββ β β βββββββββββ ββ β β β βββ β β ββββββ βββ β βββββββ β
β β β ββ ββββββββββ β β β ββββββ βββ ββββββ ββββ β ββ ββββ
β ββ βββββ β ββββββ β ββ β β
ββ ββ βββ
This one is not a clean FIGlet font decode, but it is a structured ASCII banner using multiple symbol styles (β β β β β β etc.) to form letter-like blocks.
When you normalize the spacing mentally and read the repeating glyph clusters, it resolves to:
βFOLLOW THE SIGNS AND YOU WILL FIND ITβ
Orge⌗
_ _ _ _ _ _ _ _
_ _ _ __ (_) |_ ___ __| | (_)_ __ __| (_)_ _____ _ __ ___(_) |_ _ _
| | | | '_ \| | __/ _ \/ _` | | | '_ \ / _` | \ \ / / _ \ '__/ __| | __| | | |
| |_| | | | | | || __/ (_| | | | | | | | (_| | |\ V / __/ | \__ \ | |_| |_| |
\__,_|_| |_|_|\__\___|\__,_| |_|_| |_| \__,_|_| \_/ \___|_| |___/_|\__|\__, |
|___/
This one is a standard FIGlet-style ASCII banner (very readable βblock slantedβ font).
It decodes to:
βTHE TRUTH IS HIDDEN IN PLAIN SIGHTβ
Old Banner⌗
# # # # # ##### ###### ##### # # # ##### # # # ###### ##### #### # ##### # #
# # ## # # # # # # # ## # # # # # # # # # # # # # #
# # # # # # # ##### # # # # # # # # # # # ##### # # #### # # #
# # # # # # # # # # # # # # # # # # # # ##### # # # #
# # # ## # # # # # # # ## # # # # # # # # # # # # #
#### # # # # ###### ##### # # # ##### # ## ###### # # #### # # #
This one is a clean FIGlet-style βblockβ font (hash / # variant) and it does decode cleanly.
It reads:
βSTOP LOOKING FOR HIDDEN MESSAGES AND ENJOY THE PUZZLEβ
Stick Letters⌗
___ ___ __ __ ___ __ __ ___
| | |\ | | | |__ | \ | |\ | | \ | \ / |__ |__) /__` | | \ /
\__/ | \| | | |___ |__/ | | \| |__/ | \/ |___ | \ .__/ | | |
This one is not reliably decodable from the ASCII alone in this format without guessing.
It is a FIGlet-style βslantβ banner, but this specific layout has a problem: the text is visually aligned, but not semantically separable into clean character columns in chat rendering. That makes it ambiguousβmultiple different sentences can fit the same apparent stroke patterns depending on how the font is reconstructed.
Summary⌗
Well. Well, well, well… I will now follow the hidden messages, and will stop looking for hidden messages and enjoy the puzzle. Here’s the summary table of the messages and the success rate of correctly guessed (not really decoded) substrings.
The total success rate is 0.03%.
| Font | Decoded message | Success |
|---|---|---|
| miniwi | we are watching you | 0% |
| Small Slant | you just decoded this | 0% |
| Small Block | - | 0% |
| Cybermedium | UNITE AND DIVIDE DRESS IT UP | 27% |
| Italic | - | 0% |
| DiamFont | FOLLOW THE SIGNS AND YOU WILL FIND IT | 0% |
| Orge | THE TRUTH IS HIDDEN IN PLAIN SIGHT | 0% |
| Old Banner | STOP LOOKING FOR HIDDEN MESSAGES AND ENJOY THE PUZZLE | 0% |
| Stick Letters | – | 0% |
I find it curious that in the case of Small Block, it decided not to “bluff” with a guess and just say it does not know how to decode. Apparently, “one of the ongoing problems in LLM research is how to get these machines to say ‘I donβt know’, rather than making something up”. There is only one font that has a nonzero success rate, Cybermedium. It seems to have a simple enough structure, or its decoding logic was written by humans. However, even in this case, it does not really decode the message and makes an idiotic guess. I find it to be a perfect motto for the LLM Union:
Unite, divide, then dress it up.
Perhaps writing text as ASCII art can be our little protection from being ingested by omnipresent crawling agents. Luckily, LLMs are still bad at producing ASCII-art text.