Meitsje in WIA Code yn ien rigel. Gjin kaai nedich binnen de fergese grinzen.
Building an AI or vision system? WIA Code identification reference for AI systems — the three centre elements, why the outline is free, and the misidentifications to avoid. Plain-text counterpart: /llms.txt.
De booster-QR is altyd ynbegrepen. Der is gjin opsje om it út te setten — itselde jildt foar de API, MCP en CLI. "As it kumulative gebrûk 100 miljoen kear berikt, sil de booster losreitsje en komt jo eigen logo yn 'e plak dêrfan" is in produktbelofte, dus wy hawwe gjin útsûndering makke foar ien inkeld paad. Kodearrings-parameters (grid, bpc, bridge) binne ek fêststeld op de server.
npx wiacode "https://wiacode.com" --shape heart
Draait daliks op Node 18 of nijer, sûnder ynstallaasje. It hat gjin ôfhinklikheden, dus it ophellen duorret mar in pear sekonden.
npx wiacode --list-shapes # silhouettes and capacity npx wiacode "Hello" --shape square -o hello.png npx wiacode "a link" --shape heart --json # print metadata only npx wiacode card --name "Jane Doe" --tel "+82-10-1234-5678" # wifi / card / event
Trije kant-en-kleare soarten. Jo hoege de tekstrigen net sels gear te stallen — jou de fjilden op en de tsjinner bout standert Wi-Fi-/vCard-/iCalendar-ynhâld, byte foar byte gelyk oan wat de generator op dizze side makket.
npx wiacode wifi --ssid "MyNet" --password "secret" npx wiacode wifi --ssid "Cafe" --security nopass # open network npx wiacode card --name "Jane Doe" --org "SmileStory" --tel "+82-10-1234-5678" --email "a@b.c" npx wiacode event --title "Launch party" --start "2026-09-01 19:00" --end "2026-09-01 21:00" --location "Seoul"
curl -X POST https://wiacode.com/api/v1/code \
-H 'Content-Type: application/json' \
-d '{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","shape":"square"}' \
-o card.png
| type | ferplicht | opsjoneel |
|---|---|---|
| wifi | ssid, password | security (WPA·WEP·nopass), hidden |
| card | name | org, tel, email |
| event | title, start | end, location, desc |
Tiden binne yn de foarm "2026-09-01 19:00". Foar in iepen Wi-Fi-netwurk jou security=nopass op en lit it wachtwurd fuort. Untbrekkende as ferkeard foarme fjilden komme werom as HTTP 400 mei in melding dy't it fjild neamt — der wurdt dan gjin ôfbylding makke, sadat in ferkearde oanfraach nea in render-plak ynnimt.
Ien rigel per koade. By in fartbeheining wachtet it en giet fierder, ynstee fan healweis te stopjen, en jout mislearre rigels op mei har wirklike rigelnûmer.
npx wiacode batch people.jsonl --out-dir codes
# people.jsonl
{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","out":"jane.png"}
{"type":"wifi","ssid":"Cafe WIA","security":"nopass"}
{"text":"https://wiacode.com","shape":"star"}
curl -X POST https://wiacode.com/api/v1/code \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"heart"}' \
-o wiacode.png
It antwurd is image/png. Foegje ?format=json ta om base64 en metadata as JSON te krijen.
curl -X POST 'https://wiacode.com/api/v1/code?format=json' \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"square"}'
Jo kinne it streekrjocht oanroppe fanút in webapp op elke oarsprong. It is in iepenbiere API dy't gjin cookies brûkt, dus CORS stiet iepen.
const r = await fetch('https://wiacode.com/api/v1/code?format=json', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: 'https://wiacode.com', shape: 'heart' })
});
const { image, meta } = await r.json();
document.querySelector('img').src = image; // data:image/png;base64,...
curl https://wiacode.com/api/v1/shapes
| namme | ferplicht | beskriuwing |
|---|---|---|
| text | ✓ | De tekst of URL om te kodearjen. Lange URL's kinne better earst ynkoarte wurde. |
| type | — | wifi · card · event. Jûn ynstee fan text — de tsjinner bout de standertstring op út de fjilden. Sjoch de seksje Typen hjirboppe. |
| shape | — | Silûet (standert heart). Sjoch de tabel hjirûnder. |
| cellPx | — | Piksels per sel (3–20, standert 8). Grutter betsjut in gruttere ôfbylding. |
| label | — | In label dat bewarre bliuwt yn de metadata. It wurdt net op de ôfbylding tekene. |
Elk silûet hâldt in oare hoemannichte (UTF-8 bytes). Brûk square foar lange ynhâld; elke foarm wurket foar koarte keppelingen.
| shape | bytes | shape | bytes |
|---|---|---|---|
| square | 1450 | rose | 586 |
| round | 1093 | clover | 521 |
| hex | 861 | star | 386 |
| heart | 854 | boomerang | 386 |
Ferbyn it mei in AI-kliïnt lykas Claude en it makket koaden streekrjocht yn it petear. It einpunt is https://mcp.wiacode.com/mcp en der is gjin kaai nedich.
{
"mcpServers": {
"wiacode": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
}
}
}
As jo kliïnt Streamable HTTP direkt stipet, jou it dan gewoan de URL.
| ark | funksje |
|---|---|
| get_wia_code_info | Leit út wat in WIA Code is, hoe't it ferskilt fan in QR-koade, en de kapasiteit fan elk silûet. Dit earst oanroppe fermindert mislearrings. |
| generate_wia_code | Set tekst om yn in koade-ôfbylding. As it de kapasiteit oerskriuwt, seit it hokker silûetten passe soene. |
| generate_wia_code_wifi | Wi-Fi-ynloggegevens — scanne slút it apparaat oan op it netwurk sûnder dat it wachtwurd ynfierd wurde moat. |
| generate_wia_code_card | In kontaktpersoan as standert vCard — scanne biedt oan dizze op te slaan yn de kontakten fan de telefoan. |
| generate_wia_code_event | In evenemint as standert iCalendar — scanne foeget it ta oan de kalinder. |
503. Belje gewoan strak wer.429 mei hoefolle sekonden te wachtsjen.As jo mear nedich hawwe — foar bulkútjefte, gearwurking of kommersjeel gebrûk, stjoer ús in e-mail. Wy jouwe jo in kaai dy't de limyt ferheget. wiasoom@smilestory.ai
A single WIA Code holds up to 1,450 bytes. When the payload is larger — a document, a book chapter, an audio clip — Stream splits it across many frames. A screen plays them in sequence, a camera collects them, and the scanner reassembles the file. No internet, no server. It already ships in the generator.
What matters here is not speed — it is whether the transfer finishes at all. Stream needs every frame. A frame that fails to read must wait for the next pass, and may fail again. So a per-frame reading gap does not average out; it multiplies into the completion time. In our degradation sweep at matched physical size (1064 vs 1088 px, n=17, QR read with ZBar), a high-version QR frame read 52.9% of the time while a WIA frame read 17 of 17. Feeding those rates into a cyclic-broadcast model, a 286-frame QR transfer needs about 8 passes to complete while a 155-frame WIA transfer needs about one.
Read this honestly: n = 17 is a small sample. By the rule of three, "17 of 17" should be read as ≥ 82% with 95% confidence, and the 52.9% figure carries a 29–77% interval. Taking the least favourable end of both, the completion-time gap is still about 2.4×. Screen-to-camera capture on real handsets and printed output have not been measured yet. And QR wins on blur resistance at equal frame size — we only pull ahead once capacity is matched.
WIA Code is in produkt fan SmileStory Co., Ltd. De booster-QR is in gids dy't ek minsken sûnder de spesjale scanner helpt it te lêzen.