HyperNEAT Γ JAX compressor vs R8
Lossless packer for an Android-like resource keep-graph. A HyperNEAT CPPN in JAX selects the keep-set and orders instances; the HN5 store (IQLP-mapped template / string-pool / raw sections) is the payload. Genome is 153 float16 params, published beside the store, not stuffed into the APK.
Publish gate is ship_tier 5. A first-feasible R8 beat is tier 1 and is not shipped.
What is measured
R8 optimized resource shrinking drops unreferenced blobs; the live set stored as
one ZIP/Deflate blob is identity zlib9. Identity lzma6 of that same concat
is 568 B. A position-only CPPN byte permute of the concat also measures 568 B
β that is a codec switch, not a packer (ship_tier = 1).
HN5 maps IQLP primitives onto the keep-graph (equality β dictionary, digit-run skeleton β shared template, C-string pool β uniq+ids). Measured on the bundled fixture (JAX 0.4.38, lossless round-trip):
| Number | Bytes | Ship |
|---|---|---|
| Naive (no shrink) zlib9 | 50031 | β |
| R8 + broad drawable keep zlib9 | 50031 | β |
| R8 optimized shrink + zlib9 | 650 | β |
| Identity live concat lzma6 | 568 | tier 1 (not shipped) |
| HyperNEAT keep + HN5 store | 234 | tier 5 (β58.8% vs identity lzma) |
True-live SHA-256 is preserved. evolve.py --min-tier 5 exits 3 if the run is
below publish caliber.
Run
Host:
JAX_PLATFORMS=cpu python3 -m unittest discover -s tests -v
JAX_PLATFORMS=cpu python3 src/evolve.py --out artifacts --min-tier 5
Podman:
./scripts/run-podman.sh
Publish
Only after benchmark.json shows "ship_tier": 5 and "publishable": true.
Canonical model: Kovach-Enterprises/hyperneat-r8-compress
Also: Moltboss/hyperneat-r8-compress