GPT Image 2.5 Flare & Sunburst are live on EvoLinkTry GPT Image 2.5
Skip to article
Kimi K3.1 Pro artwork showing a golden river winding through a rocky canyon
Review

Kimi K3.1 Pro Review: Coding, 3D Modeling, and Research

Kimi K3.1 Pro review covering code repair, Blender and CAD, data analysis, and reasoning latency, with public benchmarks and task examples.

EvoLink Team
15 min read

Public tests of Kimi K3.1 Pro show successful code repair and data investigation, alongside gaps in browser validation and an error in data grouping. Moonshot AI’s 3D examples extend the picture: the model can use Blender and CAD tools to produce structured scenes and objects.

The practical questions are how well those outputs work, what needs checking, and how much time the model spends reaching a final answer. Artificial Analysis, Atomic Agent, PacBench, and Plotly provide concrete results to examine alongside Moonshot AI’s official examples.

Kimi K3.1 Pro benchmarks: coding, agents, and reasoning

Artificial Analysis’s October 23, 2026 launch evaluation covers terminal tasks, SaaS workflows, knowledge work, and difficult reasoning questions:

EvaluationK3.1 Pro resultWhat it examines
Terminal-Bench 4.067%Coding and operational tasks in a terminal environment
AutomationBench-AA73%Agents carrying out SaaS workflows
GDPval-AA1,846 EloRelative performance on knowledge-work deliverables
Humanity’s Last Exam52%Difficult knowledge and reasoning questions
Source: Artificial Analysis, 2026-10-23. These evaluations use different metrics; Elo is a relative rating rather than a task success rate.

The four evaluations cover different kinds of work. Terminal and SaaS tasks ask an agent to act in an environment, while knowledge-work evaluations look at the deliverable it produces. Difficult question answering adds another dimension: arriving at a correct answer when the reasoning itself is demanding. A strong result in one category can coexist with a weakness in another part of a workflow.

For a developer, this distinction helps explain why a coding benchmark and a generated application can tell different stories. Solving a repository task involves reading files, making changes, running checks, and interpreting failures. Delivering an interactive application adds controls, rendering, and the behavior users encounter after the program starts. The examples below make those differences visible.

Coding: code repair and longer tasks

Low and max on a Python repair task

Atomic Agent tested a Python package with five planted bugs and two missing features: a settlement function and a command-line tool. The agent received a short instruction to read the task file, complete the work, and run tests until they passed. The runs used Atomic Agent v0.6.9 with the same task and tools.

Each reasoning setting ran three times, with 32 hidden assertions per run. Those hidden checks were separate from the tests the agent could see while working. Both settings passed every assertion:

SettingAssertions across three runsAverage timeAverage model calls
Low96/962.2 minutes19
Max96/964.9 minutes28
Source: Atomic Agent’s experiment, conducted with its own agent. The totals combine three runs of one task, not 96 separate tasks.

For this task, low was the more efficient setting. Calculated from the reported averages, max took about 2.2 times as long and made roughly 47% more model calls, with the same pass result.

The token breakdown helps explain the difference. Atomic reported about 5.4K output tokens per run at low effort versus 17.3K at max, including about 1.4K and 12.2K reasoning tokens respectively. The longer run was not simply moving through the same answer more slowly: it generated substantially more material and took more steps. Source: Atomic’s detailed results.

For code repair, the completed patch is the useful comparison point. Did it fix the requested behavior, preserve the public interface, and avoid unrelated changes? A higher effort level earns its place when it improves those outcomes. A longer explanation or a larger number of tool calls is an execution characteristic, not by itself a better patch.

Changing the diagnosis during a long task

In Moonshot AI’s internal walking-simulation example, adjustments to the controller’s reward produced limited improvement. K3.1 Pro then investigated the simulator, corrected 36 shoulder-muscle moment-arm calculation errors, and retrained the controller. Moonshot reports 11.2 seconds of continuous alternating strides. Source: the official Coding discussion.

