Noita

Home / Noita / The Eye Puzzle

The Eye Messages

"Seeking truth, the wise only find its profound absence."

Unsolved

What We Know

What it is: 9 messages made of eye-shaped glyphs found in East and West parallel worlds. 5 messages in the East, 4 in the West. Each eye glyph has one of 5 orientations. They only appear with mods disabled.

Critical fact: This is NOT an in-game interaction puzzle. The entire Noita codebase was decompiled using Ghidra (NSA reverse-engineering tool). No trigger, no interaction, no spell, no boss mechanic exists for the eyes. They are a pure standalone cryptography puzzle you could solve on paper.

Message structure: Eyes are arranged in rows of up to 39 glyphs. Every second row is offset. The total glyph count in each message is divisible by 3. By grouping into triangular triplets (trigrams), each trigram encodes a base-5 number (000 to 444), giving a range of 0-124 in decimal.

The breakthrough: Out of 36 possible reading orders for trigrams, exactly ONE produces an unbroken range of values from 0-82. The probability of this occurring by random chance is approximately 5.8 x 10^-185 (picking the same grain of sand from all sand on Earth, 11 times in a row). This is the accepted "orthodox" reading order.

Dev confirmation: The developers have confirmed the eye messages contain a real message. This is not a troll.

🔑

Puzzle Fundamentals

Confirmed

No in-game trigger exists

Full Ghidra decompilation of Noita's code confirms there is no interaction, trigger, spell, or boss mechanic tied to the eyes. Every single function has been assigned. If it isn't in the LUA, it's not there.

Source: Kaliuresis Verified via Ghidra
Debunked

Casting spells at the eyes / bringing bosses

No in-game trigger exists. Period. The Ghidra decompilation is exhaustive. Redirecting effort toward in-game experiments is wasted time. This is a pencil-and-paper cryptography problem.

Source: Kaliuresis Definitively ruled out
🧬

Cryptanalysis

📐

Encoding & Alphabet

Confirmed

83-symbol alphabet with unbroken range

The orthodox trigram reading order produces values 0-82 with no gaps, out of a possible 0-124 range. Toboter's script tested ~86,000 reading orders and found no other with comparable statistical significance.

Source: Toboter Mathematically proven
Tentative

Eye directions as wheel-reading instructions

Recent theory: eyes aren't encoded triplets but directions for reading a wheel/disc cipher. Eye looking left = read wheel center-to-left. Straight eyes indicate special operations (rotation?). Produced 891 bits from East 1 message. Reddit thread

Source: u/vollmondum Unverified, novel approach
📊

Pattern Analysis

Confirmed

Messages share sections (alignments)

Groups of characters appear at the same position across different messages, particularly near the beginning. The first character differs between all messages, suggesting numbered entries (1., 2., 3., etc). Shared sections indicate identical plaintext passages.

Source: Lymm Confirmed across all 9 messages
Confirmed

No double trigrams exist

The same trigram never appears twice in a row in any message. In a deck cipher, this is automatic: each plaintext letter shuffles the deck, so the top card always changes. The no-doubles property constrains the cipher to mechanisms where the state transition is never the identity.

Source: Pyry, Lymm Verified across all messages
Confirmed

