Live data from Hacker News

Decoding the obfuscated bash script on a Uniqlo t-shirt

tris.sherliker.net

71–80 of 253 posts

Re: Decoding the obfuscated bash script on a Uniqlo t-shirt

#71
post #42

I love this shirt! Here's a nice video from the actual designer about the process of making this shirt (including intentionally making it hard to OCR): https://youtu.be/jocGLiecpjU?t=526

Author here. Thank you so much for the link which I hadn't seen! I'm very happy to see this and I'm gratified that it was deliberately difficult to OCR, not just me.

Re: Decoding the obfuscated bash script on a Uniqlo t-shirt

#73

My old colleague had one with a Go program[0] which I always thought was quite cool. [0] https://github.com/GL-Kageyama/UNIQLO_Akamai_T-shirt_Code

I got one this year with the Go code. Never actually thought it is legit code, just some random stuff.

Re: Decoding the obfuscated bash script on a Uniqlo t-shirt

#76
post #55
post #2

OCRing this is a nightmare and is a good benchmark to any self-proclaimed good OCR/vision model. I think though it could likely be easily OCR'd if you give the image to any decent agentic harness with a good vision model, e.g. newest Claude/GPT ones, and tell them to split the image per lines, and then just OCR each line individually. I wonder if the script itself was written by an LLM before obfuscation? There seem…

> I wonder if the script itself was written by an LLM before obfuscation? From the prototype shown here [0], and the way they talk about their process, I sincerely doubt it. Especially as they mention trying to make it hard for AI to handle the output. [0] https://youtu.be/jocGLiecpjU?t=567

I watched that whole video link - thank you for that - and he doesn't really say. In fact, he spends much more time on the beige color harkening to computer case plastics of the 80s & 90s.

The AI not handling the output relates to the final base64 output on the T-shirt (which other comments in this thread mention manually keying in or TFA discusses in the context of OCR). So, that is just not relevant to the question.

What made me start to wonder, personally, was that the output seems identical if you use "♥PEACE♥FOR♥ALL" instead of the version with internal repeats. IF there is any point to that "manual expansion of the cycles", IMO that deserves a comment much more so than "# Calculate length of text; text_length=".

Also, that `echo -n ...` followed by `echo ""` instead of just plain `echo` in the first place seems like the kind of copy-pasta code LLMs generate. Then again, regular devs also write pretty bad copy-pasta code.

There is also this the weirdly "broken down" calculation with 3 `bc` invocations not 1 as if it was translated from a language with more arithmetic/special function power than bash.

There is also the color scale stuff done in the loop instead of outside (except the one color=$(..)) which seems very unnatural and also very like machine translation.

Also, at least for me, on my bash-5.3.15(1), `char="${text:t % text_length:1}"` does not work to slice out the multi-byte UTF8 heart symbols, but it sure does look like the kind of thing an LLM would do translating from a python3 script (such as something like https://news.ycombinator.com/item?id=48830669) into bash.

Another thing is, as others here have observed, there is nothing "gradual" about the xterm-256 color cube. So, "gradient" is a misnomer and exactly the kind of weird things LLMs do when they cobble text together.

Finally, all the tput stuff the script does instead of just "print x spaces" really smells like a human description of the side scroll in the video game graphic he shows inspired him somehow LLM-corrupted/complexified into the vertical scroll terminals do.

None of this is conclusive, but the video mentions 2023..2025 as when he did it and given that he was a designer and his concerns more visual than code-oriented, I'd have to say I disagree with your sincere doubt and I do strongly suspect the decoded script was very likely LLM-circa2024-generated, possibly with light post-edits by hand.

Re: Decoding the obfuscated bash script on a Uniqlo t-shirt

#79
For anyone that cares, this is a slightly less stupid Python version:

    #!/usr/bin/env python3
    from os   import environ; E = environ.get
    from math import sin
    from time import sleep
    text = "♥PEACE♥FOR♥ALL" # The text to sine-scroll animate
    nText  = len(text)      # Number of utf8 chars
    freq   = 0.2            # Frequency scaling factor
    color0 = 12             # xt256 Color cube segment 12..
As mentioned in https://news.ycombinator.com/item?id=48830634 , the heart symbols did not otherwise even work for my bash and some have commented on liking the screen saver.

Re: Decoding the obfuscated bash script on a Uniqlo t-shirt

#80
post #70

My old colleague had one with a Go program[0] which I always thought was quite cool. [0] https://github.com/GL-Kageyama/UNIQLO_Akamai_T-shirt_Code

I wasn’t sure if you meant a Go solver or Go the language. Would be fun if someone wrote a Go program in Go

Or a pong clone in Racket.
Post reply on HN