bLighT Studio Gate

Drop a trait-layer PNG. The verdict comes from crates/inscription-gate compiled to WASM — the same gate the LaunchPad will run at deploy — not from a JavaScript re-implementation. Every finding carries its fix; the chain checks none of this, and ownership is renounced after deploy, so this page is where a mistake is still catchable.
drop a PNG here, or click to choose square image, ideally grid×grid or an integer multiple of it

Gate configuration

675 rects is measured by binary search against the 2^24 gas cap (25,226 gas/rect). Orientation decides which direction a 1-cell run shears into a zigzag — flat-top punishes horizontal runs, pointy-top vertical ones.

Verdict

waiting for a layer

The layer, as the gate sees it

Cell grid. Transparent cells stay dark. Off-palette cells are tinted; hairline runs outlined red; dither windows boxed orange; the required margin ring is hatched — art under the hatch is inside the zone the device clips.
Source PNG at 1:1-ish. Shown as decoded, before cell mapping, so a bad export (soft edges, wrong size) is visible next to what the gate measured.

The blob — the layer as bytes (v2 codec, golden-tested)

Hex lattice render. Exactly the geometry the on-chain SVG walks — flat-top or pointy-top per the gate config. This is what the cells become; the square preview above is what they came from.
drop a layer that passes the gate, or drop a .hex blob to preview it
codec goldens: checking…
v2 wire: 0x02 version, palette count, first-seen RGB triples, 5-byte rects (col,row,w,h,idx) — byte-identical to the Rust encoder (bnri-cosmic) and the Solidity decoder (HexLib, 37/37 forge). Loading a .hex blob previews it; the first byte dispatches v2/v1 exactly like BnriArt.setLayerBlob. A blob preview is NOT a gate verdict.
Decode-side checks live here, not in the WASM — they are properties of the PNG before cells exist: soft alpha (a soft matte destroys hard-edged pixel art per spec §4), non-square exports, and size reduction. They are labelled decode in the findings table so nothing pretends to be a gate verdict that isn't one.
Corrections are part of the exhibit. This gate exists because things were measured, not guessed — receipts in docs/SPEC-INSCRIPTION-COMPAT-1.md §4 and docs/receipts/panelfit.js. AGPL-3.0-only, with the crate it runs.
⌂ hub