Data, woven into light.
Tjokode is a circular optical field built from continuous local waveforms rather than square barcode modules. This release makes generation fast, scans serially instead of overloading the camera client, and renders each recovered content type appropriately.
Generate
The content editor now changes with the selected payload type.
Optical preview
A static result appears immediately. Slideshow mode returns PNG frames and a full-screen HTML player; MP4 is optional.
Image recognition
Upload the original PNG, a photo, or an unordered set of slideshow captures.
Live camera client
One frame is processed at a time, preventing the overlapping decode requests that previously stalled scanning.
Static maximum
Implemented Ultra payload before application metadata.
Phone slideshow
Nominal optical payload at two images per second, before temporal repair.
V1 address space
A protocol ceiling, not a practical transfer recommendation.
Implemented profiles
| Profile | Canvas | Petals | Pilots | Code rate | Static bytes | Bytes/s @ 0.5 s | Petal px |
|---|
Can one code contain a megabyte?
Not while remaining an easy, single-shot phone scan. A one-megabyte payload is 8,388,608 information bits before locators, pilots, metadata, and error correction. Normal camera blur, demosaicing, perspective, and motion mean many sensor pixels are needed for each independent optical value.
Loading the camera-channel estimate…
| Projected code/camera area | Discounted engineering bound | Interpretation |
|---|
Architecture
The payload is not encoded as black-and-white modules. Each annular petal contains five signed spatial projections plus a two-bit Gray-mapped chroma angle. Distributed known petals calibrate the captured channel.
Minimal Python API
from tjokode import generate, recognize
from tjokode.api import save_static
image = generate(
"Hello from Tjokode",
kind="text",
profile="phone-robust",
shape="hex",
)
save_static(image, "hello.png")
result = recognize("hello.png")
print(result.packet.text())