Perception
How well AI models answer geospatial (GIS and Earth observation) questions that need them to look at satellite and aerial images. Earth observation is imagery, so perception is one of the four groups of the Geospatial Intelligence Index, weighted 2/9, about 22.2%.
Ongoing evaluation: results update as runs complete. Last updated 12 October 2026.
Look and answer
Every model answers the same 136 questions in one model call per question: the images and the question go in, the answer comes out, with no tools and no code. This measures the model, not an agent harness. The perception score is the plain average of the two source scores.
| Model | Perception 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 |
| 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 Haiku 5.5 (high) | 47 | Scored | 60 | 35 | 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 |
| 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 | 119 of 136 | 6 | 11 | 1 | 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 |
| 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 |
| 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 |
| 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 |
| Claude Haiku 4.5 (thinking 32k) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| Claude Opus 4.7 (high) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| Claude Opus 4.8 (high) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| Claude Opus 5 (high) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| Claude Sonnet 5 (high) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| DeepSeek V4 Flash (high) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | Developer documentation |
| DeepSeek V4 Flash (max) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | Developer documentation |
| Kimi K3 (always on) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| Llama 3.3 70B (Non-reasoning) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
| gpt-oss-20b (high) | No data | Not yet run or confirmed | No data | No data | No data | No data | No data | 0 | No data |
- Cannot take images. A model that cannot take images at all, according to its developer's documentation, scores 0, labelled "cannot take images". The documentation used is linked for every model. We never apply this when only our serving route lacks image input.
- Not run yet. A model that can take images but has no look-and-answer run is not ranked in the Intelligence Index. Scores are never copied from another reasoning level or protocol.
- Not yet run or confirmed. A model whose developer's documentation does not say clearly whether it takes images gets no labelled 0. Until it has a look-and-answer run it is not ranked.
- Not yet run or confirmed. A model whose developer's documentation does not say clearly whether it takes images gets no labelled 0. Until it has a look-and-answer run it is not ranked.
- Runs. Each model has one run of the questions for now; the run count is shown. With 136 questions a score can move by about 4 points between runs. More runs and questions will follow.
- Counting. Questions the serving route rejects for their input (for example more images than it accepts) are left out of the score and counted. A run counts when every question was asked and at most 1% are left unscored by provider errors.
Look and work
Agents that view the image files and may run Python are shown on the Geospatial image understanding page, with the sources and both protocols. Look-and-work scores are not part of the Intelligence Index.
Mixed track: coming
Tasks that need both images and tools, checked by code, join the perception group when they are complete, as a new methodology version.
