The Vision Is Not a Gimmick
8 tests. Zero failures. $0.005. That is what it cost to prove MiniMax M3 can see — not in the way a demo shows a model describing a photo, but in the way an agent needs to see: reading charts, extracting structured data, comparing multiple images, doing math from visual input.
Everyone tests whether a model can code. Nobody tests whether it can see. The coding benchmarks get the headlines. The vision demos get a shrug. “Describe this photo” is a parlor trick. Reading a chart and returning a JSON array is an agent capability. There is a difference, and most of the industry has not noticed it yet.
Part 1 of this series proved M3 can code — 85 out of 85 tests across four real projects, self-debugging loops included. This piece proves something different: M3 can read the world. Screenshots, charts, code images, diagrams — all become structured, usable input. Not “I see a bar chart.” Actual data. Actual numbers. Actual output you can pipe into another step.
Eight tasks, no shortcuts
I ran M3 through eight vision tasks. Not toy demos. Real agent workload — the kind of thing you need a model to do when it is staring at a dashboard screenshot at 2 AM and you need structured output, not a description.
Image identification first. I passed M3 the Python programming language logo. It identified the interlocking snake shapes, the blue and yellow color scheme, the trademark symbol. 763 tokens, about five seconds. Fine. Any modern vision model does this.
OCR next. A generated image with four lines of text: “Rachel Notes,” “85 Tests, One Penny,” “The cheap model era is here.,” and “MiniMax M3 • MiMo v2.5 Pro • DeepSeek V4.” M3 read all four lines exactly. Zero errors. 453 tokens, three seconds. This sounds simple until you watch a cheaper model hallucinate a word or swap a punctuation mark. OCR is one of those tasks where “almost right” is useless — you cannot pipeline “almost right” text into anything reliable.
Chart reading. A bar chart showing five models and their prices. M3 extracted every value correctly, then computed that GPT-5.6 is 30,000 times more expensive than MiMo. Not just reading the bars — doing the math on the spot. 728 tokens, 4.2 seconds. This is the kind of task that separates a model that can describe a chart from a model that can use one.
Code reading from a screenshot. A syntax-highlighted Python file — an LRU cache implementation. M3 identified the language, described the caching logic, and transcribed the code from the image. 844 tokens, five seconds. This is the test that matters for developer tooling — your agent sees a screenshot of someone’s code in a Slack message, a PR review, or a debugging session, and can work with it directly. No copy-paste required.
Four tests, four passes. Nothing exotic. Nothing cherry-picked. These are the tasks an agent hits every day — and M3 handled all of them in under five seconds each.
The next four tests push into territory where vision stops being perception and starts being reasoning.
Two images, one conclusion
Multi-image comparison is where vision gets interesting. I gave M3 two charts side by side — one showing pass rates across five models, another showing throughput in tokens per second. The model did not describe each chart separately. It compared them. It built a combined table mapping accuracy to speed, then recommended M3 as the best overall choice based on the balance of accuracy, speed, and cost. The fact that it held both images in context and reasoned across them simultaneously — not sequentially — is the part that matters.
1,930 tokens. 22.2 seconds. This is what a human does when they spread two charts on a desk and draw conclusions — except the model does it in the time it takes to pour a coffee.
The distinction matters. When your agent can hold multiple visual inputs in context and reason across them, you stop needing a human to stare at dashboards. The agent reads them, compares them, and tells you what changed.
The one that matters
Six tests in, I had seen competence. Test six is where I saw something else.
Structured extraction. I passed M3 a chart image — the same kind of pricing chart that every model comparison produces — and asked for structured data. The model returned a clean JSON array. No prose. No preamble. Just data: [{"model":"MiMo","pass_rate":100},...] The keys were correct. The values were correct. The array parsed without errors.
555 tokens. 2.5 seconds.
This is not a vision demo. This is an agent capability. Image in, structured data out. No transcription step. No human in the loop. Your agent can now read a dashboard screenshot, extract the numbers, and pipe them into a database, a notification, or a decision engine. Vision stops being a parlor trick and starts being infrastructure.
Every dashboard, every PDF, every screenshot, every chart your agent encounters becomes a queryable data source. Not by OCR-ing the text and hoping it lands. By extracting structured information the way a human would — except automatically, at scale, for half a cent per image. Screenshot in, JSON out. No intermediate transcription. No manual data entry. The model sees and extracts in one step.
Math from pictures
Test seven was the stress test. I gave M3 two chart images as input — pass rates and throughput — and asked it to do real work: filter models by a 95% pass rate threshold, compute processing time for one billion tokens at each model’s throughput, and calculate annual costs.
The model used 4,217 tokens — 2,978 of them reasoning tokens. 25.8 seconds. It got every calculation right. Filtering, multiplication, unit conversion, annual cost projection — all from visual input. The reasoning tokens tell the story: 70% of the output was reasoning. M3 was not pattern-matching. It was working through the math step by step, using the charts as its data source. This is not reading a chart. This is thinking with charts as the input medium.
Test eight brought it home with a classic riddle: the “all but 9 sheep” problem. Most models — including many frontier ones — trip on this. The question is designed to make you subtract when you should not. “All but 9 died” means 9 survived. M3 answered 9, not 8. Then it computed profit from wool sales with correct step-by-step math. 799 tokens, 6.1 seconds. The riddle is designed to exploit a linguistic ambiguity — models that rush to subtraction get 8. M3 paused and read the question carefully.
The economics of seeing
All eight tests consumed 9,289 tokens. Estimated cost: $0.005. Half a cent.
M3’s pricing is $0.30 per million input tokens and $1.20 per million output tokens, with a permanent 50% discount for input contexts under 512,000 tokens. Vision tokens cost the same as text — no premium, no surcharge.
For comparison, GPT-5.6 Sol charges $30 per million output tokens. The same 9,289 vision tokens would cost $0.28 there. Still cheap in absolute terms, but the behavioral difference is real. You use vision freely when it costs half a cent. You ration it when it costs a quarter per call. Pricing shapes behavior, and behavior shapes architecture.
When vision is effectively free, you stop asking “is this worth sending to the model?” and start asking “why am I not sending everything to the model?” Screenshots become input. Dashboards become queryable. PDFs become structured data. The question shifts from “should my agent see?” to “what else can it read?”
The capability boundary
On one side, your agent processes text — prompts, emails, documents, code. On the other side, your agent processes the world — screenshots, charts, photos, diagrams, handwritten notes, whiteboard snapshots.
M3 crossed that boundary at a price that makes it free to test. Eight tests. Half a cent. Zero failures. The model reads charts, extracts structured data, compares multiple images, does math from visual input, and handles ambiguous reasoning correctly. It supports native multimodal input — text, image, and video — with configurable reasoning effort. That is not a demo reel. That is a working tool.
Part 1 proved M3 can code. This piece proves it can see. Vision is not a premium feature. It is a default capability. At this price, there is no reason not to use it.