This puzzle belongs to the puzzle series: hyper-modern art

After solving the message in the butterfly image, the two friends move on to the next room.

"This was certainly an overwhelmingly large picture in the last room. Can we have something smaller please?"

"Sure. Just look over there on the table..."

"Is this a microscope?"

"Indeed it is. Just look through it. My guide states that the image under investigation consists of exactly 93635 square dots created by laser-printing on only a square-millimetre of paper."

"Hmm, certainly an interesting image, although not as beautiful as the last... What is it called?"

"It's called Homage to LA."

"Well, then there certainly isn't something secret about this one. You can clearly read this!"

"Yes, but do you also know what L A stands for? And remember: It wouldn't be a piece of hyper-modern art if there wouldn't be an unambiguous solution to this held within the image itself!"


The goal of the puzzle is to find some message - other than the obvious text - in the image, which will be a clear hint to the solution what L A stands for. A complete answer contains this message, how it can be found, and what L A stands for. The puzzle is fully contained in the image. The story is just flavour...

  • 2
    $\begingroup$ @qwertylpc the steganography tag is pretty detailed in it's description. It's pretty safe to say that you won't find the answer to this problem just looking at the image. $\endgroup$
    – LeppyR64
    Jul 16, 2015 at 18:24
  • 1
    $\begingroup$ (Also looking back on the series and the poster this puzzle could be quite complex) $\endgroup$
    – LeppyR64
    Jul 16, 2015 at 18:27
  • 1
    $\begingroup$ If I let my eyes go out of focus I see a UFO and a dinosaur :P $\endgroup$ Jul 16, 2015 at 18:50
  • 1
    $\begingroup$ There are 19 unique colours in the image. I split the image into each of it's colours. If anyone is interested in looking at the pictures I have posted them here: Google Drive for Images There are the 19 PGM files which are colour and labelled with the RGB values. There is also a photoshop file with all of the layers and transparency for twiddling them on and off. $\endgroup$
    – LeppyR64
    Jul 22, 2015 at 10:12
  • 3
    $\begingroup$ I wonder if it is needed to add a hint (or rather do a slight edit to the image such that it contains a hint.) I will not do this now, but if enough people upvote this comment, I will. $\endgroup$
    – BmyGuest
    Jul 23, 2015 at 7:23

2 Answers 2


Following Leppy's lead, here's an animated .gif with all the layers in order of hue.

enter image description here

The 19 colors themselves are fully-saturated and evenly spaced around the edge of the color wheel, suggesting a kind of sequence.

enter image description here

Numbering the colors from 0 (red) to 18 (magenta) we have the following numbers of pixels of each color:

color # of pixels
0 4963
1 5338
2 4317
3 4934
4 5617
5 5067
6 4955
7 5396
8 4554
9 4893
10 4698
11 4816
12 4259
13 5004
14 5015
15 5033
16 4906
17 4770
18 5100

Taking each one of these numbers mod 26:

23 8 1 20 1 23 15 14 4 5 18 6 21 12 23 15 18 12 4

Converting these numbers into letters (1 to A and 26 to Z) gets us:


...the name of a song by:

Louie Armstrong

Mathematica code to solve the puzzle:

 Mod[Last /@ 
      Join @@ Import["http://i.stack.imgur.com/feRTC.gif", 
        "RGBColorArray"]], First@ColorConvert[First@#, "HSB"] &], 
   26] + 64]

...and to generate similar puzzles:

