Skip to content

Watchable AA speed rankings, A/B compare, fullscreen zh/en demo - #2

Merged
jammyfu merged 3 commits into
mainfrom
cursor/watchable-speed-rankings-4843
Sep 13, 2026
Merged

jammyfu merged 3 commits into
mainfrom
cursor/watchable-speed-rankings-4843

Conversation

@jammyfu

@jammyfu jammyfu commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Ground Token Speed Simulator in a curated Artificial Analysis median output-speed snapshot (fetched 2026-09-13) so the ranking is the demo.

What changed

  • Typed snapshot in src/data/modelSpeedRankings.ts: top AA speed callouts (Celeris-1 1411.9 t/s, Mercury 2 734, Gemini 3.5 Flash-Lite 372.4, HyperNova 60B 2605 high 361) plus well-known mid/slow frontier models for contrast — 20 rows, not the full catalog.
  • Click a ranking row to set Play to that median TPS. Optional Compare races two models side by side from one Play button, with a relative lead bar.
  • Viewport-filling 100dvh grid: stream stage is the hero; ranking/controls sit beside it on desktop and as horizontal chips + Play under it at ~390px.
  • Single i18n table (src/i18n/translations.ts), persisted zh/en switcher, html lang updates.
  • MAX_TPS raised to 2000 for AA headroom. Speeds are labeled as AA median output tokens/s — approximate for feel, not a live API benchmark.

Verify

  • python3 tools/verify.py (lint + build) passed.
  • Desktop: ranking click sets TPS; Celeris-1 vs Claude Opus 5 race is visibly uneven; zh/en switch updates copy + document.documentElement.lang + localStorage.
  • Mobile 390×844: ranking chips scroll, Play stays on-screen, compare panes work, no page-level horizontal overflow.

Note

Numbers are a static public-page snapshot. No AA API key required.

Desktop fullscreen rankings
Desktop Celeris vs Opus race
Mobile ranking chips
Mobile compare panes
aa_ranking_compare_race_language_switch_demo.mp4

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 3 commits September 13, 2026 09:35
Ground the demo in a curated Artificial Analysis median output-speed
snapshot, let ranking rows set TPS, add optional side-by-side race,
fill the viewport adaptively, and consolidate persisted zh/en copy.

Co-authored-by: PaintingCoder <jammyfu@users.noreply.github.com>
Constrain the 390px shell so the AA chip row and Play stay in view,
and show a relative lead bar on compare panes after both streams fill.

Co-authored-by: PaintingCoder <jammyfu@users.noreply.github.com>
Co-authored-by: PaintingCoder <jammyfu@users.noreply.github.com>
@jammyfu
jammyfu marked this pull request as ready for review September 13, 2026 10:10
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-13T10:14:16.910453Z ebd97d4 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ebd97d46f2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/App.tsx
)}
</section>

<aside className="w-full min-h-0 min-w-0 max-h-[46dvh] lg:max-h-none flex flex-col overflow-hidden border-t lg:border-t-0 lg:border-l border-white/10 bg-[#0a0a0a]">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep Play reachable on short responsive viewports

At widths below lg, the sidebar is capped at 46dvh and clips overflow, but at sm widths it also reveals the full TPS, Markdown, source-toggle, and action-control stack. On short tablet or landscape viewports such as 800×600, those non-shrinking children exceed the cap and the Play/Reset controls at the bottom are clipped with no page or sidebar scrolling available. Make the sidebar internally scrollable or avoid the height cap for this breakpoint.

Useful? React with 👍 / 👎.

Comment on lines +96 to +98
<span className="w-5 shrink-0 text-[10px] font-mono text-zinc-600 tabular-nums">
{index + 1}
</span>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not present curated positions as global ranks

This renders index + 1 as a rank even though MODEL_SPEED_RANKINGS explicitly contains only a curated 20-row subset of the roughly 300-row source. Consequently, positions after the first few rows claim Artificial Analysis ranks that the data does not establish, undermining the core ranking comparison. Either omit the ordinal, label it as a curated-list position, or store the actual source rank.

Useful? React with 👍 / 👎.

Comment thread src/App.tsx
Comment on lines +180 to +183
label={selected ? selected.displayName : undefined}
creator={selected?.creator}
targetTps={selected?.medianTps ?? tps}
liveSpeed={streamA.currentSpeed}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the displayed model speed synchronized with TPS

When a desktop user changes the numeric TPS input or slider after selecting a ranking row, stream A correctly switches to the custom tps, but this header continues displaying the selected model's original AA median. Since a model is always selected and the controls are not actually locked, the simulator can therefore claim it is running, for example, Celeris-1 at 1,411.9 t/s while generating at an arbitrary user-selected rate. Clear the model selection on manual edits, lock the controls, or display the effective tps here.

Useful? React with 👍 / 👎.

@jammyfu
jammyfu merged commit b0ec547 into main Sep 13, 2026
@jammyfu
jammyfu deleted the cursor/watchable-speed-rankings-4843 branch September 13, 2026 10:20
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.

2 participants