The simulator was built on the human-atlas anatomical model, which includes 296 skeletal components and 402 muscle components. Moonshot describes the model using open-loop dynamics probes to investigate the arm-motion problem before changing the calculations and retraining the controller.

That sequence matters in a coupled system. A controller can be trained against an incorrect simulation, just as application code can be tuned around a faulty dependency or a broken test fixture. Repeatedly improving the outer loop may leave the underlying defect untouched. Here, the model moved from the training objective to the simulator that defined the training environment.

For a long coding task, useful progress therefore includes changes in diagnostic direction: reading a dependency, checking a numerical assumption, or revising the original explanation after a new result. The final deliverable should preserve enough of that trail—changed files, test commands, and measured outcomes—for another developer to continue the work.

A generated game and its validation gap

PacBench game screen with the Kimi K3.1 Pro model label and a generated Pac-Man maze
Kimi K3.1 Pro’s Pac-Man game, published by PacBench as a third-party coding example. PacBenchView full-size image ↗

PacBench’s K3.1 Pro entry used high effort, involved 17 model responses, and took about 11.5 minutes. The generated Pac-Man game is available to play, together with its execution record.

Attempts to launch a headless browser were blocked by the sandbox, so the model used a canvas substitute in Node to check game logic. The evaluator still documented defects in controls, character behavior, and sound. Sources: the run record and the project repository.

The evaluator also documented what worked: a classic 28×31 maze, all 244 pellets reachable, and no stuck movement across the tested frame rates. That makes the remaining defects more informative than a simple “works” or “does not work” label.

One control problem arose after starting with the mouse: the Start button retained focus, so pressing Space or Enter could restart the game during play. Another involved the ghost-house counters being reset on each life, which kept Clyde inside the house for too much of the game. The sound review found that the siren continued in a hidden tab. These details are in PacBench’s per-feature notes.

The remaining work was browser validation. A Node substitute could exercise game-state transitions, but keyboard focus and background-tab audio are browser behaviors. For an interactive deliverable, checking a win condition and checking the experience of playing are separate parts of completion.

3D modeling: Blender, CAD, and asset inspection

Moonshot’s 3D technical discussion shows a workflow in which K3.1 Pro writes and runs Blender or CAD scripts to construct geometry, materials, and scenes. The output depends on the model working with those tools, rather than producing a chat response alone.

What the CAD benchmark reconstructs

Moonshot reports 92.7 on BenchCAD with tools, using a 1,000-case subset. BenchCAD asks for CAD-code reconstruction from multiple rendered views. The model has to connect what it sees from different angles to a geometric representation that can be generated by code.

The metric is Voxel IoU: geometric overlap between generated and reference shapes in voxel space. It measures shape similarity, not the percentage of assets ready for production. The task is closer to recovering an object’s structure than to producing a convincing picture of that object.

This distinction helps when reading 3D examples. A rendered view shows the surface from one camera; an editable model also contains relationships between parts, dimensions, and a construction that must remain coherent when the viewpoint or a parameter changes. Moonshot highlights parametric modeling for parts, architecture, and configurable objects in its 3D discussion.

From a visible shape to an editable asset

For an individual asset, inspect three things:

LevelWhat to inspect
Overall formSilhouette, proportions, and spatial arrangement
Local structureConnections, occlusion, symmetry, and detail
Practical useSource files, dimensions, topology, and export results

Asset inspection checklist: compiled for this article.

The official 3D examples are a starting point for visual inspection. Rotate an object to check its back and hidden connections, then zoom in on intersecting parts and repeated details.

For a mechanical object, a useful inspection question is whether connected parts meet where they should, and whether a dimension change preserves their relationship. For an architectural scene, check repeated components, openings, and the arrangement of spaces. These checks help reveal intersections and missing connections that a single camera view can hide.

The delivery format matters too. A preview supports visual review; editable files support later changes; an export supports use in another tool. Asking for the intended format at the start makes it easier to distinguish a good presentation from an asset that another person can actually continue working with.

Data analysis: Plotly’s 42/43 result and a grouping error

