Repository navigation
馃搳 Add Evolve Charts: compare Evolve results without Python or git - #8
Merged
Merged
Conversation
A local Streamlit app, styled like Evolve, for journalists who don't know Python or git. It reads every Evolve export (the score screen's Export zip, evolve_results.csv, scores.csv, the per-frame CSV and deep_analysis.json) and has a page per question: Results, Scores, GPU time per workload category and per pass, GPU sensors and CSV export. Charts download as PNG or SVG with a source line. Which pass belongs to which workload category is generated from Evolve's frame bucketing source by tools/sync_categories.py. Downloadable without git: tools/package.py builds Evolve-Charts.zip with double-click launchers for Windows and macOS, and a release workflow publishes it on v* tags. Dependencies are locked in evolve-charts.py.lock. Replaces the old compare_deep_analysis.py script. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Journalists need to compare Evolve results (scores, GPU time per workload category and per pass, GPU sensors) across GPUs, but evolve-scripts only had a two-file CSV comparison script and unmerged Jupyter notebooks, which need Python and git to use.
This tool gives users a way to inspect their own Evolve data with a script authored by us. Ultimately this inspection tooling should live on our website, as part of the hall of fame. This is a starting point for quickly prototyping functionality and comparison graphs, so we learn what information and graphs we need before building the proper version.
Changes
Evolve Charts, a local Streamlit app in Evolve's styling (
ui/styling.rscolours, Spartan, logo). Pages:Charts download as PNG or SVG with a source line (GPU, driver, Evolve version). Nothing leaves the machine.
Reads every Evolve export: the score screen's Export zip (with or without deep analysis),
evolve_results.csv,scores.csv, the per-frame CSV anddeep_analysis.json. Pages leave out results that lack the data they need and say so.Pass mapping from Evolve's source:
tools/sync_categories.pygenerates the pass-to-workload-category mapping fromevolve-frame-bucketing. Passes Evolve doesn't categorise are left out of totals and reported. Copies, clears and other utility work are hidden from the Passes page.Downloadable without git:
tools/package.pybuildsEvolve-Charts.zipwith double-click launchers for Windows (.bat) and macOS (.command).uvon first start.evolve-charts.py.lock.release.ymlpublishes the zip onv*tags, soreleases/latest/download/Evolve-Charts.zipis a stable link.ci.ymlruns ruff and pytest on PRs.Removes the old
compare_deep_analysis.pyand itsrequirements.txt. The README is rewritten as a journalist quick start.Evidence
Real exports: tested with six exports from Evolve 16.0 (
main, same breda revision on both platforms):The mapping reproduces Evolve's own numbers. Summing each workload category's passes from deep analysis matches Evolve's per-frame CSV exactly (4070 Ti hybrid inline):
Uncategorised work left out: 0.145 ms per frame (
egui_render,fallback-upscaler).Download path: the release zip was extracted into an empty folder and started through its own launcher with a clean uv cache. It installed the locked packages (Streamlit 1.65.0, Plotly 7.1.0, pandas 3.0.6), loaded the export from its
exportsfolder, and showed the theme and version.Browser checks: every page was checked in Chrome via Playwright with no exceptions, and PNG downloads were inspected.
Not tested: the Windows
.batand macOS.commandon real machines, and the GitHub workflows themselves.Found along the way (Evolve side):
Examples
馃 Generated with Claude Code