Skip to content

feat(site): lead the benchmarks page with a scoreboard and drawn ratios - #727

Open
Exoridus wants to merge 5 commits into
nextfrom
site/benchmarks-scoreboard
Open

feat(site): lead the benchmarks page with a scoreboard and drawn ratios#727
Exoridus wants to merge 5 commits into
nextfrom
site/benchmarks-scoreboard

Conversation

@Exoridus

@Exoridus Exoridus commented Sep 9, 2026

Copy link
Copy Markdown
Owner

The page opened with a paragraph of generated prose and then repeated every
comparison as a wide table whose mechanism column wrapped over several lines,
so the numbers were the hardest thing on it to find. It ran to about 10500 px
at 1440 px wide, and the practices it is published under sat above the results.

What changed

  • A scoreboard leads, one line per arm: a rendering backend against one
    opponent, or one physics arm, with that pair's outcomes as a strip and as
    counts. The split is per arm and never per backend - a backend line pooled two
    different opponents into one strip and showed a mix that belonged to neither.
    Nothing is summed across lines and no line is ranked against another.
  • One table per domain, columns are the pairs and rows are archetypes, so a
    single archetype reads across both backends and every opponent on one line.
    ExoJS gets a column of its own per backend instead of being repeated inside
    every cell.
  • The ratio is drawn: a bar on a log axis with the published factor beside
    it. The axis is scaled to the widest ratio in that table, up to two decades;
    a bar past that is drawn cut and keeps its exact factor.
  • Nothing is behind a toggle. The medians, the p95 of the same window and
    the range the pooled runs observed sit under every bar, on lines that never
    wrap.
  • Methodology, reproduction and fairness move below the tables, and the
    structural evidence, the omitted rows, the WebGL1 arms and the caveats become
    collapsed asides under them.

A comparison whose runs disagreed no longer prints a verdict placeholder and a
sentence about what each run concluded. It keeps its numbers and shows the ratio
band those runs spanned, drawn without a side. That band is the one figure the
page derives rather than reads, computed from the published extremes of both
arms, so a cell the measurement could not settle still says what was measured.
It is never a verdict: it has no side, and a band straddling 1.00 is the
statement that the runs could not separate the pair.

Unchanged: every number and verdict still comes from the signed profile, nothing
is aggregated into a score or an overall winner, losses are published like wins,
rows the harness left out are listed with their reasons, and the page still
renders with no profile at all. The harness and the profile JSONs are untouched.

Layout

DocsLayout gains a wide variant: the docs shell caps itself at 1260 px for
prose, which a table page has no use for. The benchmark hues become their own
tokens - the shared semantic palette is tuned for the dark surface and washes
out under a 6 px bar on the light one.

BenchMeasurement.astro is gone; the cell composes both arms now.

Validation

site/pnpm check-ts, pnpm gates typecheck, pnpm gates lint, pnpm gates sync, pnpm gates site, git diff --check, and the browser lane the pre-push
hook selected (site:build + example smoke, 24 passed). Checked in the dev
server at 1600 px and 760 px in both themes: no body overflow, no truncated
cell, page height about 3870 px.

https://claude.ai/code/session_01Y3YY9obdzhWK7nBPby2jK5

The page opened with a paragraph of generated prose and then repeated every
comparison as a wide table whose mechanism column wrapped over several lines,
so the numbers were the hardest thing on it to find. It ran to about 10500 px
at 1440 px wide, and the practices it is published under sat above the results.

Rearrange it around the figures. A scoreboard leads with one line per arm - a
rendering backend against one opponent, or one physics arm - showing how that
pair's comparisons came out as a strip and as counts; nothing is summed across
lines, because the arms answer different questions. Under it, one table per
domain whose columns are the pairs and whose rows are archetypes, so a single
archetype reads across both backends and every opponent on one line. The ratio
is drawn as a bar on a log axis with the published factor beside it, and the
medians, the p95 of the same window and the range the pooled runs observed sit
under it on lines that never wrap. Methodology, reproduction and fairness move
below the tables.

A comparison whose runs disagreed no longer prints a verdict placeholder and a
sentence about what each run concluded. It keeps its numbers and shows the
ratio band those runs spanned, drawn without a side - the one figure the page
derives rather than reads, from the published extremes of both arms, so a cell
the measurement could not settle still says what was measured.

The docs shell caps its width for prose, which a table page has no use for, so
DocsLayout gains a wide variant. The benchmark hues become their own tokens:
the shared semantic palette is tuned for the dark surface and washes out under
a 6 px bar on the light one.

Claude-Session: https://claude.ai/code/session_01Y3YY9obdzhWK7nBPby2jK5
@Exoridus
Exoridus enabled auto-merge (squash) September 9, 2026 01:29
@codecov

codecov Bot commented Sep 9, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 137 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
site-server-esm 14.3MB 137 bytes (0.0%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: site-server-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
_astro/ExoHeader.B8nrBBs4.js (New) 28.96kB 28.96kB 100.0% 🚀
_astro/ExoHeader.DESjr-0D.js (Deleted) -28.82kB 0 bytes -100.0% 🗑️

@Exoridus
Exoridus disabled auto-merge September 9, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant