Isai_Games   MAIN   ART   GAMES   LINKS   BLOG   MUSIC

The Chromarithmograph System — February 20, 2026.

A project revolving around code, art, and numbers.

Introduction

Inspiration

Explanation

Under Development Features

Demonstrations

Conclusion

Tutorial

In 1974, Gerhard Richter presented 256 Farben (256 Colors). The artwork shows a 16 by 16 rectangular grid of 180 tones, which perplexes visitors of the SFMOMA for their arrangement and intensity. Many are also intrigued to learn that there is no specific pattern or meaning in the position of the colors, Richter assigned a number to each tone and drew those numbers from a box, resulting in a random pattern.

I learnt about 256 Farben (though I had already seen it) at a late stage in the development of a project with a similar artistic direction.

Chromarithmography

This seemingly "random" arrangement of colors is quite different, I call it chromarithmograph (that is, chroma, arithmetic, -graph). The chromarithmograph is a new method of encrypting numerical information utilizing colors, in such a way that the presence of the encoded information would not be evident to an unsuspecting person. Their design allows them to be used as aesthetically appealing decorations without sacrificing the secret message and its decodability. Here are more examples:

Inspiration

The idea originated while looking at patterned clothes, specifically this image by artist Ferry.

Parties are for losers

The colors of this sweater are already very rich and visually interesting, wouldn't amplifying its meaning be nice? I designed the algorithm such that these two principles remain true:

1. The exact size and position of the colors should not interfere with the decryption, only their order.

2. The order of the colors should not be definite. It should allow different color permutations to converge on the same results, and vice versa.

The purpose of these propositions is that the results outputed by the program remain as varied and visually interesting as possible, with a degree of flexibility and redundancy included. This mimics written language in the sense that one may want to express the same character in different ways, to emphasize or shorten it, maybe even to increase the difficulty of its decryption. It is also useful in the artistic sense, for making encryption patterns seem more ordinary, or to purposely corrupt them to generate glitch art.

Explanation

Explanation (Click here to skip to a simple version of the explanation)

Terminology:

Color Palette: The range of colors used to generate the image.

Separator: First color of the palette, it does not hold numerical value and only serves to indicate the start of a new piece of information.

Color Palette Index: Number used to identify a color, with the separator always using 0.

Color Size: Size of our palette, not including the separator.

Encryption Key: The original order of the image's color palette which is needed to correctly decrypt it.

Index Number: First color after a separator, its purpose is to multiply.

Number: Any number after the separator, its purpose is to be summed.

The program starts by numbering the color palette, utilizing the first color as the separator and assigning each subsequent color a number starting from 1. To translate an input number into a list of color palette indexes, the program follows this procedure:

Let 28 be our input number and our color palette size be 7 for this example.

The index number is decided by dividing the input number into the color size, getting the floor of our result, and then summing one to it.

Index Number = ⌊(Input Number/Color Size)⌋ + 1

Example: Index Number = ⌊(28/6)⌋ + 1 = 5

The following color is decided by subtracting 1 from the index number, multiplying the result by the color size, and subtracting this result from the input number.

Number = Input Number - (Index Number - 1) * Color Size

Example: Number = 28 - (5 - 1) * 6 = 4

If the result is equal or greater than the Index Number, the program sums 1 to it. It then joins these results, adds a separator, and colors them according to the color palette to complete the image.

[Index Number, Number, Separator]

Example: [5, 4, 0]

A simplified version of this explanation:

We have a color palette which is numbered from 0 to the last color. The 0th color is used to separate and indicate whenever a new number starts. To convert a number to its corresponding colors, we indicate our starting point. Our starting point is a multiple of the size of our palette (excluding the separator).

If we're working with a palette that has 7 colors (6, exclusing the separator) we can start from 0, 6, 12, 18, 24, and 30 (We cannot convert the number 36 normally because of avoiding the repetition of colors).

After indicating our starting point, if the desired number has not yet been reached, we add a color indicating the amount to be summed. We utilize the order of the colors for this, if the color to be summed is equal to the starting point, we utilize the next color.

The entire process can be summarized as that of making every combination of 2 colors, as they are ordered in the color palette, and then assigning a number starting from 0 to every combination.

Under Development Features

Chromarithmography is still in development, some of the currently missing features are:

-The program can't generate numbers higher than n²-1 where n is the color palette size.

-You need to input the EXACT hex values of an image in order to decode it correctly, there is no automatic detection.

-Images are generated and read from top to bottom and left to right, with no way of changing their orientation.

-The program lacks a GUI.

Demonstrations

Here are some demonstrations of chromarithmography and its various uses.

Crystal Cube Real life version of the Crystal Cube, made as a gift with hama beads

A simple, easily replicable pattern with minimal colors. Perfect for gifts.

Steganographia Book Cover Mockup

This mockup of a Project Guntebger version of Steganographia features a hidden message on its cover reading: "STEGANOGRAPHY: That is: THE SURE ART OF DISCLOSING THE INTENTION OF ONE’S MIND TO THOSE WHO ARE ABSENT THROUGH SECRET WRITING; BY THAT MOST REVEREND AND FAMOU SMAN, Johannes Trithemius, Abbot of Sponheim, & Most Perfect Master of Natural Magic. PREFIXED TO THIS WORK IS ITS KEY, OR a true introduction, composed by the Author himself; HERETOFORE MUCH DESIRED BY MANY, though seen by very few: But now brought into the public domain for the sake of Students of secret Philosophy. With the Privilege & consent of his superiors".

Chromarithmography is useful because of its compact nature and rich design variation, imagine having to fit all that text on the cover!

Project Rooftop Stained Glass Window with Matthew 5

Referencing another Richter artwork, the Cologne Cathedral Window. This artwork makes use of chromarithmography by incorporating an encrypted portion of Matthew 5 onto it. It is also based on a Project I've been making.

Miscellaneous Examples

Minimalist mockup album cover

Minimalist mockup album cover utilizing random numbers as a chromarithmographic pattern. The Japanese text reads "Electronic Story".

The Trial by Franz Kafka utilizing chromarithmography

The Trial by Franz Kafka completely encrypted utilizing chromarithmography. Long texts like these can be confidentially transfered between parties without raising suspicion, 1. By confusing them as avant-garde art. 2. By the inability of external parties to gain access to the color palette information and thus, decrypt the message.

Complete Matthew 5 Chromarithmograph

Complete version of the previously mentioned Matthew 5 stained glass window.

marina by Io, first version

marina by Io

The program can also be used to encrypt images as numbers. To do this, the image needs to utilize a color palette, be perfectly square, and have the separator color in a "scanline" pattern across the image (also disabling "redundancy"). My process for converting this image was as follows: Apply the indexed color palette on Aseprite, crop the image to be square, duplicate its size vertically and horizontally, and then apply the separator pattern.

marina by Io, second version

Result: A long text file that most people would dismiss as random code, which can only be decrypted with the correct color palette.

marina by Io, text file version

This image may be too small, you can open it on a new tab to zoom and see each individual number.

Conclusion

Chromarithmography opens up new possibilities. Programmers can now indulge in the creation of their own aesthetic messagery, artists can extend the meaning of their works and designs, and everyone can engage in the ceturies-old art of steganography. I hope to see what creative patterns and color palettes you create with this tool, have fun!

Tutorial

For a tutorial on how to start using the program, click here.