logoalt Hacker News

Ghost Font: A font that humans can read but AI cannot

137 pointsby justswimtoday at 9:36 AM103 commentsview on HN

Comments

Kirotoday at 4:41 PM

GPT-5.6 had no problem seeing the text when giving it a video recording of it.

"No problem" as in using temporal analysis with optical flow and vertical-displacement maps to estimate how the image moved, and combine those into a motion map with increased contrast to see the text. I didn't give it any instructions though, just asked it what it said.

show 1 reply
ravtoday at 3:43 PM

> For example, it would be interesting to incorporate Ghost Font into CAPTCHA systems, as most systems are easily solved by AI today.

It seems to me like it should be easy enough to take Ghost Font, apply normal video compression techniques, and analyze the compressed signal to recover the visual outline of the letters, which you would then analyze with OCR (or an AI I guess ...). In other words, a novel CAPTCHA technique but not necessarily "fundamentally more difficult" than existing CAPTCHA techniques, once the cat-and-mouse game gets going.

show 3 replies
freehorsetoday at 4:59 PM

It is smart, but it is not impossible to crack algorithmically imo. In particular, one can take two consecutive frames and run perturbations moving one frame around (ie shift the indexes) to find where the difference between the two consecutive frames minimises. Then subtract these two frames and ocr it. Works easily if the movement is linear/one-directional.

I did this in 20 lines of code (checking only vertical perturbations), and this is what I get with subtracting frame 7 from frame 1:

https://imgur.com/a/only-human-can-read-this-vfDe6ZA

show 1 reply
SyneRydertoday at 10:41 AM

Took me a long time to realise that "Written In Ghost Text" wasn't actually the text I was meant to be reading, and that was only the decoy message.

I can barely read the actual message, and it's about as "readable" to me as the Magic Eye 3D pictures. Actually I think I have a headache from looking at it on a mobile screen.

As a research idea it's cool though. But I do wonder if/when AI models will figure out how to decode it - I imagine a bit of additional prompting would get them there.

show 2 replies
ssl-3today at 10:33 AM

I pasted a screenshot of the default text ("GHOST FONT") into ChatGPT 5.6 Sol, told it to read it, and without further instruction it chewed on it for awhile before coming back with:

  WHAT HAPPENS IN VEGAS
  STAYS IN VEGAS
show 3 replies
khurstoday at 4:20 PM

> struggled to decode the moving message until prompted with the exact technique to look for.

So once the technique is known by the model the font stops working as intended.

bradley13today at 10:25 AM

Humans can read it, but with difficulty. If it becomes important, AI can be taught to read it.

So...usefulness?

show 1 reply
juntotoday at 5:13 PM

I can’t read magic eye pictures and I can’t read this either. Maybe astigmatism makes it unreadable to me?

It just looks like static on old tvs to me.

rsanektoday at 1:03 PM

I see tons of confustion in the comments on whether AI can or can't read it. Bit of a marketing miss -- they should have picked clearly different decoy vs. default actual messages.

dragontamertoday at 3:54 PM

The hallucination of messages bothers me severely. Especially with AI being deployed to ancient, difficult problems like the Herculaneum scroll.

EDIT: To be clear, I'm talking about the "Written in Morse Code" example, fully hallucinated text. The AI agents seeing a decoy message isn't as bothersome to me.

show 1 reply
rzzzttoday at 10:30 AM

Related work (all involve noise and flickering images, photosensitive eyes/brains beware):

- "This game disappears if you pause it": https://youtu.be/Bg3RAI8uyVw

- "Illusion: If You Pause, The Image Will Disappear": https://youtu.be/ZqGfb_Vlrig

show 2 replies
xnxtoday at 4:07 PM

Page says "font" but means "obfuscated text in video".

noedig2today at 3:37 PM

Doesn't look like anything to me

dhruvkbtoday at 10:39 AM

Claude Opus 4.8 can read it with a single prompt and no instructions on how to read it.

