EvoWeights pre-trained models
Arena: kyr0.github.io/evoweights - Code: github.com/kyr0/evoweights
These are the models shipped in the EvoWeights browser arena. All of them are NVIDIA Kumo-Tabular Small (27.46 M parameters), an in-context tabular classifier. The classifier picks one of three actions (LEFT, RIGHT, FIRE) from game observations and 96 labelled demonstration rows. 119 signed sensor weights turn live game sensors into pushes on the three scores and add movement (see the paper, section 03).
Layout
| Path | Content |
|---|---|
base/fp32/ |
Unchanged FP32 checkpoint, gzip byte-plane packs plus original-manifest.json (≈ 79 MB) |
base/4bit/ |
4-bit quantized base with the 96-row support cache, packs plus manifest.json (≈ 20 MB) |
revisions/*.json |
One file per model: the 4-bit code changes (ops) and sensor weights (controller) applied to a base |
LICENSES/ |
OpenMDW-1.1 for the Kumo data, Apache-2.0 and BSD-3-Clause notices for the runtime |
SHA256SUMS |
Checksums of every file in this folder |
A model is its base plus its revision file. The id in each revision file is the SHA-256 revision ID the arena derives from {precision, parentId, ops, controller}, so a changed file gets a different ID.
Models
Reference total: tics survived, summed over the arena's 48 fixed reference games (10,500-tic cap each), measured in Node.js. Factor and standard error are relative to Original FP32.
| Model | Revision file | Parent | How it was made | Reference total | vs FP32 |
|---|---|---|---|---|---|
| Base Model FP32 | original-fp32.json |
– | No training | 22,564 | 1.00× |
| Astra 6 Weight-Space Programming | astra6-weight-space-programming.json |
FP32 → 4-bit | OpenAI Astra 6 set 256 FIRE-row codes and the sensor weights directly | 65,150 | 2.89× ± 0.25 |
| 4-bit base · no FIRE edit | base-4bit-no-fire-edit.json |
FP32 → 4-bit | Training root: Astra 6 sensor weights without the FIRE edit | 64,856 | 2.87× ± 0.26 |
| 4-bit base · neutral sensor weights | base-4bit-neutral-sensor weights.json |
FP32 → 4-bit | Training root: every sensor weight 0 | 22,943 | 1.02× ± 0.09 |
| EvoWeights 4-bit · R1 | evoweights-r1.json |
no FIRE edit | EvoWeights protocol 7 in Node.js | 98,447 | 4.36× ± 0.38 |
| Opus 5.5 Weight-Space Programming | opus-weight-space-programming.json |
neutral sensor weights | Claude Opus 5.5 set the sensor weights without access to earlier values | 88,570 | 3.93× ± 0.97 |
| EvoWeights Survivor · R3 | evoweights-survivor.json |
neutral sensor weights | EvoWeights in the browser on CPU, survival metric | 295,358 | 13.09× ± 2.21 |
| EvoWeights Terminator · R4 · Kills | evoweights-terminator.json |
neutral sensor weights | EvoWeights in the browser on CPU, kills metric | 82,401 | 3.65× ± 0.36 |
The reference total measures survival only. The Terminator was selected for kills, so its total understates what it was trained for. The Survivor's total measured in Chrome was 280,967 (+1,145 %), 5.1 % below the Node.js value; the cause is UNKNOWN (experiments/v11/edno-neutral-browser/RESULTS.md). Held-out results, paired t-tests and losses are in the paper.
Use
Open the arena, choose a model card and press Play, or run the Node.js tools of the repository:
| Command | What it does |
|---|---|
make setup |
bun install --frozen-lockfile, the Playwright Chromium and the model packs (make models) |
make models |
downloads the model packs from Hugging Face into .cache/model/ and checks each against its manifest; makes no request when verified copies exist |
make build |
compiles src/ and copies public/ into docs/, the folder GitHub Pages deploys |
make start / make stop |
builds, then serves docs/ on http://localhost:8080/ with the cross-origin isolation headers (logs in var/log/) |
make test |
unit and integration tests against the shipped WASM, the local pack copy and real workers (bun test) |
make coverage |
the same with line coverage |
make lint |
tsc for src/ and for tests and scripts, oxlint, prettier --check |
make e2e |
builds and drives every page section in Chromium; the report goes to output/ |
make verify |
lint, test, coverage and e2e |
Rebuilding the WASM binaries from source is described in source/README.md.
Sources and credit
- Base model: nvidia/Kumo-Tabular, small classifier v1.0.0. The 4-bit parameters and derived key/value tensors are distributed under OpenMDW-1.1.
- EvoWeights method, arena and paper: Aron Homberg.
- Agent roles: OpenAI Astra 6 wrote the scripted demonstrator, the FIRE-row edit and the shipped sensor weights. Claude Fable 5.1 created the 4-bit training roots. Claude Opus 5.5 wrote the EvoWeights implementation and made the independent edit.
Model tree for kyr0/evoweights-evolutionary-weight-space-fine-tuning
Base model
nvidia/Kumo-Tabular