Files
pxpipe/docs/MODEL_RENDER_PROFILES.md
T

4.7 KiB
Raw Blame History

Model render profiles

The OpenAI-shaped endpoints are a wire protocol, not a rendering profile. Claude, GPT, and Grok requests can all arrive on /v1/responses; pxpipe selects geometry, glyph atlas, style, and vision billing from the exact model id.

Built-in profiles

model rule default enabled font / cell columns max height style evidence
claude-* / *anthropic* Fable only Spleen + Unifont, 5×8 312 728 px grayscale AA Anthropic 1568-edge / ~1.15 MP no-resize measurements
gpt-5.6-sol no; opt-in JetBrains Mono 10 + Unifont fallback, 6×11 126 1932 px grayscale AA operational geometry; raw recall pilot failed 0/4 exact and is being retuned
grok-* no Spleen + Unifont, effective 9×12 84 1932 px grayscale AA + factsheet grok-4.5 density climb: 4/4 exact, 0 confab, gist/guard pass, ~30% fixture savings
other GPT/o-series no unless configured Spleen + Unifont, 5×8 152 1932 px grayscale AA conservative fallback / existing OpenAI geometry

gpt-5.6-sol is intentionally exact and opt-in. The events log also contains gpt-5.6-terra; Terra does not inherit Sol's allowlist or visual profile.

The GPT 5.6 Sol font choice is a separate local raster profile. It preserves the provider-safe strip width and has a larger cell than the shared 5×8 fallback, but the first paid raw-image pilot did not validate it.

Sol evidence boundary (2026-07-09)

Two production rows for the exact gpt-5.6-sol id reported 39,985 effective input/cache-read tokens, 14,152 image tokens, a 52,072-token baseline, 18 images, and approximately 73% estimated savings. A comparison run with the old shared profile reported 8,568 image tokens against the same baseline. These numbers establish that real Sol traffic reaches the Responses path and that the new geometry costs more while retaining positive estimated savings. They do not establish recall, task quality, or causality.

The separate paid raw-image pilot supplies the model-reading evidence:

profile exact confabulations gist guard result
JetBrains 6×11 / 126 cols 0/4 4 pass pass fail
Spleen 5×8 / 152 cols 0/4 4 fail pass fail

The test is one scored synthetic fixture per profile. It proves that both calls failed the stated acceptance bar, not a broad Sol-vs-Fable ranking. Production also sends a verbatim fact-sheet beside images, so covered exact identifiers have a text fallback even though raw image recall failed. A locally rendered 9×12 / 84-column Sol-only retune remains untested until its final paid call is approved.

Receipt: eval/sol-profile/RESULTS.md.

Sol default-scope decision

Sol is off by default under the same safety rule used for GPT 5.5 and Grok: a model that silently invents exact values from imaged context is not a safe transparent default. The profile code stays available so operators can opt in explicitly and so the 9×12 candidate can be evaluated without changing any other model:

PXPIPE_MODELS='claude-fable-5,gpt-5.6-sol'

Re-enabling Sol by default requires a paid profile arm to clear 4/4 exact, zero confabulations, gist, and guard while retaining positive savings. Ideally the pass should replicate on both deterministic fixtures; the current n=1 failures are enough to reject these profiles, not enough to estimate a general error rate.

Why Grok is opt-in

Grok 4.5 at shared 5×8 density returned 0/4 exact identifiers and silently invented all four answers. Effective 9×12 returned 4/4 with zero confabulation, and a separate 5×8 + factsheet arm also returned 4/4 for the extractor shapes in that fixture. Both are n=1 synthetic results. They justify a safer opt-in profile, not silent default rewriting of every Grok request.

Receipts:

Overrides

PXPIPE_GPT_PROFILES is a JSON map from model-id prefix to a partial profile. The longest prefix wins. Supported render fields are font, cellWBonus, cellHBonus, aa, grid, gridCols, colorCycle, markerScale, and markerRed; geometry fields are stripCols and maxHeightPx.

PXPIPE_GPT_PROFILES='{
  "gpt-5.6-sol": {
    "stripCols": 120,
    "style": { "grid": true, "gridCols": 4 }
  }
}'

The profitability gate derives pixel width, row capacity, pagination, and image cost from the same resolved profile used by slab and history rendering. A style override therefore cannot silently leave the gate on 5×8 geometry.