https://ibb.co/WWMSXQkQ

show 4 replies
IvanK_nettoday at 4:05 PM

Instead of "AI cannot" you should always say "current AI cannot".

show 1 reply
xliitoday at 10:45 AM

Technically it's not a font, because font needs to be still. Analogy: if I took photo after book was closed would we say that font cannot be read by a camera?

Took a picture (only a single frame) and a 1s movie and threw it toward GPT 5.6 Sol (High):

Frame took 9m30s to decyper and GPT 5.6, it returned: WRITTEN IN GHOST FONT. Weird because I can only see "GHOST FONT" on the demo... but extracted data from image (I saw the highlited one) definitely looks like the "Ghost Font".

--

Video is more amusing, because after 3m GPT 5.6 figured it's motion-defined and asked to run QuickTime. At one moment I got:

> The animation is a motion-defined illusion. I’ve confirmed there’s no readable static OCR layer; I’m decoding its optical-flow field so the letter shapes become explicit.

At 4m it got extracted motion image that was in shape of letters but analyzed for 9 more letters and returned (at 13m36s) "GHOST FONT"

--

So:

    a font...             - FALSE - not a font, but video effect
    ...humans can read... - FALSE - I can't read it from image (but AI can!)
    ...but AI cannot      - FALSE - it can
:D

Edit: https://imgur.com/a/SHlGu4O - work-in-progress images

show 1 reply
tensegristtoday at 4:00 PM

can't you use font shaping rules or whatever it is to essentially begin a span of text with a "private key" that then causes the rest of the message to render correctly by combining with it (a trivial version could be e.g. a rot-N based on a given N)

pessimizertoday at 5:08 PM

I don't think this works - I suspect it's the decoy that's doing the work. Once the decoy is seen, the LLM stops looking. It also seems pretty much effective on a lot of people, too.

Now that "Ghost Font" will be in the training material, LLMs will go "this looks to be written in Ghost Font, and as such has two messages."

edenttoday at 10:44 AM

I had thought to use homographs. Sadly, all the models I tried were able to decode something like:

"フㄖ乇ㄚ ᗪㄖ乇丂几'ㄒ 丂卄卂尺乇 千ㄖㄖᗪ"

