From e032bfc4830c61b286b0e42dca7c18c0f99ee5b2 Mon Sep 17 00:00:00 2001 From: Bingran You Date: Mon, 13 Jul 2026 15:14:05 -0700 Subject: [PATCH] feat: revise article scoring and add HTML leaderboards --- README.md | 23 +- docs/article-suite-scoring.md | 100 ++ docs/learning-beyond-gradients-suite.md | 38 +- experiments/article_suite/README.md | 29 +- leaderboard/ARTICLE_SUITE.md | 114 +- leaderboard/README.md | 9 +- leaderboard/article_suite.json | 691 ++++++++- .../article_suite_final_leaderboard.png | Bin 0 -> 69257 bytes .../article_suite_task_leaderboards.png | Bin 0 -> 241517 bytes scripts/build_article_suite_leaderboard.py | 311 +++- scripts/plot_article_suite_leaderboards.py | 308 ++++ tests/test_article_suite_tooling.py | 64 +- tests/test_leaderboard_artifacts.py | 127 +- website/README.md | 20 +- website/assets/article_suite.json | 1278 +++++++++++++++++ website/index.html | 229 ++- 16 files changed, 3024 insertions(+), 317 deletions(-) create mode 100644 docs/article-suite-scoring.md create mode 100644 leaderboard/article_suite_final_leaderboard.png create mode 100644 leaderboard/article_suite_task_leaderboards.png create mode 100644 scripts/plot_article_suite_leaderboards.py create mode 100644 website/assets/article_suite.json diff --git a/README.md b/README.md index a033528..824a1a3 100644 --- a/README.md +++ b/README.md @@ -117,15 +117,10 @@ mapping is documented in `docs/learning-beyond-gradients-suite.md`. The first OpenCode sweep across all nine article-derived tasks: -| Rank | Model | Nine-task average | -| ---: | --- | ---: | -| 1 | GPT-5.5 | 43.19 | -| 2 | Claude Opus 4.8 | 39.82 | -| 3 | GPT-5.6 Sol | 39.38 | -| 4 | GPT-5.4 Mini | -29.72 | +![GenesisBench final normalized leaderboard](leaderboard/article_suite_final_leaderboard.png) See [`leaderboard/ARTICLE_SUITE.md`](leaderboard/ARTICLE_SUITE.md) for the nine -task-specific leaderboards followed by the final average leaderboard. +task-specific leaderboards followed by the final cross-task leaderboard. `leaderboard/article_suite.json` contains the same 10-board structure in machine-readable form. @@ -133,6 +128,20 @@ Scores are unbounded normalized values: `0` matches the public starter and `100` matches the trusted article-level reference. Negative scores are genuine regressions; scores above `100` exceed the reference. +The final ranking uses the interquartile mean (IQM) of the nine task scores: +sort them, remove the lowest two and highest two, then average the middle five. +The chart uses a plot-only positive index equal to `IQM + 100`; the raw IQM +remains the ranking metric and is retained in the JSON. + +Inference settings are provider-specific: GPT-5.6 Sol and Claude Opus 4.8 use +`max`; GPT-5.5 and GPT-5.4 Mini use `xhigh`. These labels come from different +provider interfaces and are categorical settings, not a shared numeric compute +scale. Exact routes are documented in +[`docs/learning-beyond-gradients-suite.md`](docs/learning-beyond-gradients-suite.md). + +See [`docs/article-suite-scoring.md`](docs/article-suite-scoring.md) for the +formula, research precedent, and current single-run limitation. + ## Contribute a Task Create a scaffold: diff --git a/docs/article-suite-scoring.md b/docs/article-suite-scoring.md new file mode 100644 index 0000000..9ad74f4 --- /dev/null +++ b/docs/article-suite-scoring.md @@ -0,0 +1,100 @@ +# Article-suite scoring methodology + +GenesisBench separates per-task normalization from cross-task aggregation. + +## Per-task normalized score + +Every task evaluates a candidate on its hidden suite and compares the resulting +raw score with two frozen anchors: + +```text +normalized_task_score = + 100 * (candidate_score - starter_score) + / (reference_score - starter_score) +``` + +The public starter maps to `0`; the trusted article-level reference maps to +`100`. Scores are intentionally unbounded: + +- negative scores perform below the starter; +- scores above `100` outperform the reference. + +This follows the same family of baseline normalization used by benchmarks such +as [D4RL](https://arxiv.org/abs/2004.07219), which normalizes returns between +task-specific lower and upper reference scores. + +## Final normalized score + +The primary final metric is the interquartile mean (IQM), implemented as the +25% trimmed mean used by +[RLiable](https://github.com/google-research/rliable): + +```text +scores = sort(the nine normalized task scores) +trim_count = floor(0.25 * 9) = 2 +final_normalized_score = mean(scores[2:7]) +``` + +In words: remove the lowest two and highest two task scores and average the +middle five. + +The JSON also publishes: + +- `arithmetic_mean_normalized_score`; +- `median_normalized_score`; +- the original `average_normalized_score` as a backward-compatible alias for + the arithmetic mean. + +## Why IQM is primary + +The original GenesisBench aggregate was the unweighted arithmetic mean of nine +normalized task scores. That is simple and remains useful, but a single very +large positive or negative task can move the final rank substantially. + +The NeurIPS paper +[*Deep Reinforcement Learning at the Edge of the Statistical +Precipice*](https://proceedings.neurips.cc/paper_files/paper/2021/hash/f514cec81cb148559cf475e7426eed5e-Abstract.html) +recommends robust aggregate metrics such as IQM, together with performance +profiles and uncertainty estimates. Atari research also commonly reports both +median and mean human-normalized scores; the +[Agent57 paper](https://arxiv.org/abs/2003.13350) explicitly notes that a high +average can hide weak performance on many individual games. + +GenesisBench therefore uses: + +1. task-specific native raw-score leaderboards for visibility; +2. IQM as the primary cross-task rank; +3. arithmetic mean and median as secondary diagnostics. + +## Positive display index + +The final image uses a fixed additive transform: + +```text +positive_display_score = final_normalized_score + 100 +``` + +This is presentation-only. Raw IQM remains the official ranking field. + +A fixed offset is preferred over cohort min-max scaling because it: + +- preserves every model-to-model difference exactly; +- does not change when another model is added; +- gives a stable interpretation: an aggregate starter-level IQM of `0` + displays as `100`. + +Min-max scaling would force the current best and worst models to arbitrary +endpoints and would rewrite every displayed score whenever the comparison set +changes. Clipping negative IQM values to zero would erase meaningful +differences. + +## Current statistical limitation + +The published sweep currently has one independent agent run per model/task +pair. That is sufficient to recompute deterministic aggregate metrics, but not +to estimate statistically meaningful bootstrap confidence intervals or +probability of improvement between models. + +A future multi-run release should retain IQM and additionally report +stratified-bootstrap confidence intervals, performance profiles, and pairwise +probability of improvement following the RLiable protocol. diff --git a/docs/learning-beyond-gradients-suite.md b/docs/learning-beyond-gradients-suite.md index 4261da0..17e9e30 100644 --- a/docs/learning-beyond-gradients-suite.md +++ b/docs/learning-beyond-gradients-suite.md @@ -49,12 +49,16 @@ zero and are not presented as article reproductions. All new leaderboard runs use the BenchFlow `opencode` ACP harness. The canonical matrix is: -| Model | Provider | Effort | -| --- | --- | --- | -| GPT-5.6 Sol | Azure | `max` | -| GPT-5.5 | Azure | `xhigh` | -| Claude Opus 4.8 | Claude OAuth through pinned OpenCode plugin | `max` | -| GPT-5.4 Mini | Azure | `xhigh` | +| Model | Exact route | Harness | Provider reasoning setting | +| --- | --- | --- | --- | +| GPT-5.6 Sol | Azure `azure/gpt-5.6-sol` | OpenCode | `max` | +| GPT-5.5 | Azure `azure/gpt-5.5` | OpenCode | `xhigh` | +| Claude Opus 4.8 | Claude OAuth `anthropic/claude-opus-4-8` through the pinned OpenCode plugin | OpenCode | `max` | +| GPT-5.4 Mini | Azure `azure/gpt-5.4-mini` | OpenCode | `xhigh` | + +`max` and `xhigh` are provider-specific categorical labels. They indicate the +configured reasoning setting for that route; they are not interchangeable +units and should not be read as a shared numeric inference-compute scale. OpenCode talks directly to the provider because BenchFlow 0.6.5's chat-completions gateway cannot faithfully transform Azure GPT-5.6 Sol tool @@ -67,18 +71,26 @@ The offline article-suite report contains 10 independent leaderboards in a fixed order: 1. one leaderboard for each of the nine article-derived tasks; -2. the final averaged leaderboard. +2. the final cross-task leaderboard. -The final score is the unweighted arithmetic mean: +Each task first receives an unbounded anchor-normalized score: ```text -average = sum(nine normalized task scores) / 9 +task score = 100 * (candidate - starter) / (reference - starter) ``` -The repository README intentionally shows only the final averaged leaderboard. -Detailed task rankings and score-artifact links live in -`leaderboard/ARTICLE_SUITE.md`; the matching machine-readable structure lives -in `leaderboard/article_suite.json`. +The primary final score is the 25% trimmed interquartile mean (IQM). With nine +tasks, the two lowest and two highest normalized scores are removed and the +middle five are averaged. Arithmetic mean and median remain secondary +diagnostics. + +The repository README intentionally shows only the final leaderboard image. +The nine task panels use each environment's native raw score. The final chart +uses a positive plot index equal to `IQM + 100`, while raw IQM remains the +official ranking metric. Both images live in `leaderboard/ARTICLE_SUITE.md`; +the matching machine-readable structure lives in +`leaderboard/article_suite.json`. See `docs/article-suite-scoring.md` for the +research rationale and statistical limitations. The runner and resumable leaderboard builder live in: diff --git a/experiments/article_suite/README.md b/experiments/article_suite/README.md index 0867c37..cdc3125 100644 --- a/experiments/article_suite/README.md +++ b/experiments/article_suite/README.md @@ -16,6 +16,20 @@ the nine task packages derived from the article: Every run uses BenchFlow's registered `opencode` ACP harness. OpenHands is not part of this suite. +## Inference settings + +| Model | Exact route | Provider-specific reasoning setting | +| --- | --- | --- | +| GPT-5.6 Sol | `azure/gpt-5.6-sol` | `max` | +| GPT-5.5 | `azure/gpt-5.5` | `xhigh` | +| Claude Opus 4.8 | `anthropic/claude-opus-4-8` via Claude OAuth and the pinned OpenCode plugin | `max` | +| GPT-5.4 Mini | `azure/gpt-5.4-mini` | `xhigh` | + +The setting names are categorical labels exposed by each provider integration, +not a common numeric measure of inference compute. All four routes use the +OpenCode harness; the route and reasoning setting are stored with every +published result. + ## Credentials Credential values are read from the process environment or an env file. They @@ -85,11 +99,18 @@ uv run python scripts/build_article_suite_leaderboard.py The builder writes: -- `leaderboard/ARTICLE_SUITE.md`: nine task-specific leaderboards followed by - the final average leaderboard; +- `leaderboard/ARTICLE_SUITE.md`: one nine-panel task image followed by the + final IQM leaderboard image; - `leaderboard/article_suite.json`: the same 10 leaderboards plus the model-centric score records used for reproducibility. +- `leaderboard/article_suite_task_leaderboards.png`: nine task-specific + leaderboard panels using native raw environment scores; +- `leaderboard/article_suite_final_leaderboard.png`: the final cross-task + ranking displayed as `IQM + 100` so every current plotted value is positive. -The final aggregate is the arithmetic mean of the nine normalized task scores. Each task maps its starter policy to `0` and its trusted article-level reference -to `100`. The top-level repository README shows only this final aggregate. +to `100`. The final primary aggregate is the interquartile mean: remove the two +lowest and two highest of the nine normalized scores, then average the middle +five. Arithmetic mean and median remain secondary diagnostics. The top-level +repository README shows only the final image. The additive display offset does +not affect ranking or score gaps; raw IQM remains available in the JSON. diff --git a/leaderboard/ARTICLE_SUITE.md b/leaderboard/ARTICLE_SUITE.md index acb3749..780343d 100644 --- a/leaderboard/ARTICLE_SUITE.md +++ b/leaderboard/ARTICLE_SUITE.md @@ -1,115 +1,17 @@ # GenesisBench Learning Beyond Gradients Article Suite -This offline report contains 10 independent leaderboards: one for each of the nine article-derived tasks, followed by the final nine-task average. +The first image contains the nine independently ranked task leaderboards. The second image contains the final cross-task ranking. -Task scores are unbounded normalized values. The public starter maps to 0 and the trusted article-level reference maps to 100. +The nine task panels use each environment's native raw score. The final scientific metric remains unbounded IQM. -## 1. Ant +## Nine task leaderboards -Task: `simulation_heuristics_ant_v1` +![Nine task-specific GenesisBench leaderboards](article_suite_task_leaderboards.png) -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | GPT-5.6 Sol | opencode | max | 39.20 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_ant_v1/score.json) | -| 2 | Claude Opus 4.8 | opencode | max | 14.05 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_ant_v1/score.json) | -| 3 | GPT-5.5 | opencode | xhigh | -16.89 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_ant_v1/score.json) | -| 4 | GPT-5.4 Mini | opencode | xhigh | -31.36 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_ant_v1/score.json) | +## Final normalized score -## 2. Pong +The primary score is the interquartile mean (IQM): sort the nine task scores, remove the lowest two and highest two, then average the middle five. The image uses a plot-only positive display index equal to `IQM + 100`; raw IQM, arithmetic mean, and median remain in the JSON. -Task: `simulation_heuristics_pong_ram_v1` +![Final GenesisBench article-suite leaderboard](article_suite_final_leaderboard.png) -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | Claude Opus 4.8 | opencode | max | 100.00 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_pong_ram_v1/score.json) | -| 2 | GPT-5.6 Sol | opencode | max | 52.92 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_pong_ram_v1/score.json) | -| 3 | GPT-5.5 | opencode | xhigh | 45.83 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_pong_ram_v1/score.json) | -| 4 | GPT-5.4 Mini | opencode | xhigh | -75.00 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_pong_ram_v1/score.json) | - -## 3. Breakout RAM - -Task: `simulation_heuristics_breakout_ram_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | GPT-5.6 Sol | opencode | max | 100.00 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_ram_v1/score.json) | -| 2 | GPT-5.5 | opencode | xhigh | 95.60 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_ram_v1/score.json) | -| 3 | GPT-5.4 Mini | opencode | xhigh | 2.52 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_ram_v1/score.json) | -| 4 | Claude Opus 4.8 | opencode | max | 0.00 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_ram_v1/score.json) | - -## 4. Breakout RGB - -Task: `simulation_heuristics_breakout_rgb_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | GPT-5.5 | opencode | xhigh | 70.76 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_rgb_v1/score.json) | -| 1 | GPT-5.6 Sol | opencode | max | 70.76 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_rgb_v1/score.json) | -| 3 | GPT-5.4 Mini | opencode | xhigh | 15.52 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_rgb_v1/score.json) | -| 4 | Claude Opus 4.8 | opencode | max | 0.00 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_rgb_v1/score.json) | - -## 5. HalfCheetah - -Task: `simulation_heuristics_halfcheetah_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | Claude Opus 4.8 | opencode | max | 26.99 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_halfcheetah_v1/score.json) | -| 2 | GPT-5.6 Sol | opencode | max | 15.87 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_halfcheetah_v1/score.json) | -| 3 | GPT-5.5 | opencode | xhigh | 2.74 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_halfcheetah_v1/score.json) | -| 4 | GPT-5.4 Mini | opencode | xhigh | -8.17 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_halfcheetah_v1/score.json) | - -## 6. VizDoom D1 - -Task: `simulation_heuristics_vizdoom_d1_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | Claude Opus 4.8 | opencode | max | 95.06 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d1_v1/score.json) | -| 2 | GPT-5.5 | opencode | xhigh | 85.20 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d1_v1/score.json) | -| 3 | GPT-5.6 Sol | opencode | max | 49.41 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d1_v1/score.json) | -| 4 | GPT-5.4 Mini | opencode | xhigh | -161.12 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d1_v1/score.json) | - -## 7. VizDoom D3 - -Task: `simulation_heuristics_vizdoom_d3_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | Claude Opus 4.8 | opencode | max | 122.26 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d3_v1/score.json) | -| 2 | GPT-5.6 Sol | opencode | max | 26.24 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d3_v1/score.json) | -| 3 | GPT-5.5 | opencode | xhigh | 5.48 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d3_v1/score.json) | -| 4 | GPT-5.4 Mini | opencode | xhigh | -9.86 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d3_v1/score.json) | - -## 8. Atari57 - -Task: `simulation_heuristics_atari57_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | Claude Opus 4.8 | opencode | max | 0.00 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_atari57_v1/score.json) | -| 1 | GPT-5.4 Mini | opencode | xhigh | 0.00 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_atari57_v1/score.json) | -| 1 | GPT-5.5 | opencode | xhigh | 0.00 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_atari57_v1/score.json) | -| 1 | GPT-5.6 Sol | opencode | max | 0.00 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_atari57_v1/score.json) | - -## 9. Montezuma's Revenge - -Task: `simulation_heuristics_montezuma_v1` - -| Rank | Model | Harness | Effort | Normalized score | Score details | -| ---: | --- | --- | --- | ---: | --- | -| 1 | GPT-5.5 | opencode | xhigh | 100.00 | [JSON](article_suite_submissions/gpt-5.5/simulation_heuristics_montezuma_v1/score.json) | -| 2 | Claude Opus 4.8 | opencode | max | 0.00 | [JSON](article_suite_submissions/claude-opus-4.8/simulation_heuristics_montezuma_v1/score.json) | -| 2 | GPT-5.4 Mini | opencode | xhigh | 0.00 | [JSON](article_suite_submissions/gpt-5.4-mini/simulation_heuristics_montezuma_v1/score.json) | -| 2 | GPT-5.6 Sol | opencode | max | 0.00 | [JSON](article_suite_submissions/gpt-5.6-sol/simulation_heuristics_montezuma_v1/score.json) | - -## 10. Nine-task average - -Arithmetic mean of the nine normalized task scores. - -| Rank | Model | Harness | Effort | Nine-task average | -| ---: | --- | --- | --- | ---: | -| 1 | GPT-5.5 | opencode | xhigh | 43.19 | -| 2 | Claude Opus 4.8 | opencode | max | 39.82 | -| 3 | GPT-5.6 Sol | opencode | max | 39.38 | -| 4 | GPT-5.4 Mini | opencode | xhigh | -29.72 | +Machine-readable rankings and score-detail paths are available in [`article_suite.json`](article_suite.json). The scoring rationale is documented in [`docs/article-suite-scoring.md`](../docs/article-suite-scoring.md). diff --git a/leaderboard/README.md b/leaderboard/README.md index b085e94..968603f 100644 --- a/leaderboard/README.md +++ b/leaderboard/README.md @@ -2,15 +2,10 @@ ## Learning Beyond Gradients article suite -| Rank | Model | Nine-task average | -| ---: | --- | ---: | -| 1 | GPT-5.5 | 43.19 | -| 2 | Claude Opus 4.8 | 39.82 | -| 3 | GPT-5.6 Sol | 39.38 | -| 4 | GPT-5.4 Mini | -29.72 | +![GenesisBench final normalized leaderboard](article_suite_final_leaderboard.png) See [`ARTICLE_SUITE.md`](ARTICLE_SUITE.md) for 10 independent leaderboards: -nine task-specific rankings followed by the final average ranking. +nine task-specific rankings followed by the final IQM ranking. ## Legacy Simulation Heuristics Ant v1 diff --git a/leaderboard/article_suite.json b/leaderboard/article_suite.json index 4916a6a..b490741 100644 --- a/leaderboard/article_suite.json +++ b/leaderboard/article_suite.json @@ -1,52 +1,142 @@ { - "aggregation": "arithmetic_mean_of_normalized_task_scores", + "aggregation": { + "display_transform": { + "formula": "positive_display_score = final_normalized_score + 100", + "offset": 100.0, + "purpose": "plot_only", + "ranking_field": "final_normalized_score", + "type": "additive_offset" + }, + "primary_field": "final_normalized_score", + "primary_metric": "interquartile_mean", + "retained_score_count": 5, + "score_bounds": "unbounded", + "secondary_fields": [ + "arithmetic_mean_normalized_score", + "median_normalized_score" + ], + "trim_fraction_per_tail": 0.25, + "trimmed_score_count_per_tail": 2, + "uncertainty": "not_estimated_single_run_per_model_task" + }, "benchmark": "learning_beyond_gradients_article_suite", "generated_at": "2026-07-13T15:34:22.260689+00:00", + "inference_settings": { + "cross_provider_comparability": "labels_are_not_a_shared_numeric_compute_scale", + "field": "provider_reasoning_effort", + "interpretation": "provider_specific_categorical_setting", + "models": [ + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max" + }, + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh" + } + ] + }, "leaderboard_count": 10, "leaderboards": [ { "id": "simulation_heuristics_ant_v1", "label": "Ant", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Weighted hidden return", + "unit": "return" + }, "rows": [ { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 39.203600385, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 3815.360622145591, + "reference_score": 5942.333244755838, "source_run": "leaderboard/runs/article_suite/20260713T093815Z/gpt-5.6-sol", + "starter_score": 2443.815838992282, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_ant_v1/score.json" }, { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 14.050353128, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 2, + "raw_score": 2935.3698887625987, + "reference_score": 5942.333244755838, "source_run": "leaderboard/runs/article_suite/20260713T142919Z/claude-opus-4.8", + "starter_score": 2443.815838992282, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_ant_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": -16.891796576, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 3, + "raw_score": 1852.8533956222025, + "reference_score": 5942.333244755838, "source_run": "leaderboard/runs/article_suite/20260713T095807Z/gpt-5.5", + "starter_score": 2443.815838992282, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_ant_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": -31.35954984, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4, + "raw_score": 1346.6965294546999, + "reference_score": 5942.333244755838, "source_run": "leaderboard/runs/article_suite/20260713T104315Z/gpt-5.4-mini", + "starter_score": 2443.815838992282, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_ant_v1/score.json" } ] @@ -54,46 +144,74 @@ { "id": "simulation_heuristics_pong_ram_v1", "label": "Pong", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Native Pong score", + "unit": "points" + }, "rows": [ { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 100.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 21.0, + "reference_score": 21.0, "source_run": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "starter_score": -2.9999999999999996, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_pong_ram_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 52.916666667, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 2, + "raw_score": 9.7, + "reference_score": 21.0, "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": -2.9999999999999996, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_pong_ram_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 45.833333333, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 3, + "raw_score": 8.0, + "reference_score": 21.0, "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": -2.9999999999999996, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_pong_ram_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": -75.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4, + "raw_score": -21.0, + "reference_score": 21.0, "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": -2.9999999999999996, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_pong_ram_v1/score.json" } ] @@ -101,46 +219,74 @@ { "id": "simulation_heuristics_breakout_ram_v1", "label": "Breakout RAM", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Native Breakout return", + "unit": "points" + }, "rows": [ { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 100.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 864.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": 387.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_ram_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 95.597484277, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 2, + "raw_score": 843.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 387.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_ram_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": 2.51572327, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 3, + "raw_score": 399.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": 387.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_ram_v1/score.json" }, { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 4, + "raw_score": 387.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "starter_score": 387.0, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_ram_v1/score.json" } ] @@ -148,46 +294,74 @@ { "id": "simulation_heuristics_breakout_rgb_v1", "label": "Breakout RGB", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Native Breakout return", + "unit": "points" + }, "rows": [ { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 70.758122744, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 1, + "raw_score": 702.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 310.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_rgb_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 70.758122744, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 702.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": 310.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_rgb_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": 15.523465704, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 3, + "raw_score": 396.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": 310.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_rgb_v1/score.json" }, { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 4, + "raw_score": 310.0, + "reference_score": 864.0, "source_run": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "starter_score": 310.0, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_rgb_v1/score.json" } ] @@ -195,46 +369,74 @@ { "id": "simulation_heuristics_halfcheetah_v1", "label": "HalfCheetah", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Weighted hidden return", + "unit": "return" + }, "rows": [ { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 26.986707946, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 6021.504892591717, + "reference_score": 11487.256451471967, "source_run": "leaderboard/runs/article_suite/20260713T111714Z/claude-opus-4.8", + "starter_score": 4001.2886158917113, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_halfcheetah_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 15.873072595, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 2, + "raw_score": 5189.541724894487, + "reference_score": 11487.256451471967, "source_run": "leaderboard/runs/article_suite/20260713T084340Z/gpt-5.6-sol", + "starter_score": 4001.2886158917113, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_halfcheetah_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 2.73755349, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 3, + "raw_score": 4206.220989602626, + "reference_score": 11487.256451471967, "source_run": "leaderboard/runs/article_suite/20260713T103810Z/gpt-5.5", + "starter_score": 4001.2886158917113, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_halfcheetah_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": -8.167582379, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4, + "raw_score": 3389.8660260183765, + "reference_score": 11487.256451471967, "source_run": "leaderboard/runs/article_suite/20260713T093314Z/gpt-5.4-mini", + "starter_score": 4001.2886158917113, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_halfcheetah_v1/score.json" } ] @@ -242,46 +444,74 @@ { "id": "simulation_heuristics_vizdoom_d1_v1", "label": "VizDoom D1", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Native D1 mean reward", + "unit": "reward" + }, "rows": [ { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 95.055812742, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 0.7992199431359768, + "reference_score": 0.8178199748694897, "source_run": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "starter_score": 0.44161998964846133, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d1_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 85.199359782, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 2, + "raw_score": 0.7621399685554205, + "reference_score": 0.8178199748694897, "source_run": "leaderboard/runs/article_suite/20260713T102218Z/gpt-5.5", + "starter_score": 0.44161998964846133, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d1_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 49.409889366, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 3, + "raw_score": 0.62749998614192, + "reference_score": 0.8178199748694897, "source_run": "leaderboard/runs/article_suite/20260713T101636Z/gpt-5.6-sol", + "starter_score": 0.44161998964846133, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d1_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": -161.116433137, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4, + "raw_score": -0.16450000800192355, + "reference_score": 0.8178199748694897, "source_run": "leaderboard/runs/article_suite/20260713T102707Z/gpt-5.4-mini", + "starter_score": 0.44161998964846133, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d1_v1/score.json" } ] @@ -289,46 +519,74 @@ { "id": "simulation_heuristics_vizdoom_d3_v1", "label": "VizDoom D3", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Native D3 mean reward", + "unit": "reward" + }, "rows": [ { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 122.259358289, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 397.7, + "reference_score": 331.1, "source_run": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "starter_score": 31.9, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d3_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 26.236631016, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 2, + "raw_score": 110.39999999999998, + "reference_score": 331.1, "source_run": "leaderboard/runs/article_suite/20260713T083940Z/gpt-5.6-sol", + "starter_score": 31.9, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d3_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 5.481283422, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 3, + "raw_score": 48.3, + "reference_score": 331.1, "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 31.9, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d3_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": -9.859625668, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4, + "raw_score": 2.4, + "reference_score": 331.1, "source_run": "leaderboard/runs/article_suite/20260713T104034Z/gpt-5.4-mini", + "starter_score": 31.9, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d3_v1/score.json" } ] @@ -336,46 +594,74 @@ { "id": "simulation_heuristics_atari57_v1", "label": "Atari57", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Median best-mode HNS", + "unit": "HNS" + }, "rows": [ { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, "source_run": "leaderboard/runs/article_suite/20260713T123222Z/claude-opus-4.8", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_atari57_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, "source_run": "leaderboard/runs/article_suite/20260713T111944Z/gpt-5.4-mini", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_atari57_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, "source_run": "leaderboard/runs/article_suite/20260713T111604Z/gpt-5.5", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_atari57_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, "source_run": "leaderboard/runs/article_suite/20260713T111156Z/gpt-5.6-sol", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_atari57_v1/score.json" } ] @@ -383,84 +669,147 @@ { "id": "simulation_heuristics_montezuma_v1", "label": "Montezuma's Revenge", - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": { + "label": "Capped native return", + "unit": "points" + }, "rows": [ { "harness": "opencode", "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", "normalized_score": 100.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 1, + "raw_score": 400.0, + "reference_score": 400.0, "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_montezuma_v1/score.json" }, { "harness": "opencode", "model": "Claude Opus 4.8", "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 2, + "raw_score": 0.0, + "reference_score": 400.0, "source_run": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_montezuma_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 2, + "raw_score": 0.0, + "reference_score": 400.0, "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_montezuma_v1/score.json" }, { "harness": "opencode", "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 2, + "raw_score": 0.0, + "reference_score": 400.0, "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": 0.0, "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_montezuma_v1/score.json" } ] }, { - "id": "average", - "label": "Nine-task average", - "metric": "average_normalized_score", + "display_metric": "positive_display_score", + "display_transform": { + "formula": "positive_display_score = final_normalized_score + 100", + "offset": 100.0, + "purpose": "plot_only", + "type": "additive_offset" + }, + "id": "final", + "label": "Final normalized score", + "metric": "final_normalized_score", "rows": [ { + "arithmetic_mean_normalized_score": 43.19059338577778, "average_normalized_score": 43.19059338577778, + "final_normalized_score": 42.0019305542, "harness": "opencode", + "median_normalized_score": 45.833333333, "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "positive_display_score": 142.0019305542, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 1 }, { - "average_normalized_score": 39.81691467833333, + "arithmetic_mean_normalized_score": 39.37755364144445, + "average_normalized_score": 39.37755364144445, + "final_normalized_score": 36.7279720058, "harness": "opencode", - "model": "Claude Opus 4.8", - "model_id": "claude-opus-4.8", + "median_normalized_score": 39.203600385, + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "positive_display_score": 136.72797200579998, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", "rank": 2 }, { - "average_normalized_score": 39.37755364144445, + "arithmetic_mean_normalized_score": 39.81691467833333, + "average_normalized_score": 39.81691467833333, + "final_normalized_score": 27.218574763200003, "harness": "opencode", - "model": "GPT-5.6 Sol", - "model_id": "gpt-5.6-sol", + "median_normalized_score": 14.050353128, + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "positive_display_score": 127.2185747632, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", "provider_reasoning_effort": "max", "rank": 3 }, { + "arithmetic_mean_normalized_score": -29.71822245, "average_normalized_score": -29.71822245, + "final_normalized_score": -9.8773515774, "harness": "opencode", + "median_normalized_score": -8.167582379, "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "positive_display_score": 90.1226484226, + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4 } @@ -469,12 +818,29 @@ ], "rows": [ { + "arithmetic_mean_normalized_score": 43.19059338577778, "average_normalized_score": 43.19059338577778, + "final_normalized_score": 42.0019305542, "harness": "opencode", + "median_normalized_score": 45.833333333, "model": "GPT-5.5", "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 1, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 1852.8533956222025, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 843.0, + "simulation_heuristics_breakout_rgb_v1": 702.0, + "simulation_heuristics_halfcheetah_v1": 4206.220989602626, + "simulation_heuristics_montezuma_v1": 400.0, + "simulation_heuristics_pong_ram_v1": 8.0, + "simulation_heuristics_vizdoom_d1_v1": 0.7621399685554205, + "simulation_heuristics_vizdoom_d3_v1": 48.3 + }, "source_runs": { "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T095807Z/gpt-5.5", "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111604Z/gpt-5.5", @@ -497,6 +863,44 @@ "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d1_v1/score.json", "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d3_v1/score.json" }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, "task_scores": { "simulation_heuristics_ant_v1": -16.891796576, "simulation_heuristics_atari57_v1": 0.0, @@ -510,53 +914,29 @@ } }, { - "average_normalized_score": 39.81691467833333, - "harness": "opencode", - "model": "Claude Opus 4.8", - "model_id": "claude-opus-4.8", - "provider_reasoning_effort": "max", - "rank": 2, - "source_runs": { - "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T142919Z/claude-opus-4.8", - "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T123222Z/claude-opus-4.8", - "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", - "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", - "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T111714Z/claude-opus-4.8", - "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", - "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", - "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", - "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8" - }, - "submission_details": { - "simulation_heuristics_ant_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_ant_v1/score.json", - "simulation_heuristics_atari57_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_atari57_v1/score.json", - "simulation_heuristics_breakout_ram_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_ram_v1/score.json", - "simulation_heuristics_breakout_rgb_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_rgb_v1/score.json", - "simulation_heuristics_halfcheetah_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_halfcheetah_v1/score.json", - "simulation_heuristics_montezuma_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_montezuma_v1/score.json", - "simulation_heuristics_pong_ram_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_pong_ram_v1/score.json", - "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d1_v1/score.json", - "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d3_v1/score.json" - }, - "task_scores": { - "simulation_heuristics_ant_v1": 14.050353128, - "simulation_heuristics_atari57_v1": 0.0, - "simulation_heuristics_breakout_ram_v1": 0.0, - "simulation_heuristics_breakout_rgb_v1": 0.0, - "simulation_heuristics_halfcheetah_v1": 26.986707946, - "simulation_heuristics_montezuma_v1": 0.0, - "simulation_heuristics_pong_ram_v1": 100.0, - "simulation_heuristics_vizdoom_d1_v1": 95.055812742, - "simulation_heuristics_vizdoom_d3_v1": 122.259358289 - } - }, - { + "arithmetic_mean_normalized_score": 39.37755364144445, "average_normalized_score": 39.37755364144445, + "final_normalized_score": 36.7279720058, "harness": "opencode", + "median_normalized_score": 39.203600385, "model": "GPT-5.6 Sol", "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "max", - "rank": 3, + "rank": 2, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 3815.360622145591, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 864.0, + "simulation_heuristics_breakout_rgb_v1": 702.0, + "simulation_heuristics_halfcheetah_v1": 5189.541724894487, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 9.7, + "simulation_heuristics_vizdoom_d1_v1": 0.62749998614192, + "simulation_heuristics_vizdoom_d3_v1": 110.39999999999998 + }, "source_runs": { "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T093815Z/gpt-5.6-sol", "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111156Z/gpt-5.6-sol", @@ -579,6 +959,44 @@ "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d1_v1/score.json", "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d3_v1/score.json" }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, "task_scores": { "simulation_heuristics_ant_v1": 39.203600385, "simulation_heuristics_atari57_v1": 0.0, @@ -592,12 +1010,125 @@ } }, { + "arithmetic_mean_normalized_score": 39.81691467833333, + "average_normalized_score": 39.81691467833333, + "final_normalized_score": 27.218574763200003, + "harness": "opencode", + "median_normalized_score": 14.050353128, + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 3, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 2935.3698887625987, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 387.0, + "simulation_heuristics_breakout_rgb_v1": 310.0, + "simulation_heuristics_halfcheetah_v1": 6021.504892591717, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 21.0, + "simulation_heuristics_vizdoom_d1_v1": 0.7992199431359768, + "simulation_heuristics_vizdoom_d3_v1": 397.7 + }, + "source_runs": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T142919Z/claude-opus-4.8", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T123222Z/claude-opus-4.8", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T111714Z/claude-opus-4.8", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8" + }, + "submission_details": { + "simulation_heuristics_ant_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_ant_v1/score.json", + "simulation_heuristics_atari57_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_atari57_v1/score.json", + "simulation_heuristics_breakout_ram_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_ram_v1/score.json", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_rgb_v1/score.json", + "simulation_heuristics_halfcheetah_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_halfcheetah_v1/score.json", + "simulation_heuristics_montezuma_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_montezuma_v1/score.json", + "simulation_heuristics_pong_ram_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_pong_ram_v1/score.json", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d1_v1/score.json", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, + "task_scores": { + "simulation_heuristics_ant_v1": 14.050353128, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 0.0, + "simulation_heuristics_breakout_rgb_v1": 0.0, + "simulation_heuristics_halfcheetah_v1": 26.986707946, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 100.0, + "simulation_heuristics_vizdoom_d1_v1": 95.055812742, + "simulation_heuristics_vizdoom_d3_v1": 122.259358289 + } + }, + { + "arithmetic_mean_normalized_score": -29.71822245, "average_normalized_score": -29.71822245, + "final_normalized_score": -9.8773515774, "harness": "opencode", + "median_normalized_score": -8.167582379, "model": "GPT-5.4 Mini", "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "provider": "azure", + "provider_label": "Azure direct", "provider_reasoning_effort": "xhigh", "rank": 4, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 1346.6965294546999, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 399.0, + "simulation_heuristics_breakout_rgb_v1": 396.0, + "simulation_heuristics_halfcheetah_v1": 3389.8660260183765, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": -21.0, + "simulation_heuristics_vizdoom_d1_v1": -0.16450000800192355, + "simulation_heuristics_vizdoom_d3_v1": 2.4 + }, "source_runs": { "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T104315Z/gpt-5.4-mini", "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111944Z/gpt-5.4-mini", @@ -620,6 +1151,44 @@ "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d1_v1/score.json", "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d3_v1/score.json" }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, "task_scores": { "simulation_heuristics_ant_v1": -31.35954984, "simulation_heuristics_atari57_v1": 0.0, diff --git a/leaderboard/article_suite_final_leaderboard.png b/leaderboard/article_suite_final_leaderboard.png new file mode 100644 index 0000000000000000000000000000000000000000..3b61646767b0b082f4f95e84fc4534f8339116c4 GIT binary patch literal 69257 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 literal 0 HcmV?d00001 diff --git a/leaderboard/article_suite_task_leaderboards.png b/leaderboard/article_suite_task_leaderboards.png new file mode 100644 index 0000000000000000000000000000000000000000..dd44da98a9751731cbc672d8c1ad3b69dacf36bc GIT binary patch literal 241517 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

