
«AI solved motion graphic», пишут в X. В репозитории клипа Opus 5.5 пять ревизий и заказчик
В X пишут, что ИИ решил моушн-графику одним промптом. В коде клипа Opus 5.5 другое: пять ревизий, бриф для агентов на сценах и баг цвета, найденный через 4 дня.
В этой статье5
Лирик-клип на песню «I'm Upping My P(doom)» длиной 2:36 целиком отрисован кодом: по README репозитория mexicat/pdoom-video концепцию, выравнивание текста по звуку, рендерер на three.js и все 17 сцен сделал Claude Opus 5.5 в Claude Code. Это не нейросетевое видео, а детерминированная программа: 56 файлов TypeScript, 22 290 строк, экспорт через headless Chrome и ffmpeg, 4K-версия рендерится около 2,5 часа. В X ролик разошёлся с подписью «AI solved motion graphic» рядом с историями про клипы «одним промптом». Репозиторий рассказывает другое: пять ревизий тритмента, человек в роли заказчика, отдельные инструкции для агентов, писавших сцены, ручные поправки в разметке слов. А через четыре дня после публикации сторонний PR нашёл, что все рендеры выходили со сдвигом цвета.
«I made this with one prompt using Opus 5.5». Так 23 сентября Donald Jewkes подписал свой клип на ту же песню, что и герой этой статьи, и добавил: «я пять минут говорил с компьютером, Claude работал 12 часов, я проснулся, и вот». Пост собрал 3,4 миллиона просмотров. На следующий день разработчик Giacomo Magnanini (в X он mexicat) показал свою версию, нарисованную кодом на three.js, а 27 сентября Min Choi переопубликовал её с подписью «AI solved motion graphic».
Слова «один промпт» и «решил» мы проверили по первоисточнику. Magnanini выложил клип Claude Opus 5.5 в открытый репозиторий под MIT вместе с тритментом, инструкцией для авторов сцен и историей коммитов. По ним видно, как на самом деле работает связка «Claude Code пишет код, код рендерит видео», и эта картина полезнее вирусной подписи.
Как один трек про P(doom) стал бенчмарком для Opus 5.5
Песня не принадлежит ни одному из авторов клипов. Текст написали osmarks и MusicPerson, оригинал сгенерирован в Udio в ноябре 2024 года, а 9 сентября 2026 пользователь deckard выложил её поп-версию, сделанную в Suno, под названием Claude-Pop. Трек про AGI, максимизатор скрепок и RLHF стал общей задачей: у всех одна и та же аудиодорожка на 2:36, различаются только визуалы.
22 сентября пользователь other__reality выложил на неё клип с подписью «лучший визуальный дизайн из всех моделей, что я тестировал». Donald Jewkes в своём промпте называет исходники этого ролика: репозиторий JohnHeibel/PDoomVideo, где кадры рисуются кистью p5.brush. Дальше пошла эстафета: Jewkes, потом pleometric «по воркфлоу Donald», потом mexicat «в другом стилевом направлении».
| JohnHeibel/PDoomVideo | Donald Jewkes | mexicat/pdoom-video | |
|---|---|---|---|
| Чем нарисовано | p5.js и p5.brush, мазки кистью | Seedance 2.5 и картинки fal как основа, JS-анимация поверх | three.js, GLSL-шейдеры, TypeScript |
| Что сказал человек | Персонаж Clawd и «интересные визуалы на каждую строку» | Промпт около 1 700 слов | Несколько раундов правок, пять ревизий тритмента |
| Инструкции для субагентов | ANIMATION_GUIDE.md, написан Opus | Не опубликованы | ENGINE.md для авторов сцен |
| Код | Открыт | Закрыт, опубликован только промпт | Открыт, MIT |
«Один промпт» Jewkes стоит прочитать целиком. Это около 1 700 слов технического задания: ключи ElevenLabs и fal (в диктовке он записан как «foul»), около двух тысяч долларов кредитов на генерацию, указание «потратить весь лимит» тарифа Max, персонажи, JS-анимация поверх сгенерированного видео по принципу ротоскопа и финальное «make no mistakes». Один промпт здесь честный в том смысле, что сообщение было одно. Но это полноценный бриф для продакшена, а не строчка «сделай клип».
Что лежит в репозитории mexicat/pdoom-video
Главное свойство рендерера записано в первой строке README: каждый кадр это детерминированная функция времени песни. Поэтому превью в браузере и офлайн-экспорт в 1080p60 или 4K60 дают один и тот же кадр. Ни одного пикселя из генеративной видеомодели в ролике нет. Всё, что вы видите (TikZ-единорог, осциллограф с графиком loss, бланк с печатью SAFE ENOUGH, поле из скрепок), нарисовано шейдерами и Canvas.
Клип на three.js с караоке-типографикой по словам. Рендерер на TypeScript (bun + Vite), экспорт через headless Chrome и ffmpeg, анализ звука на Python. Код под MIT, песня и текст под лицензию не попадают.
Конвейер делится на две части: звук разбирается один раз, а видео пересчитывается из кода сколько угодно.
- 1
Разобрать звук
Demucs отделяет вокал от музыки, два акустических CTC-движка выравнивают каждое слово по вокалу, Whisper проверяет результат. Отдельно считаются темп (132.007 BPM), доли, такты и огибающие громкости.
- 2
Сохранить тайминги
Итог ложится в data/lyrics.json (начало и конец каждого слова) и data/audio.json (биты, секции, удары барабанов). Рендереру больше ничего не нужно.
- 3
Разложить клип на сцены
17 модулей, по одному на «таблицу»: open, loss, prompt, hook, room, shoggoth и дальше до outro. Окна сцен привязаны к строкам текста и выровнены по сетке битов.
- 4
Смотреть в браузере
Vite-сервер показывает клип в реальном времени, с перемоткой по кадрам и зацикливанием одной сцены.
- 5
Экспортировать
Скрипт гонит headless Chrome по кадрам, передаёт сырые кадры в ffmpeg и кодирует x264. Motion blur собирается из 4–324 подкадров на кадр, по тому, насколько быстро движется картинка.
Сцены ищут строку текста по содержимому, а не по секундам: lyrics.get('sudden drop'), затем начало нужного слова. Если поправить разметку, все сцены сдвинутся вместе с ней. Именно так Claude Code может переделывать куски клипа, не ломая синхронизацию остальных.
Бриф, режиссёр и авторы сцен: как Claude Code вёл команду
Самое интересное в репозитории лежит в двух документах рядом с кодом. docs/TREATMENT.md это тритмент и style bible: идея в одном абзаце, палитра с HEX-кодами, четыре семейства шрифтов и их роли, правила караоке, описание каждой сцены. Там же прописано, чего в клипе быть не должно: фиолетово-цианового неона, светящихся мозгов, дождя из «Матрицы», и отдельно «ничего, что выглядит сгенерированным ИИ».
Revision 2 retired the realistic engraved human eye (opening and "What did Ilya see?"): the client found it uncanny.
Заказчик здесь человек, и тритмент хранит следы его решений ревизия за ревизией, до пятой. Реалистичный глаз убран, потому что заказчику стало не по себе. Синий акцент убран, потому что «читался жутко». Подписи в углах кадра убраны. Сам Magnanini в посте формулирует то же скромнее: результат впечатляет «после нескольких раундов доработки».
Второй документ, docs/ENGINE.md, адресован «авторам сцен». В таблице сцен у каждой есть владелец: A1–A8, B1 и lead. Правила для авторов звучат как регламент для подрядчиков: не трогать файлы вне своей сцены, не править таймлайн, об изменениях движка «спросить лида». Мы читаем это как схему «один агент-режиссёр и несколько агентов на сценах». В репозитории JohnHeibel это сказано прямо: ANIMATION_GUIDE.md написал Opus, чтобы ставить задачи субагентам, которых запускал параллельно.
Ещё одна строчка из ENGINE.md объясняет, почему у модели вообще получается видео. Главный способ проверить сцену там назван так: отрендерить стоп-кадры, «затем посмотреть PNG инструментом Read». Claude Code не смотрит видео, но умеет читать картинки. Поэтому контроль качества устроен как у аниматора с раскадровкой: вытащить кадры в нужные секунды, посмотреть, поправить. Для движения есть листы контактов и короткие клипы, а бюджет производительности задан жёстко: цель до 25 мс на кадр.
$ cd app && bun scripts/render.ts stills --t 12.5,13.0,14.2 --only open --out ../out/wip/open$ bun scripts/render.ts sheet --from 1.5 --to 9 --n 16 --cols 4 --only open --out ../out/wip/open/sheet.png# затем агент открывает PNG через Read и сверяет с тритментом
Что не заметили ни модель, ни автор
28 сентября в репозиторий пришёл PR от стороннего разработчика, и написан он тоже вместе с Claude Opus 5.5. Суть: кадры передавались в ffmpeg в sRGB, но переводились в yuv420p по умолчанию, матрицей BT.601, и без меток цвета. Плееры, браузеры и YouTube декодируют HD-видео без меток как BT.709. Итог в описании PR: «every render came out shifted», чистый зелёный #20C040 в Chrome превращался в (20, 169, 62). Кодирование с этой ошибкой лежало в репозитории с первого коммита 24 сентября.
Это хорошо показывает границу проверки через стоп-кадры. PNG, которые агент смотрит через Read, берутся до кодирования, поэтому в них цвета правильные. Ошибка жила на последнем шаге, куда модель не смотрела, а сдвиг оттенка на готовом ролике глазом не поймать, если не с чем сравнить. Нашёл её сторонний разработчик, сравнив значения пикселей.
Есть и другие места, где автоматика не справилась. В analysis/align.py лежат ручные поправки границ слов, выставленные по спектрограммам и графикам проверки. В финальном припеве ведущий вокал утоплен под бэк-вокалом, CTC-выравнивание там «ничего не находит», и слова расставлены вручную с уверенностью 0,35–0,45. Ролик на YouTube, по признанию README, старый рендер с четырьмя подкадрами на кадр, где быстрые движения распадаются на ступеньки. Лучшая версия получается, только если отрендерить её у себя, а это около 2,5 часа на M5 Pro и 13 ГБ файла в 4K при настройках по умолчанию.
Если будете рендерить видео из браузера
Проверьте, какой цветовой матрицей ffmpeg переводит кадры в yuv420p и ставит ли метки цвета. Без явного BT.709 сдвиг оттенков появится в любом похожем конвейере, и в стоп-кадрах до кодирования вы его не увидите.
Что брать себе, если делаете видео с Claude Code
Наше мнение, с которым можно спорить: ИИ здесь освоил не моушн-графику, а работу режиссёра. Модель держит в голове 17 сцен, пишет для них бриф, раздаёт исполнителям и проверяет результат по кадрам. Эстетические решения («это жутко», «синий лишний») всё ещё принимает человек, и в репозитории они записаны как ревизии. Если следующий такой клип выйдет без единой правки заказчика и с открытой историей, мы окажемся неправы.
Из репозитория стоит забрать три приёма, и они работают для любого видео из кода, клип тут частный случай:
- Тайминги отдельно от картинки. Звук и текст разбираются один раз в JSON, сцены ищут слова по содержимому. Правки не ломают синхронизацию.
- Тритмент как контракт. Палитра, шрифты, запреты и описание каждой сцены лежат в одном файле, а каждая ревизия дописывается туда же. Агент, который пишет пятую сцену, видит те же правила, что и первый.
- Проверка кадрами. Стоп-кадры и листы контактов, которые агент смотрит сам, плюс один шаг, который он не видит: готовый файл после кодирования.
Если хочется собрать такой конвейер без three.js и шейдеров, тот же подход «описываете сцену, Claude пишет код, код рендерит MP4» мы разбираем в гайде по моушн-видео на Remotion, а полный путь от сценария до ролика в курсе по моушн-видео с ИИ. Для анимаций на сайте, а не в видео, пригодятся готовые анимированные компоненты React Bits. Про то, как вообще устроена работа нескольких агентов под одним руководителем, мы писали в разборе оркестратора агентов Paperclip, а сколько стоит задача на Opus 5.5 по сравнению с GPT-6 Sol, считали в отдельной статье.
Версии репозиториев, просмотры и описания на 28 сентября 2026, проверяйте актуальные.
Источники10развернуть
- Giacomo Magnanini, «mexicat/pdoom-video», README, проверено 28 сентября 2026 — https://github.com/mexicat/pdoom-video
- Giacomo Magnanini, «I'm Upping My P(doom): treatment & style bible», docs/TREATMENT.md, 25 сентября 2026 — https://github.com/mexicat/pdoom-video/blob/main/docs/TREATMENT.md
- Giacomo Magnanini, «Engine guide (for scene authors)», docs/ENGINE.md, 26 сентября 2026 — https://github.com/mexicat/pdoom-video/blob/main/docs/ENGINE.md
- HEOJUNFO, «render: encode with BT.709 and tag the stream (#3)», 28 сентября 2026 — https://github.com/mexicat/pdoom-video/pull/3
- mexicat, пост с клипом, 24 сентября 2026 — https://x.com/_mexicat/status/2103108369569726802
- Donald Jewkes, «I made this with one prompt using Opus 5.5», 23 сентября 2026 — https://x.com/donaldjewkes/status/2102801274173587569
- Donald Jewkes, полный промпт, 23 сентября 2026 — https://x.com/donaldjewkes/status/2102801469976248500
- John Heibel, «JohnHeibel/PDoomVideo», README, проверено 28 сентября 2026 — https://github.com/JohnHeibel/PDoomVideo
- deckard, «Claude-Pop - I'm Upping My P(Doom)», 9 сентября 2026 — https://x.com/slimer48484/status/2097752569212756134
- Min Choi, «Opus 5.5 is pretty wild», 27 сентября 2026 — https://x.com/minchoi/status/2104227722377757031




Комментарии