Isomorphs (Lymm's Patterns) found

Gap patterns between repeated characters match across messages at different positions. These isomorphs can form when the same word/phrase occurs at different locations. Indicates the cipher key is consistent across all messages.

Source: Lymm, CodeWarrior0 Multiple instances documented
Debunked

Odd/even trigram frequency differs

Splitting ciphertext into odd- and even-positioned trigram values and comparing frequency distributions shows no significant difference (Monte Carlo p=0.539, 13k trials). With only ~6 samples per bin across 83 symbols, the apparent variation is noise.

Source: u/Alien-Fox-4 Debunked via Monte Carlo (p=0.539)
Confirmed

Ciphertext distance-4 repeats at 2x expected rate

Trigram values repeat at a gap of exactly 4 at nearly double the expected rate (z=4.04, p<0.001), suggesting a structural cycle of period 4 in the cipher.

Source: CodeWarrior0 Statistically confirmed (z=4.04)
🔐

Cipher Classification

Confirmed

Cipher is polyalphabetic

Flat frequency distribution proves it's not a simple substitution cipher. Each ciphertext character depends on something beyond just the plaintext character. The cipher has hidden internal states far exceeding 83, with the state space likely being S₈₃ (all permutations of 83 symbols).

Source: Toboter, CodeWarrior0, Lymm Confirmed via frequency analysis
Confirmed

Hidden states far exceed 83

The cipher's internal state space is not just 83 values. In a deck cipher model (GAK with S₈₃), the hidden state is the order of 82 unseen cards beneath the top card, giving 82! possible hidden states. This "delayed hidden state effect" explains how messages with different first characters can share subsequent sections.

Source: Lymm Derived from GAK/deck cipher framework
Confirmed

Chaining conflicts observed

Alphabet chaining on isomorphs produces conflicts (commutativity conflicts, order conflicts, arrow overlaps) that are impossible in cyclic-group ciphers (CTAK). This rules out all classical ciphertext-autokey mechanisms, including Alberti, and requires a non-commutative group.

Source: Lymm Confirmed via chaining graph analysis
Confirmed

Isomorphic cipher hierarchy classified

All ciphers producing isomorphs form a strict hierarchy: CTAK < GCTAK < GAK < Perfectly Isomorphic. CTAK (cyclic) is ruled out by chaining conflicts. GCTAK is ruled out because 83 is prime (the only group of order 83 is cyclic). The cipher must be at least GAK-class.

Source: Lymm Mathematically proven
Confirmed

S₈₃ is likely the only viable transitive group for GAK

Because 83 is prime, only 6 transitive permutation groups act on 83 symbols. Cyclic and dihedral were ruled out by Lymm. The remaining groups (AGL subgroups and A₈₃) have not been definitively ruled out because the actual cipher mechanism is unknown. S₈₃ is the consensus expectation: both S₈₃ and A₈₃ contain ~10¹²³ permutations and are equally intractable.

Source: Lymm 6-group enumeration
Debunked

Autokey Alberti cipher model

Pyry's original demonstration used an autokey Alberti cipher to show how isomorphs could arise. However, alphabet chaining reveals chaining conflicts in the eye data that are impossible for any cyclic-group cipher (including Alberti). The Alberti model was an important stepping stone but is now ruled out.

Source: Pyry (original), Lymm (disproof) Ruled out by chaining conflicts
Debunked

Simple substitution cipher

Flat character distribution across all messages eliminates any form of monoalphabetic substitution. Period analysis confirms it's not periodic either. The cipher is significantly more complex.

Source: Toboter, CodeWarrior0 Exhaustively tested

+ Submit a New Finding

Found a new pattern in the eye messages? Report it here.

Theories (Ranked)

Established

Deck cipher (GAK with S₈₃)

The leading candidate: a deck of 83 cards where each plaintext letter triggers a specific shuffle. The top card after shuffling is the ciphertext output. Equivalent to a Group Autokey cipher with the symmetric group S₈₃. Evidence suggests the shuffles have relatively simple structure (few swaps from a shared base permutation), which constrains the key space.

Established

Messages are numbered list entries sharing a template

First character differs across all 9 messages (numbering). Shared sections near the start suggest a common header or repeated phrase. The plaintext likely follows a structured format, possibly instructions or a narrative with variations.

Promising

Permutation similarity narrows key space

Shared sections after differing first characters suggest the deck shuffles for each plaintext letter are "not too far apart" from each other (a few swaps from a shared base permutation). If confirmed, this dramatically reduces the search space from arbitrary S₈₃ permutations to a tractable family of structurally simple shuffles.

+ Submit a New Theory

Have a cipher theory or decryption approach? Share it.

Community Resources

Key documents, tools, and channels maintained by the solving community.

📄

Documents

📊

Spreadsheets

🔧

Tools & Guides

📋

Wikis

💬

Community & Media

Pyry's Conditions

Any proposed theory must explain ALL of the following observations. These are the community's litmus test for viable cipher candidates.

1

Random (flat) letter distribution

The frequency of each symbol across messages is approximately uniform, eliminating simple substitution ciphers.

2

Unbroken set of values 0-82

The orthodox reading order uses exactly 83 consecutive values with no gaps from the 125 possible. No other reading order achieves this.

3

Shared sections (alignments) between messages

Identical character sequences appear at the same positions across different messages, implying shared plaintext with the same key/cipher.

4

Isomorphs (Lymm's Patterns)

Gap patterns between repeated characters are consistent across messages. This constrains the cipher to specific classes of polyalphabetic systems.

5

Shared sections after varying first character

Despite different first characters (message numbering), subsequent shared sections still align. The cipher's state must reset or be independent of the first character.

6

Isomorphs with slightly differing composition

Some isomorphs share the same pattern structure but use different actual symbol values, implying position-dependent encoding.

7

First trigram differs but second is shared

The first character in each message is unique (message number), but the second character can be the same across messages. The cipher must allow this.

8

Complete absence of double trigrams

The same trigram never appears twice consecutively in any message, though identical trigrams can appear at adjacent positions in different messages.

9

Non-shared isomorphs have unique sequences

All isomorphs that aren't part of shared sections have different trigram sequences and never share the same trigram value at the same relative position.

Discussion

Comments powered by giscus. Uses GitHub Discussions.