Plotly tested K3.1 Pro on synthetic wind-farm data with 43 private questions. Its benchmark description places the agent inside Plotly Studio Embedded with a 20-million-row warehouse. The questions cover ordinary analytics, ambiguity, impossible requests, statistical traps, data quality, and hidden patterns.

The model passed 42, including all five hidden-pattern questions and all three data-quality questions.

Finding problems the question does not spell out

In the data-quality cases, Plotly reports that K3.1 Pro identified duplicated rows and a missing last day of the month, and distinguished decommissioned turbines with no data from turbines producing zero. Those are different data states, even though a simple aggregate can make them look similar.

It also handled an impossible request for a reliable annual failure rate from one decommissioned turbine’s short history by offering a fleet-wide rate instead. In practical analysis, choosing an answerable version of a question can be as useful as writing the query. Source: Plotly’s case discussion.

The hidden-pattern questions add another kind of work: investigating relationships without being told exactly what to find. That makes the result relevant to exploratory analysis, where the next query depends on what the previous query revealed.

How a small grouping error changes the answer

The failed question compared a firmware version with other firmware. K3.1 Pro placed 2,775 turbine-day records from before firmware installation in the “other firmware” group. Source: Plotly’s data-analysis evaluation.

That changes the population being compared. “Not on this firmware” and “on a different firmware” describe different groups when some records have no firmware at all. Adding the missing-state records changes the baseline before any statistical test is applied.

The analytical method can therefore look careful while the question has already shifted. A useful review starts with the population: which records entered each group, which were excluded, and what a missing value means in this dataset. Then inspect the calculation and check that the prose describes the filters actually used. The calculation only answers the intended question when the groups match its business definition.

Financial and research deliverables

Financial summary worksheet in Moonshot AI’s public NVDA modeling workbook, with quarterly and annual columns
Financial summary from the NVDA modeling workbook published by Moonshot AI. Moonshot AIView full-size image ↗
Moonshot’s published samples include an NVDA modeling workbook, a CATL presentation, and a quantum-sector report. They show the model organizing research into spreadsheets, slides, and reports that can be opened and inspected.

The NVDA screenshot shows quarterly and annual columns alongside revenue, profit, margins, and diluted earnings per share. It is a financial summary page, so its usefulness depends on how clearly a reader can connect the headline numbers to the assumptions and supporting sheets behind them.

For a modeling workbook, follow one forecast from an assumption through the relevant formula references to the summary. Check that fiscal periods line up and that a changed assumption updates the intended outputs. For a report or presentation, follow important claims back to their sources and check that charts and written conclusions use the same period and definition.

These files also show why research delivery is broader than generating a long answer. A workbook has numerical dependencies; slides need a clear sequence of arguments; a report needs traceable support for its conclusions. The model’s contribution includes organizing those relationships into a format another person can inspect and revise.

Image and video understanding: practical checks

K3.1 Pro supports image and video input according to the official vision guide. Useful checks depend on the application:
  • For charts, verify values, units, and statistical definitions together.
  • For spatial tasks, check positions and relationships between objects.
  • For video, test action order and changes of state across frames.

A chart task illustrates the difference between reading and interpretation. Extracting two values is only the start if one series uses a different unit, time period, or population. A useful answer needs to keep the value attached to the right axis, legend, and surrounding explanation.

There are also concrete input requirements. Kimi’s native API expects multimodal content as an array of message parts, with images supplied as base64 or uploaded file references. The guide describes video processing in terms of key frames: frame count and resolution affect input size. These details are documented in the vision input guide.

For video, choose examples where the answer depends on sequence rather than a single frame—for example, what changed before a failure, or which action preceded another. The public tests discussed here focus on coding and data work; a visual application needs its own examples of the events and details it must recognize.

Reasoning latency: waiting for the final answer

K3.1 Pro’s native documentation lists low, high, and max reasoning effort, with max as the default and thinking always enabled. Its stream separates reasoning from final-answer output. Source: the official quickstart.

On October 24, 2026, AIHubMix tested one prompt asking for a hash-map explanation with Python code, running standard Pro three times at low effort. The measured wait differed sharply between the first reasoning token and the first final-answer token:

