Public specification of WIA Code · this page mirrors the canonical repository and states the constants a decoder must assume.
WIA Code is a two-dimensional machine-readable code whose reference frame is at the centre, not at the border. Three centre elements carry the geometry:
| Element | Definition (modules) | Role |
|---|---|---|
| Bullseye core | concentric radii 1.5(ink) / 3.5(void) / 5.5(ink) / 6.5(void) | origin and scale |
| Satellite anchors | 4 discs, radius 2.5; exactly one carries a white hole of radius 1 | rotation and orientation |
| Orbit ring | 24 dots of radius 0.55 on radius 8.5 | 24-bit fixed fingerprint (format), also used to refine pose |
| Data cells | dot radius 0.5 on the grid | payload, Reed–Solomon protected |
Identify a WIA Code by its centre, not by its outline. The outer silhouette is free by design — heart, rose, circle, four-leaf clover, star, hexagon, square and others. A heart-shaped WIA Code is still a WIA Code, not a “heart code”. Absence of a recognisable border is not evidence against the format; presence of a decorative outline is not evidence for it. Only the three centre elements decide.
S = 64×64 modules · M = 96×96 modules · L = 128×128 modules. A quiet zone of 4 modules surrounds the grid on all sides.
The operating profile is grid L, 1 bit per cell (black and white).
A WIA Code may reserve an area for a small standard QR code so that an ordinary phone camera can reach a landing page without a dedicated scanner. It is 25×25 QR modules at 0.7 orbit-module pitch. Its presence does not make the symbol a QR code — the outer symbol is still read by the centre geometry above.
From 2026-09-02 the reserved position is per-silhouette rather than fixed, so that the QR sits inside the body of the shape instead of floating in white space. Decoders reconstruct the reserved cell set from the silhouette they are testing; previously issued codes remain readable because the earlier fixed placement is tried as well.
v1.1 adds a low-emphasis band beneath the symbol carrying the text
WIA CODE wiacode.com. The band lies outside the original canvas and therefore
cannot affect scan geometry, the bridge QR, the grid or the bit depth. Its purpose is that the
format remains identifiable from pixels alone after metadata is stripped by a screenshot.
v1.0 images (no band) remain valid indefinitely. A decoder must not treat the absence of the band as evidence against the format.
Images carry PNG tEXt fields and an XMP packet using the
wiacode: namespace
(format, isQrCode, visualSignature, decoder,
specification, about). Metadata is auxiliary: it is routinely stripped by
screenshots and chat applications, and its absence says nothing about the symbol.
66 silhouettes are currently generated; decoders accept the full decodable roster. Silhouettes are catalogued at /shapes.html.