sQ<467UY8aH*2xuqwGF# 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�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 literal 0 HcmV?d00001 diff --git a/scripts/build_article_suite_leaderboard.py b/scripts/build_article_suite_leaderboard.py index c63f629..16ff80e 100644 --- a/scripts/build_article_suite_leaderboard.py +++ b/scripts/build_article_suite_leaderboard.py @@ -4,6 +4,8 @@ import argparse import json import math +import shutil +import statistics import tomllib from datetime import UTC, datetime from pathlib import Path @@ -36,7 +38,51 @@ "simulation_heuristics_atari57_v1": "Atari57", "simulation_heuristics_montezuma_v1": "Montezuma's Revenge", } -AVERAGE_LEADERBOARD_ID = "average" +TASK_RAW_METRICS = { + "simulation_heuristics_ant_v1": { + "label": "Weighted hidden return", + "unit": "return", + }, + "simulation_heuristics_pong_ram_v1": { + "label": "Native Pong score", + "unit": "points", + }, + "simulation_heuristics_breakout_ram_v1": { + "label": "Native Breakout return", + "unit": "points", + }, + "simulation_heuristics_breakout_rgb_v1": { + "label": "Native Breakout return", + "unit": "points", + }, + "simulation_heuristics_halfcheetah_v1": { + "label": "Weighted hidden return", + "unit": "return", + }, + "simulation_heuristics_vizdoom_d1_v1": { + "label": "Native D1 mean reward", + "unit": "reward", + }, + "simulation_heuristics_vizdoom_d3_v1": { + "label": "Native D3 mean reward", + "unit": "reward", + }, + "simulation_heuristics_atari57_v1": { + "label": "Median best-mode HNS", + "unit": "HNS", + }, + "simulation_heuristics_montezuma_v1": { + "label": "Capped native return", + "unit": "points", + }, +} +PROVIDER_LABELS = { + "azure": "Azure direct", + "claude_oauth": "Claude OAuth via pinned OpenCode plugin", +} +FINAL_LEADERBOARD_ID = "final" +IQM_TRIM_FRACTION = 0.25 +FINAL_DISPLAY_OFFSET = 100.0 TASK_DIGEST_COMPATIBILITY = { "simulation_heuristics_ant_v1": { "sha256:bbb533da0cb86459f4d49dee667e6c73ac54c0188bc40e54e911d50ef3c3bc38": ( @@ -76,7 +122,7 @@ def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( - description="Build nine task leaderboards and their final average." + description="Build nine task leaderboards and their final IQM score." ) parser.add_argument( "--runs-root", @@ -228,6 +274,26 @@ def _rank_rows( return ranked +def _interquartile_mean(scores: list[float]) -> float: + if not scores: + raise ValueError("IQM requires at least one score") + ordered = sorted(float(score) for score in scores) + trim_count = int(len(ordered) * IQM_TRIM_FRACTION) + retained = ordered[trim_count : len(ordered) - trim_count] + if not retained: + raise ValueError("IQM trimming removed every score") + return math.fsum(retained) / len(retained) + + +def _aggregate_task_scores(task_scores: dict[str, float]) -> dict[str, float]: + scores = [float(task_scores[task]) for task in TASKS] + return { + "final_normalized_score": _interquartile_mean(scores), + "arithmetic_mean_normalized_score": math.fsum(scores) / len(scores), + "median_normalized_score": float(statistics.median(scores)), + } + + def _build_leaderboards( rows: list[dict[str, Any]], ) -> list[dict[str, Any]]: @@ -237,11 +303,21 @@ def _build_leaderboards( { "model_id": row["model_id"], "model": row["model"], + "model_route": row["model_route"], + "provider": row["provider"], + "provider_label": row["provider_label"], "harness": row["harness"], "provider_reasoning_effort": row[ "provider_reasoning_effort" ], "normalized_score": row["task_scores"][task], + "raw_score": row["raw_task_scores"][task], + "starter_score": row["task_anchors"][task][ + "starter_score" + ], + "reference_score": row["task_anchors"][task][ + "reference_score" + ], "submission_detail": row["submission_details"][task], "source_run": row["source_runs"][task], } @@ -251,34 +327,52 @@ def _build_leaderboards( { "id": task, "label": TASK_LABELS[task], - "metric": "normalized_score", + "metric": "raw_score", + "raw_metric": TASK_RAW_METRICS[task], "rows": _rank_rows( task_rows, - score_key="normalized_score", + score_key="raw_score", ), } ) - average_rows = [ + final_rows = [ { "model_id": row["model_id"], "model": row["model"], + "model_route": row["model_route"], + "provider": row["provider"], + "provider_label": row["provider_label"], "harness": row["harness"], "provider_reasoning_effort": row[ "provider_reasoning_effort" ], + "final_normalized_score": row["final_normalized_score"], + "arithmetic_mean_normalized_score": row[ + "arithmetic_mean_normalized_score" + ], + "median_normalized_score": row["median_normalized_score"], + "positive_display_score": row["final_normalized_score"] + + FINAL_DISPLAY_OFFSET, "average_normalized_score": row["average_normalized_score"], } for row in rows ] leaderboards.append( { - "id": AVERAGE_LEADERBOARD_ID, - "label": "Nine-task average", - "metric": "average_normalized_score", + "id": FINAL_LEADERBOARD_ID, + "label": "Final normalized score", + "metric": "final_normalized_score", + "display_metric": "positive_display_score", + "display_transform": { + "type": "additive_offset", + "offset": FINAL_DISPLAY_OFFSET, + "formula": "positive_display_score = final_normalized_score + 100", + "purpose": "plot_only", + }, "rows": _rank_rows( - average_rows, - score_key="average_normalized_score", + final_rows, + score_key="final_normalized_score", ), } ) @@ -297,71 +391,41 @@ def _leaderboard_relative_path(path: str) -> str: def _render_article_suite_markdown( leaderboards: list[dict[str, Any]], ) -> str: - markdown = [ + final_board = leaderboards[-1] + if final_board["id"] != FINAL_LEADERBOARD_ID: + raise ValueError("Final leaderboard must be last") + return "\n".join( + [ "# GenesisBench Learning Beyond Gradients Article Suite", "", - "This offline report contains 10 independent leaderboards: one for " - "each of the nine article-derived tasks, followed by the final " - "nine-task average.", + "The first image contains the nine independently ranked task " + "leaderboards. The second image contains the final cross-task ranking.", "", - "Task scores are unbounded normalized values. The public starter maps " - "to 0 and the trusted article-level reference maps to 100.", - ] - for index, board in enumerate(leaderboards, start=1): - markdown.extend(["", f"## {index}. {board['label']}", ""]) - if board["id"] == AVERAGE_LEADERBOARD_ID: - markdown.extend( - [ - "Arithmetic mean of the nine normalized task scores.", - "", - "| Rank | Model | Harness | Effort | Nine-task average |", - "| ---: | --- | --- | --- | ---: |", - ] - ) - for row in board["rows"]: - markdown.append( - "| " - + " | ".join( - [ - str(row["rank"]), - row["model"], - row["harness"], - row["provider_reasoning_effort"], - f"{row['average_normalized_score']:.2f}", - ] - ) - + " |" - ) - continue - - markdown.extend( - [ - f"Task: `{board['id']}`", - "", - "| Rank | Model | Harness | Effort | Normalized score | " - "Score details |", - "| ---: | --- | --- | --- | ---: | --- |", - ] - ) - for row in board["rows"]: - detail_path = _leaderboard_relative_path( - row["submission_detail"] - ) - markdown.append( - "| " - + " | ".join( - [ - str(row["rank"]), - row["model"], - row["harness"], - row["provider_reasoning_effort"], - f"{row['normalized_score']:.2f}", - f"[JSON]({detail_path})", - ] - ) - + " |" - ) - return "\n".join(markdown) + "\n" + "The nine task panels use each environment's native raw score. " + "The final scientific metric remains unbounded IQM.", + "", + "## Nine task leaderboards", + "", + "![Nine task-specific GenesisBench leaderboards]" + "(article_suite_task_leaderboards.png)", + "", + "## Final normalized score", + "", + "The primary score is the interquartile mean (IQM): sort the nine task " + "scores, remove the lowest two and highest two, then average the middle " + "five. The image uses a plot-only positive display index equal to " + "`IQM + 100`; raw IQM, arithmetic mean, and median remain in the JSON.", + "", + "![Final GenesisBench article-suite leaderboard]" + "(article_suite_final_leaderboard.png)", + "", + "Machine-readable rankings and score-detail paths are available in " + "[`article_suite.json`](article_suite.json). The scoring rationale is " + "documented in " + "[`docs/article-suite-scoring.md`](../docs/article-suite-scoring.md).", + "", + ] + ) def _latest_model_runs(runs_root: Path) -> dict[str, Path]: @@ -493,6 +557,8 @@ def main() -> None: task: _normalized_task_score(model_results[task][1]) for task in TASKS } + raw_task_scores: dict[str, float] = {} + task_anchors: dict[str, dict[str, float]] = {} submission_details: dict[str, str] = {} for task in TASKS: _, result_row, model_root, digest = model_results[task] @@ -516,6 +582,27 @@ def main() -> None: sanitized_score = _sanitize_score_paths( json.loads(source_score.read_text()) ) + raw_score = sanitized_score.get("score") + starter_score = sanitized_score.get("starter_score") + reference_score = sanitized_score.get("reference_score") + for name, value in ( + ("score", raw_score), + ("starter_score", starter_score), + ("reference_score", reference_score), + ): + if ( + not isinstance(value, int | float) + or isinstance(value, bool) + or not math.isfinite(float(value)) + ): + raise RuntimeError( + f"{model_id}/{task} has invalid {name} {value!r}" + ) + raw_task_scores[task] = float(raw_score) + task_anchors[task] = { + "starter_score": float(starter_score), + "reference_score": float(reference_score), + } (destination / "score.json").write_text( json.dumps(sanitized_score, indent=2, sort_keys=True) + "\n" ) @@ -546,17 +633,30 @@ def main() -> None: submission_details[task] = str( (destination / "score.json").relative_to(REPO_ROOT) ) - average = sum(task_scores.values()) / len(TASKS) + aggregate_scores = _aggregate_task_scores(task_scores) ranked.append( { "model_id": metadata["model"]["id"], "model": metadata["model"]["display_name"], + "model_route": metadata["model"]["model"], + "provider": metadata["model"]["provider"], + "provider_label": PROVIDER_LABELS.get( + metadata["model"]["provider"], + metadata["model"]["provider"], + ), "harness": metadata["harness"], "provider_reasoning_effort": metadata[ "provider_reasoning_effort" ], - "average_normalized_score": average, + **aggregate_scores, + # Backward-compatible alias for consumers of the first + # published schema. This is not the primary ranking metric. + "average_normalized_score": aggregate_scores[ + "arithmetic_mean_normalized_score" + ], "task_scores": task_scores, + "raw_task_scores": raw_task_scores, + "task_anchors": task_anchors, "submission_details": submission_details, "source_runs": { task: str( @@ -568,7 +668,7 @@ def main() -> None: ) ranked = _rank_rows( ranked, - score_key="average_normalized_score", + score_key="final_normalized_score", ) leaderboards = _build_leaderboards(ranked) @@ -577,8 +677,51 @@ def main() -> None: "task_count": len(TASKS), "leaderboard_count": len(leaderboards), "tasks": list(TASKS), - "aggregation": "arithmetic_mean_of_normalized_task_scores", + "aggregation": { + "primary_metric": "interquartile_mean", + "primary_field": "final_normalized_score", + "trim_fraction_per_tail": IQM_TRIM_FRACTION, + "trimmed_score_count_per_tail": int( + len(TASKS) * IQM_TRIM_FRACTION + ), + "retained_score_count": len(TASKS) + - 2 * int(len(TASKS) * IQM_TRIM_FRACTION), + "score_bounds": "unbounded", + "secondary_fields": [ + "arithmetic_mean_normalized_score", + "median_normalized_score", + ], + "uncertainty": "not_estimated_single_run_per_model_task", + "display_transform": { + "type": "additive_offset", + "offset": FINAL_DISPLAY_OFFSET, + "formula": "positive_display_score = final_normalized_score + 100", + "purpose": "plot_only", + "ranking_field": "final_normalized_score", + }, + }, "leaderboards": leaderboards, + "inference_settings": { + "field": "provider_reasoning_effort", + "interpretation": "provider_specific_categorical_setting", + "cross_provider_comparability": ( + "labels_are_not_a_shared_numeric_compute_scale" + ), + "models": [ + { + "model_id": row["model_id"], + "model": row["model"], + "model_route": row["model_route"], + "provider": row["provider"], + "provider_label": row["provider_label"], + "harness": row["harness"], + "provider_reasoning_effort": row[ + "provider_reasoning_effort" + ], + } + for row in ranked + ], + }, "task_digest_compatibility": TASK_DIGEST_COMPATIBILITY, "source_runs": { model_id: { @@ -599,10 +742,26 @@ def main() -> None: } args.output.parent.mkdir(parents=True, exist_ok=True) args.output.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n") + website_data = REPO_ROOT / "website" / "assets" / "article_suite.json" + website_data.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(args.output, website_data) (args.output.parent / "ARTICLE_SUITE.md").write_text( _render_article_suite_markdown(leaderboards) ) + try: + from scripts.plot_article_suite_leaderboards import ( + render_article_suite_leaderboards, + ) + except ModuleNotFoundError: + from plot_article_suite_leaderboards import ( + render_article_suite_leaderboards, + ) + + render_article_suite_leaderboards( + payload, + leaderboard_dir=args.output.parent, + ) print(args.output) diff --git a/scripts/plot_article_suite_leaderboards.py b/scripts/plot_article_suite_leaderboards.py new file mode 100644 index 0000000..06bcc1e --- /dev/null +++ b/scripts/plot_article_suite_leaderboards.py @@ -0,0 +1,308 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +import json +import math +from pathlib import Path +from typing import Any + +import matplotlib + +matplotlib.use("Agg") + +import matplotlib.pyplot as plt +from matplotlib.patches import Patch + + +REPO_ROOT = Path(__file__).resolve().parents[1] +TASK_IMAGE_NAME = "article_suite_task_leaderboards.png" +FINAL_IMAGE_NAME = "article_suite_final_leaderboard.png" +MODEL_COLORS = { + "gpt-5.5": "#111111", + "gpt-5.6-sol": "#444444", + "claude-opus-4.8": "#777777", + "gpt-5.4-mini": "#b5b5b5", +} + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Plot article-suite task and final leaderboards." + ) + parser.add_argument( + "--leaderboard", + type=Path, + default=REPO_ROOT / "leaderboard" / "article_suite.json", + ) + parser.add_argument( + "--leaderboard-dir", + type=Path, + default=REPO_ROOT / "leaderboard", + ) + return parser.parse_args() + + +def _style() -> None: + plt.rcParams.update( + { + "font.family": "DejaVu Sans", + "axes.edgecolor": "#d1d1d1", + "axes.labelcolor": "#333333", + "xtick.color": "#666666", + "ytick.color": "#171717", + "text.color": "#171717", + } + ) + + +def _score_limits(task_boards: list[dict[str, Any]]) -> tuple[float, float]: + scores = [ + float(row["raw_score"]) + for board in task_boards + for row in board["rows"] + ] + lower = min(-25.0, 25.0 * math.floor((min(scores) - 10.0) / 25.0)) + upper = max(125.0, 25.0 * math.ceil((max(scores) + 10.0) / 25.0)) + return lower, upper + + +def _bar_label_x(score: float, span: float) -> tuple[float, str]: + offset = span * 0.012 + if score >= 0: + return score + offset, "left" + return score - offset, "right" + + +def _plot_task_leaderboards( + task_boards: list[dict[str, Any]], + output: Path, +) -> None: + _style() + figure, axes = plt.subplots(3, 3, figsize=(18, 14), dpi=160) + figure.patch.set_facecolor("#fafafa") + + for axis, board in zip(axes.flat, task_boards, strict=True): + axis.set_facecolor("#fafafa") + rows = board["rows"] + names = [row["model"] for row in rows] + scores = [float(row["raw_score"]) for row in rows] + starter_score = float(rows[0]["starter_score"]) + reference_score = float(rows[0]["reference_score"]) + all_values = [*scores, starter_score, reference_score] + value_min = min(all_values) + value_max = max(all_values) + padding = max((value_max - value_min) * 0.16, abs(value_max) * 0.05, 1.0) + lower = min(0.0, value_min - padding) + upper = max(0.0, value_max + padding) + span = upper - lower + colors = [ + MODEL_COLORS.get(row["model_id"], "#666666") for row in rows + ] + bars = axis.barh(names, scores, color=colors, height=0.62) + axis.invert_yaxis() + axis.axvline( + starter_score, + color="#777777", + linewidth=1.0, + linestyle=(0, (1, 3)), + ) + axis.axvline( + reference_score, + color="#8a8a8a", + linewidth=1.0, + linestyle=(0, (4, 4)), + ) + axis.set_xlim(lower, upper) + axis.set_title( + board["label"], + loc="left", + fontsize=15, + fontweight="bold", + pad=10, + ) + axis.text( + 0, + 1.01, + board["raw_metric"]["label"], + transform=axis.transAxes, + fontsize=8, + color="#777777", + ) + axis.grid(axis="x", color="#e3e3e3", linewidth=0.8) + axis.set_axisbelow(True) + axis.spines[["top", "right", "left"]].set_visible(False) + axis.tick_params(axis="y", length=0, labelsize=9.5) + axis.tick_params(axis="x", labelsize=8.5) + for bar, score in zip(bars, scores, strict=True): + if score < lower + span * 0.08: + x = score + span * 0.012 + alignment = "left" + label_color = "#ffffff" + else: + x, alignment = _bar_label_x(score, span) + label_color = "#171717" + axis.text( + x, + bar.get_y() + bar.get_height() / 2, + f"{score:.1f}", + va="center", + ha=alignment, + fontsize=9, + fontweight="bold", + color=label_color, + ) + + figure.suptitle( + "GenesisBench — Nine Task Leaderboards", + x=0.055, + y=0.985, + ha="left", + fontsize=24, + fontweight="bold", + ) + figure.text( + 0.055, + 0.955, + "Native raw score for each environment · task-specific axes", + fontsize=11, + color="#666666", + ) + legend_handles = [ + Patch(facecolor=color, label=model_id) + for model_id, color in MODEL_COLORS.items() + ] + figure.legend( + handles=legend_handles, + loc="lower center", + ncol=4, + frameon=False, + fontsize=10, + bbox_to_anchor=(0.5, 0.01), + ) + figure.text( + 0.945, + 0.02, + "Dotted: starter · dashed: article reference", + ha="right", + fontsize=9, + color="#777777", + ) + figure.tight_layout(rect=(0.035, 0.055, 0.98, 0.935)) + output.parent.mkdir(parents=True, exist_ok=True) + figure.savefig( + output, + bbox_inches="tight", + facecolor=figure.get_facecolor(), + metadata={"Software": "GenesisBench"}, + ) + plt.close(figure) + + +def _plot_final_leaderboard( + final_board: dict[str, Any], + output: Path, +) -> None: + _style() + rows = final_board["rows"] + names = [f"{row['rank']} {row['model']}" for row in rows] + scores = [float(row["positive_display_score"]) for row in rows] + colors = [ + MODEL_COLORS.get(row["model_id"], "#666666") for row in rows + ] + + figure, axis = plt.subplots(figsize=(12, 7.2), dpi=160) + figure.patch.set_facecolor("#fafafa") + axis.set_facecolor("#fafafa") + bars = axis.barh(names, scores, color=colors, height=0.62) + axis.invert_yaxis() + lower = 0.0 + upper = max(160.0, math.ceil((max(scores) + 10.0) / 10.0) * 10.0) + span = upper - lower + axis.set_xlim(lower, upper) + axis.axvline( + 100, + color="#777777", + linewidth=1.0, + linestyle=(0, (1, 3)), + ) + axis.grid(axis="x", color="#e3e3e3", linewidth=0.8) + axis.set_axisbelow(True) + axis.spines[["top", "right", "left"]].set_visible(False) + axis.tick_params(axis="y", length=0, labelsize=12) + axis.tick_params(axis="x", labelsize=10) + axis.set_xlabel("Positive display index (IQM + 100)", fontsize=11) + + for bar, row, score in zip(bars, rows, scores, strict=True): + label_color = ( + "#171717" if row["model_id"] == "gpt-5.4-mini" else "#ffffff" + ) + axis.text( + score - span * 0.015, + bar.get_y() + bar.get_height() / 2, + f"{score:.2f} (IQM {row['final_normalized_score']:.2f})", + va="center", + ha="right", + fontsize=10.5, + fontweight="bold", + color=label_color, + ) + + axis.set_title( + "GenesisBench — Final Article-Suite Leaderboard", + loc="left", + fontsize=22, + fontweight="bold", + pad=22, + ) + axis.text( + 0, + 1.025, + "Plot-only positive index = IQM + 100 · ranking and gaps unchanged · " + "dotted line = starter-level aggregate", + transform=axis.transAxes, + fontsize=10.5, + color="#666666", + ) + figure.subplots_adjust(left=0.25, right=0.97, top=0.82, bottom=0.15) + output.parent.mkdir(parents=True, exist_ok=True) + figure.savefig( + output, + bbox_inches="tight", + facecolor=figure.get_facecolor(), + metadata={"Software": "GenesisBench"}, + ) + plt.close(figure) + + +def render_article_suite_leaderboards( + payload: dict[str, Any], + *, + leaderboard_dir: Path, +) -> tuple[Path, Path]: + boards = payload["leaderboards"] + task_boards = boards[:-1] + final_board = boards[-1] + if len(task_boards) != 9 or final_board["id"] != "final": + raise ValueError("Expected nine task boards followed by final board") + + task_output = leaderboard_dir / TASK_IMAGE_NAME + final_output = leaderboard_dir / FINAL_IMAGE_NAME + _plot_task_leaderboards(task_boards, task_output) + _plot_final_leaderboard(final_board, final_output) + return task_output, final_output + + +def main() -> None: + args = parse_args() + payload = json.loads(args.leaderboard.read_text()) + outputs = render_article_suite_leaderboards( + payload, + leaderboard_dir=args.leaderboard_dir, + ) + for output in outputs: + print(output) + + +if __name__ == "__main__": + main() diff --git a/tests/test_article_suite_tooling.py b/tests/test_article_suite_tooling.py index 7afb4a9..b26b828 100644 --- a/tests/test_article_suite_tooling.py +++ b/tests/test_article_suite_tooling.py @@ -420,21 +420,49 @@ def test_latest_task_results_merges_partial_runs(tmp_path: Path) -> None: assert selected[model_id][leaderboard.TASKS[1]][3] == "sha256:digest-2" -def test_offline_report_builds_nine_task_boards_then_average() -> None: +def test_iqm_matches_rliable_25_percent_trimmed_mean() -> None: + assert leaderboard._interquartile_mean(list(range(9))) == 4.0 + assert leaderboard._interquartile_mean( + [-100.0, -50.0, 1.0, 2.0, 3.0, 4.0, 5.0, 100.0, 500.0] + ) == 3.0 + + +def test_offline_report_builds_nine_task_boards_then_final() -> None: rows = [] - for model_id, model, average in ( + for model_id, model, baseline in ( ("model-a", "Model A", 5.0), ("model-b", "Model B", 10.0), ): - task_scores = {task: 0.0 for task in leaderboard.TASKS} + task_scores = {task: baseline for task in leaderboard.TASKS} + if model_id == "model-a": + task_scores[leaderboard.TASKS[0]] = 10.0 + task_scores[leaderboard.TASKS[1]] = 30.0 + else: + task_scores[leaderboard.TASKS[0]] = 20.0 + task_scores[leaderboard.TASKS[1]] = 5.0 + aggregates = leaderboard._aggregate_task_scores(task_scores) rows.append( - { - "model_id": model_id, - "model": model, - "harness": "opencode", + { + "model_id": model_id, + "model": model, + "model_route": f"test/{model_id}", + "provider": "test", + "provider_label": "Test provider", + "harness": "opencode", "provider_reasoning_effort": "max", - "average_normalized_score": average, + **aggregates, + "average_normalized_score": aggregates[ + "arithmetic_mean_normalized_score" + ], "task_scores": task_scores, + "raw_task_scores": task_scores, + "task_anchors": { + task: { + "starter_score": 0.0, + "reference_score": 100.0, + } + for task in leaderboard.TASKS + }, "submission_details": { task: f"leaderboard/submissions/{model_id}/{task}.json" for task in leaderboard.TASKS @@ -445,17 +473,18 @@ def test_offline_report_builds_nine_task_boards_then_average() -> None: }, } ) - rows[0]["task_scores"][leaderboard.TASKS[0]] = 10.0 - rows[1]["task_scores"][leaderboard.TASKS[0]] = 20.0 - rows[0]["task_scores"][leaderboard.TASKS[1]] = 30.0 - rows[1]["task_scores"][leaderboard.TASKS[1]] = 5.0 boards = leaderboard._build_leaderboards(rows) markdown = leaderboard._render_article_suite_markdown(boards) assert len(boards) == 10 assert [board["id"] for board in boards[:-1]] == list(leaderboard.TASKS) - assert boards[-1]["id"] == leaderboard.AVERAGE_LEADERBOARD_ID + assert boards[-1]["id"] == leaderboard.FINAL_LEADERBOARD_ID + assert boards[0]["metric"] == "raw_score" + assert boards[-1]["display_transform"]["offset"] == 100.0 + assert all( + row["positive_display_score"] > 0 for row in boards[-1]["rows"] + ) assert [row["model_id"] for row in boards[0]["rows"]] == [ "model-b", "model-a", @@ -464,12 +493,11 @@ def test_offline_report_builds_nine_task_boards_then_average() -> None: "model-a", "model-b", ] - assert [row["rank"] for row in boards[2]["rows"]] == [1, 1] + assert [row["rank"] for row in boards[2]["rows"]] == [1, 2] assert [row["model_id"] for row in boards[-1]["rows"]] == [ "model-b", "model-a", ] - assert markdown.count("| Rank | Model | Harness | Effort |") == 10 - assert markdown.rstrip().split("## ")[-1].startswith( - "10. Nine-task average" - ) + assert "article_suite_task_leaderboards.png" in markdown + assert "article_suite_final_leaderboard.png" in markdown + assert "| Rank |" not in markdown diff --git a/tests/test_leaderboard_artifacts.py b/tests/test_leaderboard_artifacts.py index de1c3a0..b82e97f 100644 --- a/tests/test_leaderboard_artifacts.py +++ b/tests/test_leaderboard_artifacts.py @@ -3,6 +3,7 @@ import json import math from pathlib import Path +import struct REPO_ROOT = Path(__file__).resolve().parents[1] @@ -10,6 +11,16 @@ ARTICLE_SUITE = REPO_ROOT / "leaderboard" / "article_suite.json" ARTICLE_SUITE_MARKDOWN = REPO_ROOT / "leaderboard" / "ARTICLE_SUITE.md" ROOT_README = REPO_ROOT / "README.md" +WEBSITE = REPO_ROOT / "website" / "index.html" +WEBSITE_DATA = REPO_ROOT / "website" / "assets" / "article_suite.json" +TASK_IMAGE = REPO_ROOT / "leaderboard" / "article_suite_task_leaderboards.png" +FINAL_IMAGE = REPO_ROOT / "leaderboard" / "article_suite_final_leaderboard.png" + + +def _png_dimensions(path: Path) -> tuple[int, int]: + header = path.read_bytes()[:24] + assert header[:8] == b"\x89PNG\r\n\x1a\n" + return struct.unpack(">II", header[16:24]) def test_packaged_leaderboard_is_self_contained() -> None: @@ -47,21 +58,54 @@ def test_article_suite_leaderboard_is_complete_and_self_contained() -> None: assert [board["id"] for board in payload["leaderboards"][:-1]] == payload[ "tasks" ] - assert payload["leaderboards"][-1]["id"] == "average" - - averages = [ - row["average_normalized_score"] for row in payload["rows"] + assert payload["leaderboards"][-1]["id"] == "final" + assert payload["aggregation"]["primary_metric"] == "interquartile_mean" + assert payload["aggregation"]["trim_fraction_per_tail"] == 0.25 + assert payload["aggregation"]["trimmed_score_count_per_tail"] == 2 + assert payload["aggregation"]["retained_score_count"] == 5 + assert ( + payload["inference_settings"]["cross_provider_comparability"] + == "labels_are_not_a_shared_numeric_compute_scale" + ) + inference_by_model = { + row["model_id"]: row for row in payload["inference_settings"]["models"] + } + assert inference_by_model["gpt-5.6-sol"]["provider_reasoning_effort"] == "max" + assert inference_by_model["gpt-5.5"]["provider_reasoning_effort"] == "xhigh" + assert ( + inference_by_model["claude-opus-4.8"]["provider_reasoning_effort"] + == "max" + ) + assert ( + inference_by_model["gpt-5.4-mini"]["provider_reasoning_effort"] + == "xhigh" + ) + + final_scores = [ + row["final_normalized_score"] for row in payload["rows"] ] - assert averages == sorted(averages, reverse=True) + assert final_scores == sorted(final_scores, reverse=True) for row in payload["rows"]: assert row["harness"] == "opencode" assert set(row["task_scores"]) == set(payload["tasks"]) + assert set(row["raw_task_scores"]) == set(payload["tasks"]) + assert set(row["task_anchors"]) == set(payload["tasks"]) assert set(row["submission_details"]) == set(payload["tasks"]) + sorted_scores = sorted(row["task_scores"].values()) + expected_iqm = sum(sorted_scores[2:7]) / 5 assert math.isclose( - row["average_normalized_score"], + row["final_normalized_score"], + expected_iqm, + ) + assert math.isclose( + row["arithmetic_mean_normalized_score"], sum(row["task_scores"].values()) / payload["task_count"], ) + assert ( + row["average_normalized_score"] + == row["arithmetic_mean_normalized_score"] + ) for task, relative_score_path in row["submission_details"].items(): score_path = REPO_ROOT / relative_score_path metadata_path = score_path.with_name("metadata.json") @@ -90,27 +134,68 @@ def assert_no_absolute_artifact_paths(value: object) -> None: model_rows = {row["model_id"]: row for row in payload["rows"]} for board in payload["leaderboards"][:-1]: - scores = [row["normalized_score"] for row in board["rows"]] + scores = [row["raw_score"] for row in board["rows"]] assert scores == sorted(scores, reverse=True) assert len(board["rows"]) == len(payload["rows"]) for row in board["rows"]: - assert row["normalized_score"] == model_rows[row["model_id"]][ - "task_scores" - ][board["id"]] - - average_board = payload["leaderboards"][-1] + model_row = model_rows[row["model_id"]] + assert row["normalized_score"] == model_row["task_scores"][ + board["id"] + ] + assert row["raw_score"] == model_row["raw_task_scores"][ + board["id"] + ] + assert row["starter_score"] == model_row["task_anchors"][ + board["id"] + ]["starter_score"] + assert row["reference_score"] == model_row["task_anchors"][ + board["id"] + ]["reference_score"] + + final_board = payload["leaderboards"][-1] assert [ - row["average_normalized_score"] for row in average_board["rows"] - ] == averages + row["final_normalized_score"] for row in final_board["rows"] + ] == final_scores + assert final_board["display_transform"]["offset"] == 100.0 + assert all( + math.isclose( + row["positive_display_score"], + row["final_normalized_score"] + 100.0, + ) + for row in final_board["rows"] + ) + assert [row["model"] for row in payload["rows"]] == [ + "GPT-5.5", + "GPT-5.6 Sol", + "Claude Opus 4.8", + "GPT-5.4 Mini", + ] markdown = ARTICLE_SUITE_MARKDOWN.read_text() - assert markdown.count("| Rank | Model | Harness | Effort |") == 10 - headings = [ - line for line in markdown.splitlines() if line.startswith("## ") - ] - assert len(headings) == 10 - assert headings[-1] == "## 10. Nine-task average" + assert "article_suite_task_leaderboards.png" in markdown + assert "article_suite_final_leaderboard.png" in markdown + assert "| Rank |" not in markdown root_readme = ROOT_README.read_text() - assert "| Rank | Model | Nine-task average |" in root_readme + assert "leaderboard/article_suite_final_leaderboard.png" in root_readme + assert "leaderboard/article_suite_task_leaderboards.png" not in root_readme + assert "| Rank | Model | Nine-task average |" not in root_readme assert "## Legacy Ant-Only Leaderboard" not in root_readme + + website = WEBSITE.read_text() + assert "assets/article_suite_task_leaderboards.png" not in website + assert "assets/article_suite_final_leaderboard.png" not in website + assert '

