Dashboard →

Performance score

One grade per variant, from a fixed rubric over the stats the optimizer already measures.

Every ready variant gets a score from 0 to 100 and a grade from A to F. The rubric is deterministic: the same stats always give the same score, so a change in grade means the model changed. The dashboard shows the grade next to each variant and the headline grade (the gpu variant when it is ready, else the default preset) in the asset header; the API returns it as score on GET /api/v1/assets/{id}/variants.

Rubric v1

CheckPointsFull pointsPartial points
Download size25≤ 1 MB≤ 3 MB 20 · ≤ 8 MB 12 · ≤ 20 MB 5 · more 0
Triangles20≤ 50,000≤ 150k 15 · ≤ 500k 8 · ≤ 1M 3 · more 0
Draw calls15≤ 10≤ 30 11 · ≤ 100 6 · ≤ 300 2 · more 0
GPU texture memory20≤ 16 MB≤ 64 MB 14 · ≤ 128 MB 7 · ≤ 256 MB 2 · more 0
Texture formats10KTX2, or no texturesall WebP/AVIF 7 · JPEG/PNG 4 · minus 4 when a side exceeds 2048 px (floor 0)
Geometry compression10meshopt or Dracoquantized 6 · raw 2
A
90 points or more
B
75 to 89
C
55 to 74
D
35 to 54
F
below 35

Sizes are decimal (1 MB = 1,000,000 bytes), the same unit as the plan limits. GPU texture memory counts decoded RGBA8 bytes, with KTX2 at a sixth of that. Each check that loses points names the URL parameter or preset that would win them back; the dashboard shows that advice in the badge tooltip.

Badge

Public assets serve a shields-style badge of the headline grade and the variant's size, cached for five minutes. It answers 404 for private assets, whatever the URL carries, so a badge never reveals that a private model exists.

![GLBoost score](https://cdn.glboost.com/{assetId}/badge.svg)

<img src="https://cdn.glboost.com/{assetId}/badge.svg" alt="GLBoost score">

Validation

Next to the score, every version carries a Khronos glTF-Validator report of the uploaded file: error, warning, info, and hint counts with the messages grouped by issue code (the first 200 are kept). Validation never blocks an upload; a file the validator cannot read is reported as skipped.

Versioning

The rubric carries a version (score.version, currently 1). Budgets and points only change with a new version, announced in the changelog, so scores stay comparable over time.