Add a color mosaic style to the screen channel #2
Loading…
Reference in a new issue
No description provided.
Delete branch "explore-mosaic"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The maintainer asked for the "mosaic that slowly changes hue" proposed
at the start of the visual channel work, next to the Truchet tiles.
The mosaic draws the same frames differently: rounded tesserae on a
dark background, each in one of four hues of equal luminance (OKLCH
hues 60, 150, 240, 330, chroma 0.12), carrying the two bits of the
Truchet color mode (packets 2n and 2n + 1), Gray-coded around the hue
circle. A tessera only fades from one hue to another, so no area
changes brightness; no_flash now covers the mosaic too.
The marker cores show the four hues, so the decoder compares each
tessera with the hues as this camera sees them (chroma distances,
max-log soft bits): white balance errors cancel out. The receiver
tries the mosaic when the Truchet orientations do not decode, and
first after a mosaic picture; no setting is needed. In simulation it
runs at the same 1 KB/s as Truchet with colors and survives 2.5 px of
blur, where the Truchet markers are lost.
Protocol: an addition to screen protocol version 1 (documented in
AGENTS.md). Truchet frames are unchanged; pages built before this
commit cannot read the mosaic. The audio protocol is unchanged.
CLI:
airgap truchet render|svg|sim --style mosaic. Web: a Stylechoice on the sending page. Tests: unit (palette, Gray code, decoding,
no flash), camera simulation with a poor color camera and blur, wasm
loopback, and the JS renderer through the fake canvas in Node.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.