Time to first reasoning and final-answer tokens

Standard Pro · one prompt · low effort · three runs

First reasoning token
3.6–4.5 s
First final-answer token
71–91 s

Seconds from request start

Intervals show the range across three runs, rather than a single request trace. Source: AIHubMix, 2026-10-24.

Reasoning accounted for about 85%–90% of completion tokens in these runs, and one run reached the 8,192-completion-token cap. An interface that displays only final answers can therefore appear idle while the model is already streaming reasoning.

Streaming progress and a usable answer

Three timings describe different parts of the experience: when the stream starts, when final-answer text begins, and when the response completes. A healthy connection can still leave a user waiting for a usable answer. A short first-token time therefore does not describe the entire wait.

For an interactive application, measure all three timings on the prompts users will actually send. Also record the effort setting and completion limit, so a fast but truncated response is distinguishable from a completed answer. In a background task, completion quality and total duration may matter more than how quickly text first appears.

Kimi’s native stream uses reasoning_content for reasoning increments and content for final-answer increments. An application can distinguish processing status from the answer it presents or parses. In multi-turn tool workflows, the quickstart also requires retaining the complete assistant message and matching tool results, rather than keeping final-answer text alone.

That connects the timing result back to agent behavior. The application is managing an ongoing task, including tool requests, returned observations, and the eventual answer. Reasoning effort is one control in that process; validation and message handling still determine whether the work is delivered correctly.

Where Kimi K3.1 Pro fits

The cases suggest different priorities for each workload:

CapabilityWhat the evidence supportsRemaining limits
Coding and long tasksCompleted repairs and sustained debuggingReliability on larger projects needs validation in the target environment
3D and spatial reasoningTool-driven construction of scenes and objectsShape overlap does not establish topology or export quality
Data analysis and researchStrong results in Plotly’s specialist testGrouping rules and assumptions can still be wrong
Visual understandingOfficial image and video input supportThese tests do not establish accuracy on specialist visual tasks
Reasoning and executionSubstantial reasoning and tool useExtra effort can add latency without improving the measured result

Summary of the sources discussed above.

Start with a code-repair or data-analysis task you can score. For a repair task, keep the original failing case and check the resulting diff. For analysis, keep a small set of known answers and include missing or exceptional states. For a 3D deliverable, agree on the source and export formats before reviewing the preview.

Compare final quality, execution time, tool calls, and token usage before expanding to less structured work. Atomic’s low/max comparison, PacBench’s browser gap, and Plotly’s grouping error each point to a concrete check worth including. Together they connect the evaluation to the work the model will actually do.

For model options and current rates, see Kimi K3.1 Pro on EvoLink. The release overview covers the launch; the K3.1 Pro versus K3 comparison covers the upgrade decision.

FAQ

Can Kimi K3.1 Pro create editable 3D models?

The official examples use Blender or CAD tools to construct, inspect, and export models. For an editable deliverable, request the source files along with the render and check dimensions, topology, and assembly relationships against your requirements. See the official 3D examples.

Should I use low or max reasoning effort for coding?

Start by comparing them on a representative task set. In Atomic Agent’s Python experiment, both settings passed the same assertions, while low averaged 2.2 minutes and 19 calls against max’s 4.9 minutes and 28 calls. Increase effort when it improves your patches or pass rate enough to justify the extra time and usage.

Why is Kimi K3.1 Pro streaming without giving a final answer?

Reasoning and final-answer increments arrive separately. If the client displays only final-answer text, it may hide ongoing output. Check which increments are arriving, whether the stream is healthy, and whether the completion limit has been reached. Consult the native streaming guide and the documentation for your gateway.

Does Plotly’s 42/43 result make research conclusions ready to use?

It is a strong result on Plotly’s synthetic wind-farm dataset. The missed firmware question shows why reviewing the population and grouping rules still matters. For another dataset, check missing values, time periods, formulas, and sources before using the conclusions.

Connect AI models through one API

Compare models and current pricing, then follow the API documentation to integrate your chosen model.