Repository navigation
🗃️ Read .evolve run files directly instead of Evolve exports - #9
Merged
Merged
Conversation
Evolve Charts now reads the datakit Parquet tables in the .evolve file Evolve saves for every run, and calculates the scores the way Evolve does, with multipliers generated from score.rs by tools/sync_scores.py. The Export zip, CSV and deep analysis JSON inputs are gone. sync_categories.py no longer swallows the arm after a single-line vec![...], includes Evolve's deprecated pass names, and writes LF. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One .evolve file is one run with every table, so the loop column, the optional per-frame tables and the Per frame card entry go. The Android guide and script now pull the .evolve files instead of CLI exports. 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
Evolve Charts read Evolve's exports: the Export zip, the CSVs and
deep_analysis.json. Since Evolve records runs as datakit files (https://github.com/Traverse-Research/evolve/pull/3228), the per-frame sensor fields indeep_analysis.jsonwere renamed, so every sensor chart for a new export came out empty. The pass-to-workload catalog was also stale (https://github.com/Traverse-Research/evolve/pull/3072, https://github.com/Traverse-Research/evolve/pull/3320).Evolve already saves every run as a
.evolvefile with all measurements in Parquet tables, so exporting was an extra step that also produced a 25× larger file.Changes
.evolvefiles directly (loader.py): the zip's Parquet tables are read with pyarrow, and the tool no longer accepts the Export zip, CSVs ordeep_analysis.json.framestable, passes fromgpu_scopes, sensors frommetrics(each frame takes the latest sample, like Evolve's exports) and system info from theclient_datadocument..evolvefile is one run, so theloopcolumn and loop averaging are dropped, the per-frame and sensor tables are always present, and result cards no longer list "Per frame".scores.py):.evolvefiles hold the measurements, not the scores. GPU, Driver, Energy and image quality scores are ported fromevolve-datakit-scores, including Rust's f32 maths so the integers match.tools/sync_scores.py→score_catalog.py): the multipliers per benchmark and platform, the score names, and the phone Driver multipliers for runs before 17.0 are all read fromscore.rs.tools/sync_categories.py):vec![...]arm silently swallowed the next arm, which had emptied the list of uncategorized passes.pipelines_list_deprecatedare now included, which Evolve also counts, so older runs stay comparable (e.g.channel_animation).scope_catalog.pyfrom current Evolve..evolvefiles, and the auto-load folder is nowresults/instead ofexports/.run_on_android.pynow pull the.evolvefiles fromfiles/Documents/resultsinstead of CLI exports.pyarrowis now declared explicitly. It was already installed through Streamlit, so the locked versions don't change.Evidence
A debug
ray-tracing-inlinerun at 4x speed (RTX 4070 Ti, driver 621.14, Windows 11, DX12, Evolve 17.0), loaded both from its.evolvefile with this branch and from its CLI exports with the previous JSON/CSV loader:.evolve(this PR)scores.csv)deep_analysis.jsonOn the same run,
main's loader read no sensor values fromdeep_analysis.json(0 of 3,361 frames). Every page of the app renders charts from the.evolvefile without errors.🤖 Generated with Claude Code