int_synth + int_entropy are pure i64 (no ort, no float), so the SAME Rust that decodes natively compiles to wasm32 and runs in the browser with no ML runtime at all — and the bytes are identical to native on every machine. This is the integer-entropy contract's payoff made visible: a learned-codec reconstruction whose hash is portable. - int_synth: factor the decode into `decode_from_spec(payload, spec_bytes)` (no std::fs); `decode(payload, path)` now reads the spec and delegates. WASM/no-FS sinks call the bytes entry point with host-supplied weights. Behavior- identical (4 int_synth tests green). - wai-web: add the `neural_int` feature + a `neural_int` wasm-bindgen module: decodeIntSynth(payload, specJson) -> RGB, the int_entropy primitives (fixedScaleEdges / quantizeScale / detBuildIndex), and blake3Hex for the in-page receipt check. Compiles to wasm32 (web + nodejs targets). - demo: int_synth.html/.js — decode a vector to a canvas and verify its BLAKE3 against the frozen native hash in-page. verify_int_synth.sh + verify_int_synth_wasm.mjs — reproducible CLI proof. Verified: all four conformance vectors (incl. the real trained 128×128 photo model, 21.6 dB) decode in wasm32 byte-identical to the frozen NATIVE corpus hashes. Deterministic learned-codec decode in-browser, zero JS ML runtime. Co-Authored-By: Claude Opus 4.8 <[email protected]>
37 lines
838 B
JSON
37 lines
838 B
JSON
{
|
|
"gradient": {
|
|
"s_log2": 3,
|
|
"in_channels": 4,
|
|
"layers": 2,
|
|
"width": 38,
|
|
"height": 38,
|
|
"rgb_hash": "1282839b699ad3e79fc810a92ef4220fec7a57a573bb6c844709af4c1fb3f638"
|
|
},
|
|
"bloom": {
|
|
"s_log2": 2,
|
|
"in_channels": 8,
|
|
"layers": 1,
|
|
"width": 18,
|
|
"height": 18,
|
|
"rgb_hash": "29d6d2d8955aa345ff70d12a9bbcafeb0d57b1bf4100c73037855998702e76a6"
|
|
},
|
|
"facade": {
|
|
"s_log2": 4,
|
|
"in_channels": 3,
|
|
"layers": 3,
|
|
"width": 72,
|
|
"height": 72,
|
|
"rgb_hash": "46cb2718a48e273a33d6ec3e561c3e1edfb69dfea1e80c3d670f91d4d5b25562"
|
|
},
|
|
"photo": {
|
|
"trained": true,
|
|
"width": 128,
|
|
"height": 128,
|
|
"layers": 4,
|
|
"rgb_hash": "1677d7112db6cadd70b0eeba8df263f9605cf3875809ce4b26e9c914f62fb582",
|
|
"psnr_db": 21.6,
|
|
"bpp": 3.006,
|
|
"in_channels": 96,
|
|
"s_log2": 3
|
|
}
|
|
}
|