See our code being recognized in motion

This is a Adobe Flash movie displayed on a DELL UHD Monitor and filmed with a Nexus5X (Google) camera at 48 fps HD resolution.
The stream is processed frame-by-frame, without tracking. The overlays show identified tags for test purposes.


Did you know? There are several hundreds if not thousands of different matrix codes. The QR code, NFC (Microsoft), Aztec, Datamatrix, DataStrip, MaxiCode, MiniCode, Array tag: only to name a few. So why develop a new color matrix code, when recognizing colors under real life conditions is so difficult?

Even Microsoft's NFC code could not meet expectations and was buried in 2010. The black and white QR-code is open source and preinstalled on every smartphone, so for heaven's sake why do we need another one? The answer is actually quite simple: "We humans don't! But robots do."
Yes, machines might use well a visual information channel. Granted, today's matrix codes can contribute little, since the reading of the codes is time-consuming and works only for short distances. After all those years struggling to make computers more human, we thought it is time to make our world more computer-friendly. If we really want machines to read, maybe we should create an alphabet THEY easily understand.

”KC-code” stands for a kinetic color code. “Kinetic” means that several codes can be simultaneously identified while in relative motion to a smart phone camera, for example.
The kc-code fills optimally the space and thus provides a maximal information content per area. It can be captured from very long distances. An application can choose anything from a simple (only seven cells) to a more complex design, storing several hundred bits. Features such as omnidirectional readability and a powerful error correction are included by design.

For applications requiring large amounts of data, the KC-codecs provides IT systems with an easy and errorless print based channel for secure document management and authentication, a “secure paper”.

Barcode history


Morse code


Morse code is a method of transmitting text information as a series of on-off tones, lights, or clicks that can be directly understood by a skilled listener or observer without special equipment. It is named for Samuel F. B. Morse, an inventor of the telegraph.

Read more 1837

Braille Code (english)


Braille is a tactile writing system used by people who are blind or visually impaired. It is traditionally written with embossed paper. Braille-users can read computer screens and other electronic supports thanks to refreshable braille displays. They can write braille with the original slate and stylus or type it on a braille writer, such as a portable braille note-taker, or on a computer that prints with a braille embosser.

Read more 1902



A barcode is an optical, machine-readable, representation of data; the data usually describes something about the object that carries the barcode. Originally barcodes systematically represented data by varying the widths and spacings of parallel lines, and may be referred to as linear or one-dimensional (1D). Later two-dimensional (2D) codes were developed, using rectangles, dots, hexagons and other geometric patterns in two dimensions, usually called barcodes although they do not use bars as such.

Read more 1949



QR code (abbreviated from Quick Response Code) is the trademark for a type of matrix barcode (or two-dimensional barcode) first designed for the automotive industry in Japan. A barcode is a machine-readable optical label that contains information about the item to which it is attached. A QR code uses four standardized encoding modes (numeric, alphanumeric, byte/binary, and kanji) to efficiently store data; extensions may also be used. The QR code system became popular outside the automotive industry due to its fast readability and greater storage capacity compared to standard UPC barcodes. Applications include product tracking, item identification, time tracking, document management, and general marketing. A QR code consists of black squares arranged in a square grid on a white background, which can be read by an imaging device such as a camera, and processed using Reed–Solomon error correction until the image can be appropriately interpreted.

Read more 1994



What does ref-tags make more attractive compared with usual matrix (2D) codes, like the QR-code?

1. It has a 2-3 times larger storage capacity per unit,
2. The tags can be freely captured from a large distance,
3. Even if the tag or the mobile phone camera is in motion.
4. Several tags can be captured at once – up to hundreds of them!
5. And they might all move in quite different directions!
6. This allows for searching for a particular tag among many.

Read more 2017

Technology & Patent

Simplicity is not the goal. It is the by-product of a good idea and modest expectations.

Paul Rand

KC-codes were born from desperation. Humans are not even aware of the awesome visual processor they carry on their neck, except when it gets buggy. It is extremely difficult to mathematically describe things humans seemingly so effortlessly do, like reading street signs, write and read papers, enjoy music, or drive on a cluttered highway. So before hitting a truck it is better to follow the Google-strategy and mark it with a unique tag, store it, and then hope for the best. That leaves us with the next logical question: what kind of code will do it?

For a start, we inverse engineered the image processing steps a processor must perform in order to find and identify a color matrix code.
Next, we designed THE matrix code making those steps as fast and as robust as possible. Following this quest, we ended up with a generalized version of the map-coloring problem in cartography.

The KC-codes are built from regular hexagons, known to cover optimally the plane. The cells display one of eight well disparate colors, the primary and secondary colors, black and white. Each cell’s color differs from those of all its neighbors. This property defines a natural error-correcting ability while each hexagonal cell delivers a robust visual signal. Last but not least: we can process right now a HD video-frame in less than 20 millisecond with almost 100% recognition rate.

If we knew what it was we were doing, it would not be called research, would it?

Albert Einstein

There are no analytic results about how to count the amount of information stored in graphs with next-neighbor color exclusion: so we invented simple numerical approximations. No simple but effective methods to transform arbitrary data into and from such sets of colored cells existed before: we developed them. There are no really good algorithms for identifying colors under real printing, illumination, and capturing (camera filter!) conditions but – at least for our goals – we solved that problem as well.
No results about error correcting and secure coding in such systems either: we worked them out. So it took quite a while to cover that long and winding path. In meantime that path became a broad road, so we can follow it with confidence, supported by experimental evidence. It works! Here is a list of some published results: Link PDF-publications.
KC-codes are storing some ID's, URLs, or server address containing more information about the target. The software needs first to locate the code on the digital image and "register" - rotate, scale - it. By design the "core" of the kc-code comprises seven cells of distinct colors and allows both tasks to be performed at once. As shown by the illustration below a core stores up to 1440 IDs. This provides a simple solution for many simple problems. Such a tag scales well when capturing from a distance.

