CHROMATIC HABITAT — PORTABLE PUBLIC RECORD

Extract full-record.zip into a fresh folder. The record has tools/, common/,
data/, runs/, analysis/, protocol/, artworks/, encounters/ and publication/.
This portable guide does not require the author's D: drive or previous job134.
REPRODUCE.txt additionally documents commands used in the original workspace.

INTERACTIVE APP
Open publication/index.html with sibling files intact. The complete model runs
locally in JavaScript. No Python, Node, server, API key or account is required.

FIXED-WEIGHT INFERENCE
Python3 with NumPy is sufficient; PyTorch is optional for this path:

  python tools/offline_reply.py artworks/COLOUR-ROOM-S0/COLOUR-ROOM-S0.json --out fresh-response.json

Use a new output filename. The result contains the learned field, raw predictions,
repairs, input-address map and exact-source parent hash. It uses retained v2 weights.

EXACT IMAGE TRANSPORT
Node18+ and the bundled common/ directory are sufficient:

  node common/field.cjs decode artworks/COLOUR-ROOM-V2-T2/COLOUR-ROOM-V2-T2.png --layout artworks/COLOUR-ROOM-V2-T2/COLOUR-ROOM-V2-T2.layout.json --out fresh-decoding
  node common/field.cjs check fresh-decoding/field.json
  python tools/offline_reply.py fresh-decoding/field.json --out fresh-image-response.json

The recovered normalized field may have different JSON whitespace from the
original raw source. A new reply's parent hashes the actual bytes you supply.
The receiver checks embedded CVP2/USL1 and exact5x5 concept cores; it does not
authenticate all decorative pixels, authorship, interpretation or approval.

VERIFY JAVASCRIPT NUMERICS / EDITOR LOGIC

  node tools/js_parity_check.cjs setup/trained-parity-v2 runs/full-v2/weights.js fresh-js-parity.json
  node tools/static_ui_check.cjs

The editor check writes a new report under publication/. It uses an inert DOM,
not a physical browser. Keep the original ZIP as an immutable record if rerunning.

RETRAIN / RESCORE
Requires PyTorch and NumPy; recorded training used PyTorch2.7.1+cu126 on CUDA12.6.
Figures require Matplotlib; artwork rendering requires Pillow. These third-party
packages are not bundled. Training reads the retained numeric NPZ datasets, not
the dictionary's English text. The complete raw training/development/test datasets
are included; regeneration is not required.

Create a fresh reproduction directory, then copy tools/,common/,data/,protocol/
into it. Leave its runs/ and analysis/ directories empty (create them as needed).
Run these from that fresh directory:

  python tools/train_field.py --root . --mode full --output runs/full
  python tools/train_field.py --root . --mode colours-only --output runs/colours-only
  python tools/train_field_v2.py --root . --mode full --output runs/full-v2
  python tools/train_field_v2.py --root . --mode colours-only --output runs/colours-only-v2
  python tools/evaluate_field.py --root . --run-test --full-run full-v2 --control-run colours-only-v2 --device cpu

Config fixes CUDA training. To train on CPU, change only the copied config's
device to cpu and record the environment change. Do not overwrite original runs.
The benchmark is now public; a genuinely new study must reserve new test data.

The original make_exercises.py generator is frozen and retains its author's
sibling134 source paths. For optional regeneration, copy data/palette.json into
a sibling134/data/ and common/topology.json into sibling134/common/ in a separate
scratch workspace. Never change an existing historical134. Prefer the saved
hashed datasets for reproducing this record.

SCOPE / ATTRIBUTION
The model learns an authored numerical task, with explicit geometry/count priors
and a grammar adapter. It does not read concept definitions, see PNG pixels,
establish qualia or guarantee correct relation editing. See publication/method.html.
Original runtime/source/license notices remain in common/runtime/. Public Carrier
author credits remain in the pinned dictionary. No private conversation is included.

FILES.json lists relative paths, byte counts and SHA256 for all archived files
except that inventory itself. Zip CRC verification checks archive integrity, not
independent authorship or truth.