cover = "Homage\nto\nJS";
n = StringLength[message];
colors = Round[List @@@ ColorConvert[Hue /@ (5/6 Rescale@Range@n), "RGB"], 1/255];
counts = ToCharacterCode[message] - 64;
{w, h} = Catch[Do[
           If[Mod[w h - Total[counts], 26] == 0, Throw[{w, h}]],
           {w, 300, 500}, {h, w - 2, w + 2}
data = Rasterize[
         Row[Style[#, RGBColor @@ RandomChoice@colors, Bold] & /@ Characters@cover],
         "Data", ImageSize -> {w, h}
       ] /. Append[Thread[255 colors -> Range[n]], {_, _, _} -> 0];
counts = Mod[counts - BinCounts[Join @@ data, {1, n + 1, 1}], 26];
zeros = Count[data, 0, {2}] - Total[counts];
counts += RandomSample@First@IntegerPartitions[zeros, {n}, Floor[zeros/n, 26]+{0, 26}, 1];
random = RandomSample[Join @@ MapThread[ConstantArray, {Range[n], counts}]];
i = 1;
data = data /. {0 :> random[[i++]]};
img = Image[data /. Thread[Range[n] -> colors]]

enter image description here

  • $\begingroup$ Can you elaborate on the color circle part? I'm not certain what you're talking about. $\endgroup$
    – LeppyR64
    Jul 24, 2015 at 1:52
  • 1
    $\begingroup$ @Leppy I used Through[{Cos, Sin}[2Pi First@ColorConvert[#, "HSB"]]& to compute the positions in Mathematica. I don't know how it converts the RGB colors to HSB. The next colors, assuming they follow the pattern, would be #ff0085 and #ff003c. Although the spacing is uniform, it is not an even division of the circle: the 22nd color would not be pure red, but would be #ff0e00. $\endgroup$ Jul 24, 2015 at 2:14
  • 1
    $\begingroup$ @BmyGuest See here $\endgroup$ Jul 24, 2015 at 14:15
  • 1
    $\begingroup$ I don't think the unused colors in the palette could be part of the puzzle. The rest of the puzzles in this series can be solved with a printed copy of the image, and it wouldn't make thematic sense for information to be hidden in that way. $\endgroup$
    – f''
    Jul 24, 2015 at 14:18
  • 1
    $\begingroup$ LOL, that's actually the first thing I did, didn't think to take it mod 26 though. Good work! $\endgroup$
    – LeppyR64
    Jul 24, 2015 at 16:45


Liber Abaci


At first we notice that the picture is made up of 19 unique 8-bit colors. Separating the image into 19 different images composed of one color each, we see that 10 of the images represent a letter in 'Homage to LA' with somewhat additional random noise while the 9 others appear to contain completely random noise. On further inspection we notice that the image containing the letter 'A' contains no pixels for the first 32 rows of the image which we assume is a mask for the other images. However, after a more detailed analysis we see that the image containing the letter 'L' appears to contain random noise in rows 17 to 32 with limited information in rows 1 to 16 which we conclude is a more specific image mask. Now cropping all letter images to the first 16 rows we begin to see our message. Summing the pixels in each cropped image results in an ordered series of numbers.

  • H = 192
  • o = 152
  • m = 117
  • a = 110
  • g = 96
  • e = 77
  • t = 54
  • o = 33
  • L = 18
  • A = 0

While searching for various number series I ran across Leonardo of Pisa, known as Fibonacci, who wrote a book in 1202 called 'Liber Abaci' known as 'The Book of Calculation'. In this book he describes many mathematical concepts but most importantly he introduces the Hindu–Arabic numeral system composed of digits 0-9 with positional value that we use today. This entire puzzle is possible because of him.

  • $\begingroup$ Not quite the solution, but on the right track. I like your rebus-like approach from the ASCII codes, but no, the hidden message is more obvious (and longer) than that. $\endgroup$
    – BmyGuest
    Jul 21, 2015 at 5:08
  • $\begingroup$ Ah, and BTW, your solution does not abbreviate with L A, does it? ;c) But still +1 from me to attempt a solution. $\endgroup$
    – BmyGuest
    Jul 21, 2015 at 6:36
  • $\begingroup$ In order to not alienate the above messages, you can view my original post in the edit log. $\endgroup$ Jul 22, 2015 at 4:25
  • 1
    $\begingroup$ Another interesting idea (and I've learnt something new), but not correct. The observation of the 'void' area is certainly interesting but don't get hooked on it too much. Some other idea in your answer gets you closer... BTW, I think it is better to start a new, second answer - if it is very different from your previous one - rather than completely editing it. Edits should only amend/correct things. There is no harm in having multiple answers from the same poster - they can be commented on and voted on and accepted independently. $\endgroup$
    – BmyGuest
    Jul 22, 2015 at 10:47
  • $\begingroup$ @2012rchampion The horizontal stripes found are an artefact of the algorithm building the image. The image is first build as "noise" and the letters where than added by "swapping" pixels. I should have done that in a more random fashion... What you're seeing is a "depletion" zone... $\endgroup$
    – BmyGuest
    Jul 24, 2015 at 17:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.