However, I have noticed that voice assistants have a hard time understanding homonyms. Saying "bow" (as in to bow one's head) is often stored as "bow" (as in a bow and arrow). I wonder if there's a sufficiently complex sentence which is intelligible to humans but not to machines?

show 1 reply
throwaway219450today at 10:45 AM

I haven’t tried, but it looks like you could trivially solve with optical flow?

Edit: looks like yes, from the shared chats people are posting. But it’s interesting to think of communication schemes that require a temporal component so any single image is unreadable and can’t be beaten by long exposures or other tricks (otherwise persistence of vision displays would satisfy). A sort of physical anti copy/paste.

lutusptoday at 5:04 PM

> ... immediately readable to a human eye, but even leading AI models can't decipher it easily.

For the moment. This pattern is easy to code -- it relies on the premise that a character has an inside and an outside. Outside, a pattern ascends. Inside, the reverse. Based on that simple encoding idea, decoding will be equally simple.

Kiboneutoday at 3:55 PM

See also: a "font" that only people high on drugs can read!

https://qri.org/blog/psycrypto-contest

https://www.youtube.com/watch?v=oD4nV0CMkBI

Of course, the psychedelic hidden message is reversible with some video processing techniques for everyone else to see. And calling it cryptography is a mis-use of the term. Still an interesting use of the effect.

I don't think "ghost font" will work as well as the author claims.

pluctoday at 12:26 PM

That's... not a font? That's a generated animated image/video?

"A computer font or digital font is a digital data file containing a set of graphically related glyphs"

so it's not a font, humans can't read it and AI can.

show 2 replies
Findecanortoday at 10:30 AM

It has bugs with long words: I typed "MARRY AND REPRODUCE". That was the only try that got the last word on a single line, but with too much space between U and C.

If the string is empty, I can read "WRITTEN IN GHOST FONT" very faintly. I'm guessing that is a watermark Edit: Ah, it's decoy text. Of course.

gunapologist99today at 11:35 AM

The answers here seem to establish that some frontier models can read it sometimes, but only after tremendous compute.

That still makes it (well, a future version) potentially useful as a captcha if we hate our users but hate AI more.

show 1 reply
solidasparagustoday at 10:39 AM

When I gave Fable a screenshot it found the GHOST portion of GHOST FONT. Based on pixel density via some python code apparently - https://imgur.com/a/m3c801F

tempodoxtoday at 2:19 PM

Technically it works but having to read stuff this way is an unpleasant experience.

tentacleunotoday at 10:34 AM

An interesting experiment. I suppose that if you make things like CAPTCHAs too hard to do, we'd end up struggling as well. I can't imagine Ghost Font would be a good fit.

voodooEntitytoday at 10:25 AM

One side i really like it - i also love to play around with funny ideas - but have to say if i would read more than like 2 sentences with that font i'd throw up xD

ealexhudsontoday at 10:23 AM

Sadly another shot in the arms race that captchas started which just leads to increased inaccessibility.

It's interesting work for sure, but the end goal of separating out AI versus human consumers is tough. Indeed, if there was a lasting solution, that would be a substantial discovery that would quickly become very famous...

throw1234567891today at 10:47 AM

I cannot read it. Maybe I am AI.

show 1 reply
tokaitoday at 3:46 PM

What is making it hard to read for so many people? My eyes aren't young or healthy, but it is as clear as day for me. Wonder with screens play are role.

show 2 replies
fecal_hengetoday at 10:26 AM

I cannot read that text.

sscaryterrytoday at 10:46 AM

Security through obscurity is not security :)

not-a-llmtoday at 10:48 AM

> humans can read

strong statement, I struggle to read it

cynicalsecuritytoday at 11:05 AM

Old people and bad vision people firewall. This will violate disability accessibility requirements.

satisficetoday at 1:57 PM

I can’t read it. Am I AI? Bleep blorp?

Haranrktoday at 11:14 AM

This is really cool!

casey2today at 12:34 PM

I'm pretty sure there is some compression pipeline that gives you a mask for every frame.

Also

https://www.google.com/search?q=DIS+Optical+Flow

hluskatoday at 3:30 PM

It doesn’t work with a screen reader either and I tried two. It’s interesting to me that our hatred of AI is starting to look more like a dislike of the blind and visually impaired.

The ADA suits will be absolutely hilarious and honestly, I can’t wait.

stavrostoday at 10:52 AM

Isn't this triviaklu defeatable by taking the diff between two frames and marking changed pixels white and unchanged black?

sgjohnsontoday at 10:44 AM

"humans can read"

lol. Barely.

sylwaretoday at 10:32 AM

You can also write using sound based/compressed 'text message' dialect: unless a real human is reading, automated watching tool should have a hard time (until coded/ML-ed on such dialects I guess)

exe34today at 10:30 AM

I'm colourblind and this was very difficult to read. If it's the directions to the resistance hq, I'd put in the effort. If it's the manifesto, I just wouldn't read it.

show 2 replies
Razengantoday at 10:53 AM

heh although this font can be read by AI as other comments say, it gave me an idea:

How about writing or drawing stuff using optical illusions?

Shapes that not even human eyes can see, but the brain hallucinates: Shapes that seem to appear when you look straight at a pattern, or for a second after you look away from a pattern, or after you close your eyes, etc.

If you take a screenshot or a photo the image would just contain the same static pattern.

i.e. qualia-based "cryptography" :)

dewdgitoday at 10:29 AM

uuh, what's the point? i mean, models will just be trained to understand it

show 1 reply

🔗 View 5 more comments