Лето, скоро отпуск — захотелось написать статью, которую просто кайф прочитать, и заодно попробовать что‑то новое. Для ИИ есть бенчмарки вроде HumanEval, где модель просят написать функцию на пару строк, есть задачи уровня «сделай мне todo‑лист на React». А что будет, если дать современным ИИ‑агентам по‑настоящему наукоёмкую задачу — реализовать алгоритм из статьи SIGGRAPH на Swift, без сторонних библиотек, — и потом честно сравнить, что получилось на выходе?

Для этого автор взял алгоритм «Depixelizing Pixel Art» (Johannes Kopf, Dani Lischinski, SIGGRAPH 2011) — тот, который он когда‑то давно реализовывал на C++. Поставил одинаковую задачу реализовать на языке Swift разным агентам (Claude, Codex, Cursor, Cline, Antigravity, Kimi, Grok — на разных моделях). Условия просты — один промпт = одна реализация, без уточнений, указаний недочетов и итераций правок.

Модель / агентРазмерΔ к входуПикселей ≠ NNЧто это значит
Claude Fable 5288²24.239.98%норма, есть сглаживание
Codex 5.5288²40.2 → 21.3 при v-flip47.17%обработка есть, но кадр перевёрнут
Cursor Auto288²27.825.77%обработка есть, но рендер битый
Kimi Code 2.7288²42.731.24%обработка есть (рендер по Вороному) сплайны в рендере не участвуют
Claude Sonnet 4.6288²19.013.55%норма, есть сглаживание
Antigravity (Gemini 3.5 Flash)288²0.00.00%чистый nearest ×16
Cline + DeepSeek v4 Pro288²0.00.00%чистый nearest ×16
Cline + Qwen 3.7 Max288²0.00.00%nearest ×16
Grok4608²0.01.85%nearest ×256 — и неверный размер

Промпт включал подробный план реализации из семи шагов: контракт, подготовка проекта, построение графа похожести с цветовым порогом в YUV, разрешение пересекающихся диагоналей, перестройка пиксельных ячеек через упрощенную обобщенную диаграмму Вороного, извлечение квадратичных B-сплайнов на основе видимых ребер, и финальный рендеринг. Агент должен был следовать плану шаг за шагом, не пропуская и не заменяя алгоритм другим.

Условия — один промпт, без уточнений и исправлений, без готовых библиотек векторизации.

Обычные тесты вроде HumanEval состоят из коротких задач, которые модель может решить, просто вспомнив код из обучающих данных. Depixelizing Pixel Art — алгоритм, требующий интеграции нескольких этапов обработки изображений: построение графа похожести, разрешение пересекающихся диагоналей, построение диаграммы Вороного и извлечение сплайнов. Такой комплекс редко встречается в обучающих выборках, поэтому это честная проверка способности агента к синтезу и точному следованию инструкциям. Кроме того, запрет на использование готовых библиотек (например, hqx, potrace) исключает возможность «халявного» решения.

Все агенты получают одинаковый промпт, что позволяет сравнить их «из коробки», без донастройки. По словам автора, такая постановка эксперимента более справедлива, чем многократные итерации с правками. Она имитирует ситуацию, когда разработчик передает задачу ИИ-ассистенту и ожидает рабочего результата с первой попытки. Результаты теста показывают, что далеко не все агенты справились с комплексной задачей. Например, некоторые агенты не смогли правильно построить граф похожести или обработать диагонали, другие срезали углы, используя готовые библиотеки, что было запрещено условиями. Однако точные результаты каждого агента остаются неизвестными — автор обещал раскрыть их в полной версии статьи. Тем не менее, сам подход к тестированию заслуживает внимания: он выходит за рамки академических бенчмарков и приближает оценку ИИ к реальным инженерным задачам, где требуется понимание сложных алгоритмов и умение реализовать их без подсказок.