A full GPS coordinate for a 30 cm resolution target or IP address requires a tag3 (3 cell layers) kc-code with 31 cells only. Data can be also directly stored on rectangular stripes as "secured paper", because it includes error-correction and cryptographic security.

As the size of a code increases, the capture ability of a camera in monitoring (video) mode deteriorates. Using error/erasure correcting codes will help but add further to the size of the code. For applications requiring distant capture the most important ingredient is a fast focus (high speed camera), good optical zoom, and a very good stabilizer. Perceiving accurately colors at a larger distance is a very tricky endeavor.

Compared to the best known matrix codes kc-codes provide the following advantages:

  • Fast target recognition: as shown in the Intro-video the kc-tags are located and identified in real time from a smart phone camera video,
  • Simple solution for simple problems: there are many simple tasks for which a core-size kc-tag is enough. No other matrix code provides this flexibility.
  • Multiple target recognition: several targets are processed at once. Based on the displayed short info, the user can choose which one it wishes to examine in more detail,
  • Visual Search: given a preliminary choice of target kc-code, the camera marks it and the phone vibrates when one of the multiple targets matches the query
  • Secure mode: extra information associated with a kc-tag target is accessible only if the user and/or the device are/is properly authorized.

All of the biggest technological inventions created by man - the airplane, the automobile, the computer - says little about his intelligence, but speaks volumes about his laziness.

Mark Kennedy

One of the unique ability of the kc-code technology is reverse search. We perform this task thousands of times each day: looking for something (a book, a CD, your car key, etc.). One condition for success is that this object is visible, so we take that for granted. Now there are many situations where no KC-code can help: your kids just took your car or someone cleaned your desk. So consider situations when such a search is difficult: find a book in a library, a product in a hypermarket, a part lying on storage room shelves, a document in a folder for invoices, tax or mortgage papers, etc. Reading is a newly acquired human ability and is still serial.

Of course, all these parts/papers/etc. have been already stored in a row of a database. A database KC-plugin generated a KC-code for each entry; but also for each folder/shelf/etc.
The codes were printed and orderly glued on those objects. A 3-layer kc-code sports more than 64 bits, which is large enough to keep such codes unique.

Back to reverse search: you must find a certain document or part. From the database a full text search sends you the KC-code(s) you need directly to your phone or device. With the KC-search app you scan the environment: it will guide you to the room, shelf/folder and even to the sought document by just buzzing discretely when it found the next relevant step in the search process.

Do you really need this? May be not. But your robots will be happily buzzing along when helped to find the part they need just in time on a factory line: faster and with less errors than now.

Social security, bank account, and credit card numbers aren't just data. In the wrong hands they can wipe out someone's life savings, wreck their credit and cause financial ruin.

Melissa Bean

While KC-codes were designed for machine vision, there are situations when also humans might profit. Securing sensitive information requires extra procedures taking time and effort but (clever) humans are basically lazy.

The vast majority of such documents (in paper or electronic format) contain only little secret information, like the client’s personal data on a bank account. It makes sense to have a hybrid document: partly human and partly machine readable. Such a mixed document is called in our nomenclature a “secure paper”. In order to perform a money transfer you just read the human readable part.
To read the sensitive coded part, one has to scan the paper and enter a password or follow another authorization procedure. Since now the capture process is under controlled conditions (a scanner, for instance), we can make our cells smaller. Our experiments show that under normal conditions a pure KC-coded A4 paper can store up to about 100 KB per page, several times more as when printing it. This large storage capacity together with the use of advanced error- or erasure-correcting algorithms, and cryptography makes it the method of choice for authentication of legal documents, works of art, and originality proof for sensitive machine parts, medicaments, or highly valuable designer products.

What's the capacity?

The smallest (core) kc-code can store up to 1440 ID’s, larger ones have a capacity around 180 bits, while the „secure paper“ has unlimited storage capacity. One could argue that whatever a kc-code can, an RFID can also do. That is true. But consider this: kc-code can be printed on any color printer and can be captured by any digital camera, no need for additional hardware. The main obstacle for using RFID’s is data and privacy protection. If you do NOT want to be recognized, just remove the kc-code badge! Furthermore, with a good camera you can capture kc-codes at greater distances than a RFID signal will travel.



Wintererstr. 47A
79104 Freiburg

Call Us

+49 761 2025634


Dr. Pal Rujan


All texts, pictures and further information published here are subject to the copyright of the site operator. Reproduction, distribution or public reproduction is only permitted in the event of a revocable and non-transferable consent of the website operator.

The contents of our website are created with the greatest care. However, no guarantee can be given for topicality and completeness. The website operator accepts no responsibility for any web content linked to the link, since this is not a content of its own. External links were checked for unlawful content, at the respective time they were not recognizable. However, there is no general monitoring and auditing obligation with respect to third-party content. The listed trademarks and brand names are the property of their respective owners.


R-EF (Rujan Entwicklung & Forschung) GmbH
Wintererstr. 47A, 79104 Freiburg

Directed by Dr. Pal Rujan

• theoretical physicist
• software developer

USt-ID-Nr.: DE 262133813
Registered in the Commercial Register of the Freiburg District Court, Handelsregisternummer: HRB 702719