NoTraQR.com

QR Codes Explained: History, Anatomy and How They Work

By Jean-Marc Zohlandt · Last updated: May 2026

You see them on restaurant tables, parking meters, vaccine certificates, train tickets and shampoo bottles. The QR code has become so ordinary that it is easy to forget it is a precise piece of engineering — a 30-year-old industrial invention that survived almost unchanged from a Japanese factory floor to your smartphone camera. This page explains where the format came from, what every part of the pattern actually does, and why a single design from 1994 still works perfectly in 2026.

A 1994 invention from a Toyota factory floor

The QR code was invented in 1994 by Masahiro Hara, an engineer at Denso Wave, a subsidiary of Denso — a major automotive supplier within the Toyota group. Hara and a small team had been asked to solve a very practical problem on Japanese assembly lines: traditional one-dimensional barcodes could only store about 20 characters, and tracking individual car parts required far more — part numbers, supplier IDs, manufacturing dates, batch codes. Workers had to scan up to ten separate barcodes on every component, and the production lines were slowing down as a result.

The team spent two years designing a two-dimensional matrix code that could be read from any angle, from a distance, and at high speed. According to Hara himself, the inspiration for the orientation pattern came from the game of Go, with its black-and-white grid of stones. The first version was deployed inside Denso plants in 1994. It was patented, but Denso Wave deliberately chose never to enforce the patent — the format was free for anyone to use. That decision is the single largest reason the QR code became a global standard rather than a curiosity.

What "QR" really stands for

QR is short for Quick Response. The name is a direct reference to the speed requirement of the original use case: industrial scanners on a moving assembly line had to recognise the code in a fraction of a second. Every aspect of the design — the corner squares, the alternating timing rows, the way modules are arranged — was optimised for fast detection rather than for visual elegance. The trade-off, of course, is that QR codes look like static noise to a human, but that is also why a scanner can find one almost instantly in a busy photograph.

"QR Code" is a registered trademark of DENSO WAVE INCORPORATED. The name is protected; the format itself is not. Anyone — including NoTraQR — can generate codes that conform to the published specification without paying royalties.

The three finder patterns — the corners of every QR code

Look at any QR code and you will see three large squares: top-left, top-right, and bottom-left. These are the finder patterns. They are the most important visual feature of the format, and the reason a phone can detect a QR code in a busy street photograph or on a curved beer mat at an angle.

Each finder pattern is built from concentric squares whose dark and light bands have a fixed 1:1:3:1:1 ratio. A scanner does not need to look for "a QR code" — it scans the image for any horizontal or vertical line whose dark and light segments match this exact ratio. The pattern is rare enough in natural images that false positives are unusual, and three matches forming an "L" shape are essentially never accidental.

Notice that the fourth corner does not have a finder pattern. This asymmetry is deliberate: it lets the scanner determine which way is "up" without needing the code to be presented right-side-up. You can scan a QR code rotated, mirrored or upside-down, and your phone will figure out the orientation in milliseconds.

Modules, alignment patterns and timing patterns

Each tiny black or white square inside a QR code is called a module. Modules are the fundamental unit — roughly equivalent to a pixel — and the entire payload is encoded by their pattern. Smaller QR codes (Version 1) are 21 × 21 modules; larger ones grow in steps of 4 modules per side, up to 177 × 177 at Version 40.

Beyond the corner finders, larger codes contain smaller squares called alignment patterns, scattered at known positions across the grid. Their job is to compensate for distortion: a QR code printed on a curved bottle, on crumpled paper, or photographed at an angle never reaches the scanner as a perfect grid. The alignment patterns let the decoder map the warped image back onto an idealised grid before reading the modules.

Between the three finder patterns runs a single line of alternating dark and light modules called the timing pattern. This stripe acts as a ruler: it tells the scanner exactly how wide one module is in the captured image, so it can divide the rest of the code into the correct rows and columns.

Encoding modes — how data fits in the grid

Once the scanner has read the bits out of the modules, it has to decode them back into characters. The QR specification defines four encoding modes, each optimised for a different kind of data:

The encoder picks the most compact mode that can represent the input — and it can switch modes part-way through a single payload. This is why a QR code containing only a phone number is much smaller than one containing a 200-character URL: the digits get the dense numeric encoding, while the URL is forced into byte mode. As a rule of thumb, shorter inputs produce smaller, denser-looking codes that scan more reliably from a distance.

Versions and physical scaling

The QR specification defines 40 versions. Version 1 is the smallest at 21 × 21 modules; each subsequent version adds 4 modules per side. Version 10 is 57 × 57; Version 25 is 117 × 117; Version 40 is 177 × 177.

Higher versions can store more data, but at a fixed print size each module becomes physically smaller. A Version 40 code printed at 2 cm × 2 cm has modules that are barely a tenth of a millimetre wide — too small for an older phone camera to resolve in poor lighting. In practice, the encoder chooses the lowest version that comfortably fits your data plus the chosen error correction overhead. Detailed guidance on file formats and error correction levels is in the technical guide.

An open standard since 2000

In 2000, the QR format was published as ISO/IEC 18004 — the official international standard. The current revision is ISO/IEC 18004:2015, freely available for purchase from the ISO catalogue. Standardisation made the format permanently independent of any single company: every scanner manufacturer, every smartphone OS, and every generator builds against the same publicly documented specification.

The combination of open standard and unenforced patent is unusual, and it is the reason QR succeeded where many competing 2D barcode formats — Aztec, Data Matrix, MaxiCode, PDF417 — remained niche. For background reading, the Wikipedia article on QR codes is comprehensive and well-sourced.

A slow start, then a sudden explosion

For the first eight years of its life, the QR code stayed almost entirely on Japanese factory floors. The first consumer-facing breakthrough came in 2002, when Japanese feature phones began shipping with built-in QR readers. Magazines and packaging in Japan started carrying codes; Western markets did not. From 2003 to roughly 2015, QR codes outside Asia were widely seen as a clumsy gimmick.

Two events changed that. First, in 2017, Apple added native QR scanning to the iOS Camera app. Android followed shortly. Suddenly there was no friction: no app to download, no setup, just point the camera. Then, in 2020, the COVID-19 pandemic turned QR codes into universal infrastructure overnight. Restaurants replaced printed menus to reduce surface contact. Governments issued QR-coded vaccine certificates. Events used QR for contactless check-in. A 26-year-old technology became part of daily life almost everywhere in the world within a few months.

How a phone reads a QR code in milliseconds

The pipeline a smartphone runs every time you point it at a QR code is, conceptually, straightforward:

The whole pipeline runs in a few tens of milliseconds on modern hardware. Reed–Solomon, the mathematics that lets QR codes survive damage, is covered in detail in the technical guide.

Why this matters for the way NoTraQR works

Because the QR format is fully specified by an open standard, the encoder does not need to live on a server. NoTraQR ships a JavaScript implementation of the QR specification directly to your browser, and every QR code you generate is built locally on your device. There is no upload, no API call, no server-side rendering. The payload of your QR code — your WiFi password, your vCard, your private URL — never leaves your machine. You can read more about that design choice and how to verify it in your own browser on the why no tracking page.

Further reading