We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Fragile Perception of Reality
Fragile Perception of Reality is an esoteric programming language made by User:Dragoneater67 in 2026. It was designed for obfuscating programs.
Overview
The program is a sequence of bytes. There are 256 unbounded queues of unsigned 8-bit integers initially empty, the I/O bit initialized to 0 and unsigned 8-bit integer register A initialized to 67. Only 1 queue can be active at a time, at the start of execution the active queue is 0. Bytes are read left-to-right and each byte is XORred with A and interpreted as an opcode. After each instruction execution, A is incremented by 233. The program is executed in an implicit infinite loop.
| Opcode | Description |
|---|---|
| 97 | Do nothing. |
| 23 | Enqueue A to the active queue. |
| 89 | Dequeue n the active queue and switch to nth queue if the active queue is not empty, else, switch to the 0th queue. |
| 11 | Switch to Ath queue. |
| 7 | Toggle the I/O bit. |
| 211 | If the I/O bit is 1, input a character and enqueue its ASCII code to the active queue, if the I/O bit is 0 and the active queue is not empty, dequeue a value from the active queue and output it as an ASCII character, else, do nothing. |
| 151 | Halt. |
Computational class
Fragile Perception of Reality is Turing complete since it can simulate a Cyclic tag system. Each 1 is encoded as (bytes are represented in pairs of hexadecimal digits since the code contains unprintable characters):
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 17 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
And each 0 is encoded as:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 16 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
The program starts with enqueueing the encoded initial datastring, followed by this:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 b 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
Each production rule starts with:
1a 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
Followed by enqueueing encoded bits, then ends with:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 b 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
The program ends with:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 a 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
Examples
XKCD Random Number
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 23 ce 91
Cat program
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 98 5b 76 89