BUNTI
BUNTI is a two-dimensional colour code that a camera reads, part of Wolly. Its format is a sequence of the DNA bases A, C, G and T, two bits in each cell, in four colours: green for A, blue for C, yellow for G and red for T. Three black and white finder patterns and a corner pattern show the camera where the code lies. From the finder patterns the scanner determines the size and position of the code. The smaller corner pattern provides the fourth point, so that a code photographed at an angle can be read too. Source: github.com/heikozim/hilde-wolly; source of the language: github.com/heikozim/hilde.
Why four colours
BUNTI is a tribute to DNA: four bases, four colours. The choice is also useful: four colours carry two bits a cell, twice as much as black and white, and can be told apart fairly reliably. With 256 colours it would be eight bits, but that many colours can cause more read errors in colour printing or in poor light. BUNTI replaces no standard: for exchange with others there are QR Code and JAB Code (Fraunhofer SIT for the BSI, ISO/IEC 23634). It is meant for your own, proprietary applications.
How it is protected
- Reed-Solomon over GF(256), at the levels L, M, Q and H, and a CRC-32 over the payload.
- Mode 2, suitable for DNA: at most three equal bases in a row, and 45 to 55 percent G and C.
- Output as pixels, SVG or PNG; reading from a picture with a perspective correction (
Wolly.BuntiScan), tested on damaged and turned pictures. No real camera has read these codes yet.
Three codes
Each picture was made by the command-line programme buntipng of Wolly from the text beside it, at 8 pixels a cell with a quiet zone of 4 cells, written to a file, read again from that file and decoded; the text read back was the text in each case. The pictures are copied unchanged from the demo directory of Wolly, which lists their SHA-256.

The text Wolly, 5 bytes, 21 × 21 cells.

The text „Wolly ist ein Web-Framework in Hilde: Formulare, Sitzungen, Bilder und dieser Farbcode, Bunti, den eine Kamera liest.“, 117 bytes, 33 × 33 cells.

The following text, 415 bytes, 53 × 53 cells.
Bunti ist ein zweidimensionaler Farbcode: vier Farben tragen je zwei Bit, drei Suchmuster und ein Eckmuster zeigen der Kamera die Lage, Reed-Solomon und eine CRC-32 sichern die Nutzlast. Dieser Text ist die Nutzlast dieses Bildes; das Programm hat das PNG geschrieben, aus der Datei wieder gelesen und entschluesselt, und der gelesene Text ist dieser Text. Wolly, ein Web-Framework in Hilde, Heiko Zimmermann, 2026.