Leaderboards

' in website + assert "Task-level view" not in website + assert 'id="taskLeaderboards"' in website + assert 'id="finalLeaderboard"' in website + assert 'id="inferenceSettings"' in website + assert "not a shared numeric compute scale" in website + assert 'fetch("assets/article_suite.json")' in website + assert json.loads(WEBSITE_DATA.read_text()) == payload + + for source in (TASK_IMAGE, FINAL_IMAGE): + assert source.is_file() + width, height = _png_dimensions(source) + assert width >= 1500 + assert height >= 800 diff --git a/website/README.md b/website/README.md index 0fc9cfc..22f26a2 100644 --- a/website/README.md +++ b/website/README.md @@ -18,9 +18,23 @@ a full humanoid. Composed from the project's own six pencil illustrations with A Page content follows the repo README: an interactive six-stage pipeline (heuristic policies → VLA training, simulation → real world → more hardware → 2.0) whose first stage embeds an interactive improvement-loop diagram on the MuJoCo Ant (assets/ant.png), an environments diagram -(simulation frameworks: Genesis, Isaac Sim, RoboCasa, MuJoCo · real-world operation), and the -research background. GenesisBench 1.0 — language intelligence → physical intelligence; -2.0 — world intelligence. +(simulation frameworks: Genesis, Isaac Sim, RoboCasa, MuJoCo · real-world operation), article-suite +results with task and final leaderboard images, and the research background. GenesisBench 1.0 — +language intelligence → physical intelligence; 2.0 — world intelligence. + +The website copies `leaderboard/article_suite.json` to +`website/assets/article_suite.json` and renders both plots as responsive native +HTML/CSS. No raster leaderboard image is embedded on the page. + +Offline README/report images are generated separately by: + +```bash +uv run python scripts/plot_article_suite_leaderboards.py +``` + +The HTML task panels use native raw environment scores. The final HTML plot +uses a fixed positive display index (`IQM + 100`) while retaining raw IQM as +the official ranking metric. ## Deploy — genesisbench.benchflow.ai (Vercel, same as clawsbench) diff --git a/website/assets/article_suite.json b/website/assets/article_suite.json new file mode 100644 index 0000000..b490741 --- /dev/null +++ b/website/assets/article_suite.json @@ -0,0 +1,1278 @@ +{ + "aggregation": { + "display_transform": { + "formula": "positive_display_score = final_normalized_score + 100", + "offset": 100.0, + "purpose": "plot_only", + "ranking_field": "final_normalized_score", + "type": "additive_offset" + }, + "primary_field": "final_normalized_score", + "primary_metric": "interquartile_mean", + "retained_score_count": 5, + "score_bounds": "unbounded", + "secondary_fields": [ + "arithmetic_mean_normalized_score", + "median_normalized_score" + ], + "trim_fraction_per_tail": 0.25, + "trimmed_score_count_per_tail": 2, + "uncertainty": "not_estimated_single_run_per_model_task" + }, + "benchmark": "learning_beyond_gradients_article_suite", + "generated_at": "2026-07-13T15:34:22.260689+00:00", + "inference_settings": { + "cross_provider_comparability": "labels_are_not_a_shared_numeric_compute_scale", + "field": "provider_reasoning_effort", + "interpretation": "provider_specific_categorical_setting", + "models": [ + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max" + }, + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh" + } + ] + }, + "leaderboard_count": 10, + "leaderboards": [ + { + "id": "simulation_heuristics_ant_v1", + "label": "Ant", + "metric": "raw_score", + "raw_metric": { + "label": "Weighted hidden return", + "unit": "return" + }, + "rows": [ + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 39.203600385, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 3815.360622145591, + "reference_score": 5942.333244755838, + "source_run": "leaderboard/runs/article_suite/20260713T093815Z/gpt-5.6-sol", + "starter_score": 2443.815838992282, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_ant_v1/score.json" + }, + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 14.050353128, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_score": 2935.3698887625987, + "reference_score": 5942.333244755838, + "source_run": "leaderboard/runs/article_suite/20260713T142919Z/claude-opus-4.8", + "starter_score": 2443.815838992282, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_ant_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": -16.891796576, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 3, + "raw_score": 1852.8533956222025, + "reference_score": 5942.333244755838, + "source_run": "leaderboard/runs/article_suite/20260713T095807Z/gpt-5.5", + "starter_score": 2443.815838992282, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_ant_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": -31.35954984, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4, + "raw_score": 1346.6965294546999, + "reference_score": 5942.333244755838, + "source_run": "leaderboard/runs/article_suite/20260713T104315Z/gpt-5.4-mini", + "starter_score": 2443.815838992282, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_ant_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_pong_ram_v1", + "label": "Pong", + "metric": "raw_score", + "raw_metric": { + "label": "Native Pong score", + "unit": "points" + }, + "rows": [ + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 100.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 21.0, + "reference_score": 21.0, + "source_run": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "starter_score": -2.9999999999999996, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_pong_ram_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 52.916666667, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_score": 9.7, + "reference_score": 21.0, + "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": -2.9999999999999996, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_pong_ram_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 45.833333333, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 3, + "raw_score": 8.0, + "reference_score": 21.0, + "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": -2.9999999999999996, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_pong_ram_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": -75.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4, + "raw_score": -21.0, + "reference_score": 21.0, + "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": -2.9999999999999996, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_pong_ram_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_breakout_ram_v1", + "label": "Breakout RAM", + "metric": "raw_score", + "raw_metric": { + "label": "Native Breakout return", + "unit": "points" + }, + "rows": [ + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 100.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 864.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": 387.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_ram_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 95.597484277, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 2, + "raw_score": 843.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 387.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_ram_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": 2.51572327, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 3, + "raw_score": 399.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": 387.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_ram_v1/score.json" + }, + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 4, + "raw_score": 387.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "starter_score": 387.0, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_ram_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_breakout_rgb_v1", + "label": "Breakout RGB", + "metric": "raw_score", + "raw_metric": { + "label": "Native Breakout return", + "unit": "points" + }, + "rows": [ + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 70.758122744, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 1, + "raw_score": 702.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 310.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_rgb_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 70.758122744, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 702.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": 310.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_rgb_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": 15.523465704, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 3, + "raw_score": 396.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": 310.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_rgb_v1/score.json" + }, + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 4, + "raw_score": 310.0, + "reference_score": 864.0, + "source_run": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "starter_score": 310.0, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_rgb_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_halfcheetah_v1", + "label": "HalfCheetah", + "metric": "raw_score", + "raw_metric": { + "label": "Weighted hidden return", + "unit": "return" + }, + "rows": [ + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 26.986707946, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 6021.504892591717, + "reference_score": 11487.256451471967, + "source_run": "leaderboard/runs/article_suite/20260713T111714Z/claude-opus-4.8", + "starter_score": 4001.2886158917113, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_halfcheetah_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 15.873072595, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_score": 5189.541724894487, + "reference_score": 11487.256451471967, + "source_run": "leaderboard/runs/article_suite/20260713T084340Z/gpt-5.6-sol", + "starter_score": 4001.2886158917113, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_halfcheetah_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 2.73755349, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 3, + "raw_score": 4206.220989602626, + "reference_score": 11487.256451471967, + "source_run": "leaderboard/runs/article_suite/20260713T103810Z/gpt-5.5", + "starter_score": 4001.2886158917113, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_halfcheetah_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": -8.167582379, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4, + "raw_score": 3389.8660260183765, + "reference_score": 11487.256451471967, + "source_run": "leaderboard/runs/article_suite/20260713T093314Z/gpt-5.4-mini", + "starter_score": 4001.2886158917113, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_halfcheetah_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_vizdoom_d1_v1", + "label": "VizDoom D1", + "metric": "raw_score", + "raw_metric": { + "label": "Native D1 mean reward", + "unit": "reward" + }, + "rows": [ + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 95.055812742, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 0.7992199431359768, + "reference_score": 0.8178199748694897, + "source_run": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "starter_score": 0.44161998964846133, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d1_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 85.199359782, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 2, + "raw_score": 0.7621399685554205, + "reference_score": 0.8178199748694897, + "source_run": "leaderboard/runs/article_suite/20260713T102218Z/gpt-5.5", + "starter_score": 0.44161998964846133, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d1_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 49.409889366, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 3, + "raw_score": 0.62749998614192, + "reference_score": 0.8178199748694897, + "source_run": "leaderboard/runs/article_suite/20260713T101636Z/gpt-5.6-sol", + "starter_score": 0.44161998964846133, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d1_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": -161.116433137, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4, + "raw_score": -0.16450000800192355, + "reference_score": 0.8178199748694897, + "source_run": "leaderboard/runs/article_suite/20260713T102707Z/gpt-5.4-mini", + "starter_score": 0.44161998964846133, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d1_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_vizdoom_d3_v1", + "label": "VizDoom D3", + "metric": "raw_score", + "raw_metric": { + "label": "Native D3 mean reward", + "unit": "reward" + }, + "rows": [ + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 122.259358289, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 397.7, + "reference_score": 331.1, + "source_run": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "starter_score": 31.9, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 26.236631016, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_score": 110.39999999999998, + "reference_score": 331.1, + "source_run": "leaderboard/runs/article_suite/20260713T083940Z/gpt-5.6-sol", + "starter_score": 31.9, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 5.481283422, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 3, + "raw_score": 48.3, + "reference_score": 331.1, + "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 31.9, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": -9.859625668, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4, + "raw_score": 2.4, + "reference_score": 331.1, + "source_run": "leaderboard/runs/article_suite/20260713T104034Z/gpt-5.4-mini", + "starter_score": 31.9, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d3_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_atari57_v1", + "label": "Atari57", + "metric": "raw_score", + "raw_metric": { + "label": "Median best-mode HNS", + "unit": "HNS" + }, + "rows": [ + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, + "source_run": "leaderboard/runs/article_suite/20260713T123222Z/claude-opus-4.8", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_atari57_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, + "source_run": "leaderboard/runs/article_suite/20260713T111944Z/gpt-5.4-mini", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_atari57_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, + "source_run": "leaderboard/runs/article_suite/20260713T111604Z/gpt-5.5", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_atari57_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 1, + "raw_score": 0.0, + "reference_score": 0.8283015254994576, + "source_run": "leaderboard/runs/article_suite/20260713T111156Z/gpt-5.6-sol", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_atari57_v1/score.json" + } + ] + }, + { + "id": "simulation_heuristics_montezuma_v1", + "label": "Montezuma's Revenge", + "metric": "raw_score", + "raw_metric": { + "label": "Capped native return", + "unit": "points" + }, + "rows": [ + { + "harness": "opencode", + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "normalized_score": 100.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 1, + "raw_score": 400.0, + "reference_score": 400.0, + "source_run": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_montezuma_v1/score.json" + }, + { + "harness": "opencode", + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "normalized_score": 0.0, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_score": 0.0, + "reference_score": 400.0, + "source_run": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_montezuma_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 2, + "raw_score": 0.0, + "reference_score": 400.0, + "source_run": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_montezuma_v1/score.json" + }, + { + "harness": "opencode", + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "normalized_score": 0.0, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_score": 0.0, + "reference_score": 400.0, + "source_run": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "starter_score": 0.0, + "submission_detail": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_montezuma_v1/score.json" + } + ] + }, + { + "display_metric": "positive_display_score", + "display_transform": { + "formula": "positive_display_score = final_normalized_score + 100", + "offset": 100.0, + "purpose": "plot_only", + "type": "additive_offset" + }, + "id": "final", + "label": "Final normalized score", + "metric": "final_normalized_score", + "rows": [ + { + "arithmetic_mean_normalized_score": 43.19059338577778, + "average_normalized_score": 43.19059338577778, + "final_normalized_score": 42.0019305542, + "harness": "opencode", + "median_normalized_score": 45.833333333, + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "positive_display_score": 142.0019305542, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 1 + }, + { + "arithmetic_mean_normalized_score": 39.37755364144445, + "average_normalized_score": 39.37755364144445, + "final_normalized_score": 36.7279720058, + "harness": "opencode", + "median_normalized_score": 39.203600385, + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "positive_display_score": 136.72797200579998, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 2 + }, + { + "arithmetic_mean_normalized_score": 39.81691467833333, + "average_normalized_score": 39.81691467833333, + "final_normalized_score": 27.218574763200003, + "harness": "opencode", + "median_normalized_score": 14.050353128, + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "positive_display_score": 127.2185747632, + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 3 + }, + { + "arithmetic_mean_normalized_score": -29.71822245, + "average_normalized_score": -29.71822245, + "final_normalized_score": -9.8773515774, + "harness": "opencode", + "median_normalized_score": -8.167582379, + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "positive_display_score": 90.1226484226, + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4 + } + ] + } + ], + "rows": [ + { + "arithmetic_mean_normalized_score": 43.19059338577778, + "average_normalized_score": 43.19059338577778, + "final_normalized_score": 42.0019305542, + "harness": "opencode", + "median_normalized_score": 45.833333333, + "model": "GPT-5.5", + "model_id": "gpt-5.5", + "model_route": "azure/gpt-5.5", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 1, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 1852.8533956222025, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 843.0, + "simulation_heuristics_breakout_rgb_v1": 702.0, + "simulation_heuristics_halfcheetah_v1": 4206.220989602626, + "simulation_heuristics_montezuma_v1": 400.0, + "simulation_heuristics_pong_ram_v1": 8.0, + "simulation_heuristics_vizdoom_d1_v1": 0.7621399685554205, + "simulation_heuristics_vizdoom_d3_v1": 48.3 + }, + "source_runs": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T095807Z/gpt-5.5", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111604Z/gpt-5.5", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T103810Z/gpt-5.5", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T102218Z/gpt-5.5", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5" + }, + "submission_details": { + "simulation_heuristics_ant_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_ant_v1/score.json", + "simulation_heuristics_atari57_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_atari57_v1/score.json", + "simulation_heuristics_breakout_ram_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_ram_v1/score.json", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_breakout_rgb_v1/score.json", + "simulation_heuristics_halfcheetah_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_halfcheetah_v1/score.json", + "simulation_heuristics_montezuma_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_montezuma_v1/score.json", + "simulation_heuristics_pong_ram_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_pong_ram_v1/score.json", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d1_v1/score.json", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/gpt-5.5/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, + "task_scores": { + "simulation_heuristics_ant_v1": -16.891796576, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 95.597484277, + "simulation_heuristics_breakout_rgb_v1": 70.758122744, + "simulation_heuristics_halfcheetah_v1": 2.73755349, + "simulation_heuristics_montezuma_v1": 100.0, + "simulation_heuristics_pong_ram_v1": 45.833333333, + "simulation_heuristics_vizdoom_d1_v1": 85.199359782, + "simulation_heuristics_vizdoom_d3_v1": 5.481283422 + } + }, + { + "arithmetic_mean_normalized_score": 39.37755364144445, + "average_normalized_score": 39.37755364144445, + "final_normalized_score": 36.7279720058, + "harness": "opencode", + "median_normalized_score": 39.203600385, + "model": "GPT-5.6 Sol", + "model_id": "gpt-5.6-sol", + "model_route": "azure/gpt-5.6-sol", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "max", + "rank": 2, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 3815.360622145591, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 864.0, + "simulation_heuristics_breakout_rgb_v1": 702.0, + "simulation_heuristics_halfcheetah_v1": 5189.541724894487, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 9.7, + "simulation_heuristics_vizdoom_d1_v1": 0.62749998614192, + "simulation_heuristics_vizdoom_d3_v1": 110.39999999999998 + }, + "source_runs": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T093815Z/gpt-5.6-sol", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111156Z/gpt-5.6-sol", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T084340Z/gpt-5.6-sol", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T101636Z/gpt-5.6-sol", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T083940Z/gpt-5.6-sol" + }, + "submission_details": { + "simulation_heuristics_ant_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_ant_v1/score.json", + "simulation_heuristics_atari57_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_atari57_v1/score.json", + "simulation_heuristics_breakout_ram_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_ram_v1/score.json", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_breakout_rgb_v1/score.json", + "simulation_heuristics_halfcheetah_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_halfcheetah_v1/score.json", + "simulation_heuristics_montezuma_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_montezuma_v1/score.json", + "simulation_heuristics_pong_ram_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_pong_ram_v1/score.json", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d1_v1/score.json", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/gpt-5.6-sol/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, + "task_scores": { + "simulation_heuristics_ant_v1": 39.203600385, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 100.0, + "simulation_heuristics_breakout_rgb_v1": 70.758122744, + "simulation_heuristics_halfcheetah_v1": 15.873072595, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 52.916666667, + "simulation_heuristics_vizdoom_d1_v1": 49.409889366, + "simulation_heuristics_vizdoom_d3_v1": 26.236631016 + } + }, + { + "arithmetic_mean_normalized_score": 39.81691467833333, + "average_normalized_score": 39.81691467833333, + "final_normalized_score": 27.218574763200003, + "harness": "opencode", + "median_normalized_score": 14.050353128, + "model": "Claude Opus 4.8", + "model_id": "claude-opus-4.8", + "model_route": "anthropic/claude-opus-4-8", + "provider": "claude_oauth", + "provider_label": "Claude OAuth via pinned OpenCode plugin", + "provider_reasoning_effort": "max", + "rank": 3, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 2935.3698887625987, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 387.0, + "simulation_heuristics_breakout_rgb_v1": 310.0, + "simulation_heuristics_halfcheetah_v1": 6021.504892591717, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 21.0, + "simulation_heuristics_vizdoom_d1_v1": 0.7992199431359768, + "simulation_heuristics_vizdoom_d3_v1": 397.7 + }, + "source_runs": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T142919Z/claude-opus-4.8", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T123222Z/claude-opus-4.8", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T111714Z/claude-opus-4.8", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8" + }, + "submission_details": { + "simulation_heuristics_ant_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_ant_v1/score.json", + "simulation_heuristics_atari57_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_atari57_v1/score.json", + "simulation_heuristics_breakout_ram_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_ram_v1/score.json", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_breakout_rgb_v1/score.json", + "simulation_heuristics_halfcheetah_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_halfcheetah_v1/score.json", + "simulation_heuristics_montezuma_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_montezuma_v1/score.json", + "simulation_heuristics_pong_ram_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_pong_ram_v1/score.json", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d1_v1/score.json", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/claude-opus-4.8/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, + "task_scores": { + "simulation_heuristics_ant_v1": 14.050353128, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 0.0, + "simulation_heuristics_breakout_rgb_v1": 0.0, + "simulation_heuristics_halfcheetah_v1": 26.986707946, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": 100.0, + "simulation_heuristics_vizdoom_d1_v1": 95.055812742, + "simulation_heuristics_vizdoom_d3_v1": 122.259358289 + } + }, + { + "arithmetic_mean_normalized_score": -29.71822245, + "average_normalized_score": -29.71822245, + "final_normalized_score": -9.8773515774, + "harness": "opencode", + "median_normalized_score": -8.167582379, + "model": "GPT-5.4 Mini", + "model_id": "gpt-5.4-mini", + "model_route": "azure/gpt-5.4-mini", + "provider": "azure", + "provider_label": "Azure direct", + "provider_reasoning_effort": "xhigh", + "rank": 4, + "raw_task_scores": { + "simulation_heuristics_ant_v1": 1346.6965294546999, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 399.0, + "simulation_heuristics_breakout_rgb_v1": 396.0, + "simulation_heuristics_halfcheetah_v1": 3389.8660260183765, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": -21.0, + "simulation_heuristics_vizdoom_d1_v1": -0.16450000800192355, + "simulation_heuristics_vizdoom_d3_v1": 2.4 + }, + "source_runs": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T104315Z/gpt-5.4-mini", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111944Z/gpt-5.4-mini", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T093314Z/gpt-5.4-mini", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T102707Z/gpt-5.4-mini", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T104034Z/gpt-5.4-mini" + }, + "submission_details": { + "simulation_heuristics_ant_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_ant_v1/score.json", + "simulation_heuristics_atari57_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_atari57_v1/score.json", + "simulation_heuristics_breakout_ram_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_ram_v1/score.json", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_breakout_rgb_v1/score.json", + "simulation_heuristics_halfcheetah_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_halfcheetah_v1/score.json", + "simulation_heuristics_montezuma_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_montezuma_v1/score.json", + "simulation_heuristics_pong_ram_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_pong_ram_v1/score.json", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d1_v1/score.json", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/article_suite_submissions/gpt-5.4-mini/simulation_heuristics_vizdoom_d3_v1/score.json" + }, + "task_anchors": { + "simulation_heuristics_ant_v1": { + "reference_score": 5942.333244755838, + "starter_score": 2443.815838992282 + }, + "simulation_heuristics_atari57_v1": { + "reference_score": 0.8283015254994576, + "starter_score": 0.0 + }, + "simulation_heuristics_breakout_ram_v1": { + "reference_score": 864.0, + "starter_score": 387.0 + }, + "simulation_heuristics_breakout_rgb_v1": { + "reference_score": 864.0, + "starter_score": 310.0 + }, + "simulation_heuristics_halfcheetah_v1": { + "reference_score": 11487.256451471967, + "starter_score": 4001.2886158917113 + }, + "simulation_heuristics_montezuma_v1": { + "reference_score": 400.0, + "starter_score": 0.0 + }, + "simulation_heuristics_pong_ram_v1": { + "reference_score": 21.0, + "starter_score": -2.9999999999999996 + }, + "simulation_heuristics_vizdoom_d1_v1": { + "reference_score": 0.8178199748694897, + "starter_score": 0.44161998964846133 + }, + "simulation_heuristics_vizdoom_d3_v1": { + "reference_score": 331.1, + "starter_score": 31.9 + } + }, + "task_scores": { + "simulation_heuristics_ant_v1": -31.35954984, + "simulation_heuristics_atari57_v1": 0.0, + "simulation_heuristics_breakout_ram_v1": 2.51572327, + "simulation_heuristics_breakout_rgb_v1": 15.523465704, + "simulation_heuristics_halfcheetah_v1": -8.167582379, + "simulation_heuristics_montezuma_v1": 0.0, + "simulation_heuristics_pong_ram_v1": -75.0, + "simulation_heuristics_vizdoom_d1_v1": -161.116433137, + "simulation_heuristics_vizdoom_d3_v1": -9.859625668 + } + } + ], + "source_runs": { + "claude-opus-4.8": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T142919Z/claude-opus-4.8", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T123222Z/claude-opus-4.8", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T111714Z/claude-opus-4.8", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T090958Z/claude-opus-4.8", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T110612Z/claude-opus-4.8" + }, + "gpt-5.4-mini": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T104315Z/gpt-5.4-mini", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111944Z/gpt-5.4-mini", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T093314Z/gpt-5.4-mini", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T091939Z/gpt-5.4-mini", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T102707Z/gpt-5.4-mini", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T104034Z/gpt-5.4-mini" + }, + "gpt-5.5": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T095807Z/gpt-5.5", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111604Z/gpt-5.5", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T103810Z/gpt-5.5", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T102218Z/gpt-5.5", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T084111Z/gpt-5.5" + }, + "gpt-5.6-sol": { + "simulation_heuristics_ant_v1": "leaderboard/runs/article_suite/20260713T093815Z/gpt-5.6-sol", + "simulation_heuristics_atari57_v1": "leaderboard/runs/article_suite/20260713T111156Z/gpt-5.6-sol", + "simulation_heuristics_breakout_ram_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_breakout_rgb_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_halfcheetah_v1": "leaderboard/runs/article_suite/20260713T084340Z/gpt-5.6-sol", + "simulation_heuristics_montezuma_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_pong_ram_v1": "leaderboard/runs/article_suite/20260713T080935Z/gpt-5.6-sol", + "simulation_heuristics_vizdoom_d1_v1": "leaderboard/runs/article_suite/20260713T101636Z/gpt-5.6-sol", + "simulation_heuristics_vizdoom_d3_v1": "leaderboard/runs/article_suite/20260713T083940Z/gpt-5.6-sol" + } + }, + "task_count": 9, + "task_digest_compatibility": { + "simulation_heuristics_ant_v1": { + "sha256:9da0e00147cf66804e6c2fc17869606bea8f260850c5447989a8880eef940d45": "Score-equivalent to the current task. The later change adds only a CI smoke config and documentation; the publication scoring config is unchanged.", + "sha256:bbb533da0cb86459f4d49dee667e6c73ac54c0188bc40e54e911d50ef3c3bc38": "Score-equivalent to the current task. Later changes add a fail-closed verifier timeout plus a CI-only smoke config and documentation; the publication scoring config is unchanged." + }, + "simulation_heuristics_halfcheetah_v1": { + "sha256:80c439f53e4ab964f9d7443cd7fb8f25cf6645a0bc288b0496b871c1800ebe78": "Score-equivalent to the current task. The later loader fix registers submitted modules before execution so postponed dataclass annotations import correctly; scoring is unchanged." + }, + "simulation_heuristics_vizdoom_d1_v1": { + "sha256:b3431b238bec4e66af6189d30bcd15d5cd227144dfe8bf0dd1011aa5416c1436": "Score-equivalent to the current task. The later loader fix registers submitted modules before execution so postponed dataclass annotations import correctly; scoring is unchanged." + }, + "simulation_heuristics_vizdoom_d3_v1": { + "sha256:fcc6ed05673b7981aa17d60ca4e0d355fbcb57a6cbca293c0fa201ab97cdd081": "Score-equivalent to the current task. The later loader fix registers submitted modules before execution so postponed dataclass annotations import correctly; scoring is unchanged." + } + }, + "tasks": [ + "simulation_heuristics_ant_v1", + "simulation_heuristics_pong_ram_v1", + "simulation_heuristics_breakout_ram_v1", + "simulation_heuristics_breakout_rgb_v1", + "simulation_heuristics_halfcheetah_v1", + "simulation_heuristics_vizdoom_d1_v1", + "simulation_heuristics_vizdoom_d3_v1", + "simulation_heuristics_atari57_v1", + "simulation_heuristics_montezuma_v1" + ] +} diff --git a/website/index.html b/website/index.html index 0aac83b..60f799b 100644 --- a/website/index.html +++ b/website/index.html @@ -225,7 +225,72 @@ .env-root{margin-bottom:1rem} .env-grid{grid-template-columns:1fr;margin-top:0;gap:2.4rem} .env-mid{position:static;transform:none;justify-self:center;order:2;margin:-1.6rem 0} - .env-card:first-child{order:1}.env-card:last-child{order:3} +.env-card:first-child{order:1}.env-card:last-child{order:3} +} + +/* leaderboard results */ +.results-stack{display:grid;gap:clamp(1.5rem,3vw,2.4rem);margin-top:clamp(1.8rem,3vw,2.5rem)} +.result-panel{background:var(--card);border:1px solid var(--line);border-radius:8px; + padding:clamp(1rem,2.2vw,1.5rem);overflow:hidden} +.result-panel>h3{font-size:clamp(1.15rem,2vw,1.45rem);margin-bottom:.35rem} +.result-note{font-size:.875rem;line-height:1.5;color:var(--ink-soft);margin-bottom:1.2rem} +.inference-panel{margin-top:1.4rem;padding:1rem 1.1rem;border:1px solid var(--line); + border-radius:8px;background:var(--card)} +.inference-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1rem} +.inference-head h3{font-size:1rem;font-weight:600} +.inference-head p{font-size:.75rem;color:var(--ink-soft)} +.inference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem;margin-top:.8rem} +.inference-card{padding:.72rem .8rem;border:1px solid var(--line);border-radius:5px;background:var(--paper)} +.inference-model{display:block;font-size:.82rem;font-weight:600;color:var(--forest-ink)} +.inference-route{display:block;margin-top:.12rem;font-size:.64rem;line-height:1.35;color:var(--ink-soft); + overflow-wrap:anywhere} +.inference-effort{display:inline-flex;margin-top:.45rem;padding:.12rem .42rem;border:1px solid var(--line-strong); + border-radius:999px;font-size:.65rem;font-weight:600;color:var(--forest-ink)} +.leaderboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17.5rem,1fr));gap:1rem} +.chart-card{min-width:0;border:1px solid var(--line);border-radius:6px;padding:.9rem; + background:var(--paper);overflow:hidden} +.chart-card h4{font-size:.9875rem;font-weight:600;letter-spacing:-.01em} +.chart-metric{display:block;margin-top:.12rem;font-size:.7rem;color:var(--ink-soft);line-height:1.35} +.chart-body{display:grid;grid-template-columns:5.2rem minmax(0,1fr) 3.7rem; + gap:.35rem;align-items:stretch;min-width:0;margin-top:.8rem} +.chart-labels,.chart-values,.chart-bars{display:grid;grid-template-rows:repeat(4,16px);gap:.48rem} +.chart-model{font-size:.69rem;line-height:16px;color:var(--ink);overflow-wrap:anywhere} +.chart-value{font-size:.72rem;line-height:16px;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right} +.chart-plot{position:relative;min-width:0;background: + repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--line) 25%)} +.chart-zero,.chart-anchor{position:absolute;top:0;bottom:0;width:1px;pointer-events:none} +.chart-zero{background:var(--forest-ink);opacity:.55} +.chart-anchor{border-left:1px dashed var(--gold)} +.chart-anchor.is-starter{border-left-style:dotted} +.chart-bars{position:relative;z-index:1} +.chart-bar-row{position:relative;height:16px} +.chart-bar{position:absolute;top:2px;height:12px;min-width:2px;border-radius:1px;background:#555} +.model-gpt-5-5{background:#111}.model-gpt-5-6-sol{background:#4b4b4b} +.model-claude-opus-4-8{background:#858585}.model-gpt-5-4-mini{background:#b7b7b7} +.chart-anchors{display:flex;justify-content:space-between;gap:.6rem;margin-top:.7rem; + font-size:.64rem;line-height:1.25;color:var(--ink-soft);font-variant-numeric:tabular-nums} +.final-board{display:grid;gap:.75rem;margin-top:1rem} +.final-row{display:grid;grid-template-columns:minmax(8.8rem,1fr) minmax(12rem,3fr) minmax(8rem,auto); + gap:.8rem;align-items:center} +.final-model{font-size:.9rem;font-weight:500} +.final-plot{position:relative;height:30px;background: + repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),var(--line) 20%)} +.final-plot .chart-anchor{top:-4px;bottom:-4px} +.final-bar{position:absolute;left:0;top:4px;height:22px;border-radius:1px;background:#555} +.final-value{font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right} +.final-value small{display:block;font-size:.68rem;font-weight:400;color:var(--ink-soft)} +.chart-error{padding:1rem;border:1px dashed var(--line-strong);border-radius:6px;color:var(--ink-soft)} +.result-actions{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;margin-top:1.2rem;font-size:.9rem} +.result-actions a{color:var(--forest);text-decoration:underline;text-underline-offset:3px; + text-decoration-color:color-mix(in srgb,var(--forest) 35%,transparent)} +.result-actions a:hover{text-decoration-color:var(--forest)} +@media(max-width:680px){ + .leaderboard-grid{grid-template-columns:1fr} + .chart-body{grid-template-columns:5.2rem minmax(0,1fr) 3.7rem} + .final-row{grid-template-columns:1fr} + .final-plot{height:26px}.final-bar{height:18px} + .final-value{text-align:left;display:flex;align-items:baseline;gap:.6rem} + .final-value small{display:inline} } /* research list */ @@ -275,6 +340,7 @@
@@ -410,6 +476,46 @@

Real-world operation

+ +
+
+

Results

+
+

Four coding models, nine article-derived tasks, one robust cross-task score.

+

The task panels show each environment's native raw score. Cross-task ranking first normalizes each task so the public starter scores 0 and the trusted article-level reference scores 100, then uses the interquartile mean: remove the lowest two and highest two task scores and average the middle five.

+ +
+
+

Leaderboards

+

Native raw score for each environment. Dotted markers show the starter; dashed markers show the article reference.

+
+

Loading task leaderboards…

+
+
+
+

Final normalized score

+

Positive display index = IQM + 100. Ranking and score gaps are unchanged; the dotted marker is the starter-level aggregate.

+
+

Loading final leaderboard…

+
+
+
+ +
+
+
+
@@ -643,5 +749,126 @@

Research background

})(); + +