p8v2 — E and P, rendered

A 3-D rendering of the event spaces and patterns of the p8v2 P-program, run over a fixed 128-byte prefix of enwik9, with k = 8 and N = 128. Rendered from p8v2-viz-spec.md by p8v2-viz.py.

Open the viewer → Ten stills with captions, three animations, and stats.txt — one self-contained file with every asset inlined. About 22 MB, so give it a moment; it needs no server and no network once saved.
PROVISIONAL. Five things in these figures are scaffolding, not design: strengths, ω's keep/prune score, the composite prediction, trace membership, and settling. f and ω are not specified in the source material, so the program supplies placeholders — marked dashed and in warning colour on every frame, and listed on every figure. Nothing here should be read as a design decision.

What it shows

Individual assets

stats.txtevery figure the spec pins down, machine-checkable
p8v2-scan.gifPhase A scan + Phase B held (6.6 MB)
p8v2-settle.gifPhase C settling (1.0 MB)
p8v2-orbit.gifPhase E orbit (3.9 MB)
still-01-first-window.pngt = 8, the first full k = 8 window
still-02-http.pngt = 22, the http: example being learned
still-03-scan-end.pngt = 127, the end of the scan
still-04-model.pngPhase B, camera iso
still-05-settle-00.pngPhase C iteration 0
still-06-settle-04.pngPhase C iteration 4
still-07-settle-23.pngPhase C iteration 23
still-08-levels.pngPhase B, camera levels
still-09-top.pngPhase B, camera top
still-10-traces.pngPhase D, camera chain
light/the same ten stills on the light surface
frames/128 scan + 24 settle + 72 orbit frames

Reproducing

The renderer takes no arguments and writes everything to ./out/. It needs the standard library, numpy and matplotlib, and nothing else — no network, no corpus file, no configuration. Two runs produce an identical stats.txt.

The 128-byte fixture was verified byte-for-byte against a real enwik9 before these figures were rendered, so the spec's caveat that its second half was reconstructed rather than copied is discharged.