Model card: no Steam player FPS is used; only 79 of 1,697 benchmark curves carry outside data
Browse files
README.md
CHANGED
|
@@ -77,7 +77,7 @@ model-index:
|
|
| 77 |
|
| 78 |
A small tabular model that estimates the native frame rate of a PC game at 1080p, 1440p or 4K from two things you can know before buying or installing: the PC's hardware scores and the game's Steam store requirements. It is the FPS engine of the [CanRun G-Assist plugin](https://mod.io/g/g-assist/m/canrun2#description) and runs with the Python standard library alone.
|
| 79 |
|
| 80 |
-
**Real-world accuracy:** on independent benchmarks the model alone is a median 18.9% off on recent games and NVIDIA cards, and 37% to 39% off on other test sets. The full CanRun app, which adds benchmark curves and live Steam lookups, is 15.2% off end to end. Treat every prediction as a rough estimate, good for "will this run at 60 FPS?" and not for exact numbers.
|
| 81 |
|
| 82 |
**Try it:** the [CanRun Space](https://huggingface.co/spaces/grasant/canrun) runs this model alone. Pick a GPU, CPU, RAM and resolution, type a game, and it reads the live Steam store specs.
|
| 83 |
|
|
@@ -118,7 +118,7 @@ All four tests can be rerun with `evaluate_demo_end_to_end.py`, `evaluate_extern
|
|
| 118 |
### How the CanRun app improves on the model
|
| 119 |
|
| 120 |
1. **Live Steam requirements.** The app looks up the typed title in the Steam store when the check runs and maps the minimum and recommended GPU, CPU and RAM to PassMark scores, so a game can be checked on release day.
|
| 121 |
-
2. **Benchmark curves first.** For games in CanRun's local benchmark table, the app reads that game's curve at the user's GPU score instead of predicting. On OpenML this lowers the error from 39.4% to 30.7%, and on TechSpot NVIDIA cards from 33.6% to 28.6%. In the end-to-end test the curve path scored 15.6% on 154 points.
|
| 122 |
3. **The model for everything else.** Games without a curve use this model: 18.5% on 132 end-to-end points.
|
| 123 |
4. **Matching the right game.** Whole-word title matching cut the end-to-end error from 35.1% to 15.2% with no model change. The old matcher sent "Assassin's Creed Mirage" to "RAGE".
|
| 124 |
|
|
@@ -220,6 +220,8 @@ The anchor and the exponent β, set per resolution, come from one of three sourc
|
|
| 220 |
|
| 221 |
Special-case rules cover 60 FPS locked games and light indie games capped at 240 FPS. The 127,245 curves are then expanded over 5 CPU tiers (Ryzen 5 3600 to Ryzen 7 7800X3D) with a CPU-bottleneck factor, giving 636,225 rows. Store specs come from Steam's public store API, and game discovery uses Steam Web API chart endpoints with the developer's own key.
|
| 222 |
|
|
|
|
|
|
|
| 223 |
**What this means for the scores.** For about 95% of games the target is a fixed function of the same store-spec features the model receives, and for 990 of them those specs are placeholders too. The cross-validation below therefore mostly measures how well the model reproduces that rule. That is why it reports about 1% error while independent benchmarks show 15% to 40%. Use the real-world numbers above.
|
| 224 |
|
| 225 |
Four automated checks run before training: removal of curves copied from a generic template (143 repaired), FPS that falls from 1080p to 1440p to 4K for every game and GPU, robust repair of single-card outliers per game and resolution (6 repaired), and full coverage of resolutions and CPU tiers.
|
|
|
|
| 77 |
|
| 78 |
A small tabular model that estimates the native frame rate of a PC game at 1080p, 1440p or 4K from two things you can know before buying or installing: the PC's hardware scores and the game's Steam store requirements. It is the FPS engine of the [CanRun G-Assist plugin](https://mod.io/g/g-assist/m/canrun2#description) and runs with the Python standard library alone.
|
| 79 |
|
| 80 |
+
**Real-world accuracy:** on independent benchmarks the model alone is a median 18.9% off on recent games and NVIDIA cards, and 37% to 39% off on other test sets. The full CanRun app, which adds benchmark curves and live Steam store lookups, is 15.2% off end to end. No Steam player FPS data is used anywhere. Treat every prediction as a rough estimate, good for "will this run at 60 FPS?" and not for exact numbers.
|
| 81 |
|
| 82 |
**Try it:** the [CanRun Space](https://huggingface.co/spaces/grasant/canrun) runs this model alone. Pick a GPU, CPU, RAM and resolution, type a game, and it reads the live Steam store specs.
|
| 83 |
|
|
|
|
| 118 |
### How the CanRun app improves on the model
|
| 119 |
|
| 120 |
1. **Live Steam requirements.** The app looks up the typed title in the Steam store when the check runs and maps the minimum and recommended GPU, CPU and RAM to PassMark scores, so a game can be checked on release day.
|
| 121 |
+
2. **Benchmark curves first.** For games in CanRun's local benchmark table, the app reads that game's curve at the user's GPU score instead of predicting. Only 79 of those curves carry outside information (21 from published benchmarks, 58 set by hand). The rest come from the same store-spec rule as the training targets. Most OpenML games are among the 79. On OpenML this lowers the error from 39.4% to 30.7%, and on TechSpot NVIDIA cards from 33.6% to 28.6%. In the end-to-end test the curve path scored 15.6% on 154 points.
|
| 122 |
3. **The model for everything else.** Games without a curve use this model: 18.5% on 132 end-to-end points.
|
| 123 |
4. **Matching the right game.** Whole-word title matching cut the end-to-end error from 35.1% to 15.2% with no model change. The old matcher sent "Assassin's Creed Mirage" to "RAGE".
|
| 124 |
|
|
|
|
| 220 |
|
| 221 |
Special-case rules cover 60 FPS locked games and light indie games capped at 240 FPS. The 127,245 curves are then expanded over 5 CPU tiers (Ryzen 5 3600 to Ryzen 7 7800X3D) with a CPU-bottleneck factor, giving 636,225 rows. Store specs come from Steam's public store API, and game discovery uses Steam Web API chart endpoints with the developer's own key.
|
| 222 |
|
| 223 |
+
**No Steam player FPS.** The pipeline also asks Steam's `IGamePerformanceStatsService/GetGameFrameRateStats` for player frame rates per hardware cluster. That endpoint is not in Valve's [Web API reference](https://partner.steamgames.com/doc/webapi) and returns HTTP 401 to outside keys, so the dataset contains 0 Steam FPS reports. The only measured frame rates behind training are the published benchmarks for 21 games.
|
| 224 |
+
|
| 225 |
**What this means for the scores.** For about 95% of games the target is a fixed function of the same store-spec features the model receives, and for 990 of them those specs are placeholders too. The cross-validation below therefore mostly measures how well the model reproduces that rule. That is why it reports about 1% error while independent benchmarks show 15% to 40%. Use the real-world numbers above.
|
| 226 |
|
| 227 |
Four automated checks run before training: removal of curves copied from a generic template (143 repaired), FPS that falls from 1080p to 1440p to 4K for every game and GPU, robust repair of single-card outliers per game and resolution (6 repaired), and full coverage of resolutions and CPU tiers.
|