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 figlet generate), 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.