Vision
How well AI models answer geospatial (GIS and Earth observation) questions by looking at satellite and aerial images: a group of the Geospatial Intelligence Index, weighted 2/9, about 22.2%.
Ongoing evaluation: results update as runs complete. Last updated 14 October 2026.
Scores and cost
Vision score
Questions answered from images, look and answer, 0 to 100 · Higher is better
How to read this chart
Rows. Each model once, at its highest reasoning level with a vision score; every level is in the table below the charts. A model that cannot take images scores 0 in the index, labelled, and is listed in that table, not drawn here.
What this metric means. The plain average of the two source scores: the share of questions answered correctly from each source, with no tools and no code.
Data table: Vision score
| Model | Vision score | Earth-Bench V2 images score | ThinkGeo score |
|---|---|---|---|
| Claude Opus 5.5 (xhigh) | 58.8 | 70 | 48 |
| Claude Sonnet 5.5 (xhigh) | 57.2 | 68 | 47 |
| GPT-6.1 Sol (xhigh) | 56.4 | 72 | 41 |
| Claude Opus 5 (high) | 53.2 | 68 | 38 |
| Claude Haiku 5.5 (xhigh) | 52.4 | 70 | 35 |
| GPT-6 Luna (xhigh) | 50.4 | 66 | 35 |
| Claude Opus 4.8 (high) | 49.9 | 66 | 34 |
| Kimi K3 (always on) | 48.1 | 66 | 30 |
| Claude Opus 4.7 (high) | 47.4 | 68 | 27 |
| Claude Sonnet 5 (high) | 47.0 | 66 | 28 |
| Kimi K2.6 (always on) | 44.0 | 60 | 28 |
| GLM-5.3-Flash (max) | 43.8 | 53 | 35 |
| Kimi K2.7 Code (always on) | 43.7 | 56 | 31 |
| Gemma 4 26B A4B (thinking on) | 43.2 | 64 | 22 |
| Claude Haiku 4.5 (thinking 32k) | 34.3 | 50 | 19 |
| Mistral Small 3.1 24B (Non-reasoning) | 32.8 | 54 | 12 |
Earth-Bench V2 images: vision score
Share answered correctly, 0 to 100 · Higher is better
How to read this chart
Sources. Earth-Bench V2 images: 50 questions; ThinkGeo: 86 questions. Same scale and order in both charts, so a model's two bars compare directly.
Data table: Earth-Bench V2 images: vision score
| Model | Earth-Bench V2 images score |
|---|---|
| Claude Opus 5.5 (xhigh) | 70 |
| Claude Sonnet 5.5 (xhigh) | 68 |
| GPT-6.1 Sol (xhigh) | 72 |
| Claude Opus 5 (high) | 68 |
| Claude Haiku 5.5 (xhigh) | 70 |
| GPT-6 Luna (xhigh) | 66 |
| Claude Opus 4.8 (high) | 66 |
| Kimi K3 (always on) | 66 |
| Claude Opus 4.7 (high) | 68 |
| Claude Sonnet 5 (high) | 66 |
| Kimi K2.6 (always on) | 60 |
| GLM-5.3-Flash (max) | 53 |
| Kimi K2.7 Code (always on) | 56 |
| Gemma 4 26B A4B (thinking on) | 64 |
| Claude Haiku 4.5 (thinking 32k) | 50 |
| Mistral Small 3.1 24B (Non-reasoning) | 54 |
ThinkGeo: vision score
Share answered correctly, 0 to 100 · Higher is better
How to read this chart
Sources. Earth-Bench V2 images: 50 questions; ThinkGeo: 86 questions. Same scale and order in both charts, so a model's two bars compare directly.
Data table: ThinkGeo: vision score
| Model | ThinkGeo score |
|---|---|
| Claude Opus 5.5 (xhigh) | 48 |
| Claude Sonnet 5.5 (xhigh) | 47 |
| GPT-6.1 Sol (xhigh) | 41 |
| Claude Opus 5 (high) | 38 |
| Claude Haiku 5.5 (xhigh) | 35 |
| GPT-6 Luna (xhigh) | 35 |
| Claude Opus 4.8 (high) | 34 |
| Kimi K3 (always on) | 30 |
| Claude Opus 4.7 (high) | 27 |
| Claude Sonnet 5 (high) | 28 |
| Kimi K2.6 (always on) | 28 |
| GLM-5.3-Flash (max) | 35 |
| Kimi K2.7 Code (always on) | 31 |
| Gemma 4 26B A4B (thinking on) | 22 |
| Claude Haiku 4.5 (thinking 32k) | 19 |
| Mistral Small 3.1 24B (Non-reasoning) | 12 |
Vision score vs. cost per question
Vision score; cost per question (USD) · Higher and further left is better
- Most attractive quadrant
- Pareto line
No model has both a vision score and an exact cost per question yet.
How to read this chart
How to read this chart. Each point is one model at its highest reasoning level. Further left means a lower average cost per question (log scale); higher means a higher vision score. Both axes fit the points shown, so the score axis does not start at zero. The shaded most attractive quadrant is the top-left quarter of the plot, split at the middle of each axis: a reading aid, not a fixed bar. The dotted Pareto line joins the points that no cheaper one beats on score. Only exact costs are plotted; the table lists every entry.
Cost per question. What one question costs at the provider's published API prices: one model call with the question's images, averaged over the questions in the score. A model with any question whose cost was not recorded is not plotted.
Data table: Vision score vs. cost per question
| Model | Vision score | Cost per question | On the Pareto line |
|---|---|---|---|
| Claude Opus 5.5 (xhigh) | 58.8 | No data | Not plotted |
| Claude Sonnet 5.5 (xhigh) | 57.2 | No data | Not plotted |
| GPT-6.1 Sol (xhigh) | 56.4 | No data | Not plotted |
| Claude Opus 5 (high) | 53.2 | No data | Not plotted |
| Claude Haiku 5.5 (xhigh) | 52.4 | No data | Not plotted |
| GPT-6 Luna (xhigh) | 50.4 | No data | Not plotted |
| Claude Opus 4.8 (high) | 49.9 | No data | Not plotted |
| Kimi K3 (always on) | 48.1 | No data | Not plotted |
| Claude Opus 4.7 (high) | 47.4 | No data | Not plotted |
| Claude Sonnet 5 (high) | 47.0 | No data | Not plotted |
| Kimi K2.6 (always on) | 44.0 | No data | Not plotted |
| GLM-5.3-Flash (max) | 43.8 | No data | Not plotted |
| Kimi K2.7 Code (always on) | 43.7 | No data | Not plotted |
| Gemma 4 26B A4B (thinking on) | 43.2 | No data | Not plotted |
| Claude Haiku 4.5 (thinking 32k) | 34.3 | No data | Not plotted |
| Mistral Small 3.1 24B (Non-reasoning) | 32.8 | No data | Not plotted |
Vision includes: 136 questions answered from satellite and aerial images, 50 from Earth-Bench V2 images, 86 from ThinkGeo, one model call per question, from the image alone. See the methodology for how we run each evaluation.
All results
| Model | Vision score | Status | Earth-Bench V2 images (50 questions) | ThinkGeo (86 questions) | Questions scored | Not supported by the route | Not scored (provider error) | Runs | Image input |
|---|---|---|---|---|---|---|---|---|---|
| Claude Opus 5.5 (high) | 59 | Scored | 74 | 44 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Sonnet 5.5 (high) | 59 | Scored | 68 | 50 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Opus 5.5 (xhigh) | 59 | Scored | 70 | 48 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Sonnet 5.5 (xhigh) | 57 | Scored | 68 | 47 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Opus 5.5 (medium) | 57 | Scored | 70 | 44 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| GPT-6.1 Sol (xhigh) | 56 | Scored | 72 | 41 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Sonnet 5.5 (medium) | 56 | Scored | 68 | 43 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| GPT-6.1 Sol (medium) | 55 | Scored | 72 | 37 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Opus 5 (high) | 53 | Scored | 68 | 38 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| GPT-6.1 Sol (high) | 53 | Scored | 68 | 37 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Haiku 5.5 (xhigh) | 52 | Scored | 70 | 35 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| GPT-6 Luna (xhigh) | 50 | Scored | 66 | 35 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Opus 4.8 (high) | 50 | Scored | 66 | 34 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Kimi K3 (always on) | 48 | Scored | 66 | 30 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Haiku 5.5 (high) | 47 | Scored | 60 | 35 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Opus 4.7 (high) | 47 | Scored | 68 | 27 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Sonnet 5 (high) | 47 | Scored | 66 | 28 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Claude Haiku 5.5 (medium) | 45 | Scored | 56 | 35 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Kimi K2.6 (always on) | 44 | Scored | 60 | 28 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| GLM-5.3-Flash (max) | 44 | Scored | 53 | 35 | 122 of 136 | 14 | 0 | 1 | Developer documentation |
| Kimi K2.7 Code (always on) | 44 | Scored | 56 | 31 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Gemma 4 26B A4B (thinking on) | 43 | Scored | 64 | 22 | 135 of 136 | 0 | 1 | 1 | Developer documentation |
| Claude Haiku 4.5 (thinking 32k) | 34 | Scored | 50 | 19 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Mistral Small 3.1 24B (Non-reasoning) | 33 | Scored | 54 | 12 | 136 of 136 | 0 | 0 | 1 | Developer documentation |
| Qwen 3.8 27B (xhigh) | 53* | In progress | 69 | 37 | 128 of 136 | 0 | 8 | 1 | Developer documentation |
| GLM-5.3-Flash (low) | 46* | In progress | 56 | 36 | 122 of 136 | 6 | 8 | 1 | Developer documentation |
| DeepSeek V4 Flash (high) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| DeepSeek V4 Flash (max) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| DeepSeek V4 Pro (high) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| DeepSeek V4 Pro (max) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| GLM-4.7-Flash (thinking on) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| GLM-5.2 (high) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| GLM-5.2 (max) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| GLM-5.2 (none) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| GLM-5.3 (low) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| GLM-5.3 (max, default) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Llama 3.3 70B (Non-reasoning) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| gpt-oss-120b (high) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| gpt-oss-120b (low) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| gpt-oss-20b (high) | 0 (cannot take images) | Cannot take images | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Claude Sonnet 4.6 (adaptive, effort high) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.1 Flash-Lite (high) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.1 Flash-Lite (low) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.1 Flash-Lite (minimal) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.1 Pro (preview) (high) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.1 Pro (preview) (low) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.8 Flash (high) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Gemini 3.8 Flash (low) | No data | Not run yet | No data | No data | No data | No data | No data | 0 | Developer documentation |
Sources: Earth-Bench V2 (annotations CC BY-NC 4.0) and ThinkGeo (CC BY 4.0); this non-commercial site publishes scores only, never questions or images. Licences in the methodology.
The same questions with an agent that may run code, and harder agent tasks, are on Vision agents.
