Полный промпт для Three.js/WebGL: 32-секундный зацикленный фильм внутри затопленного готического собора с монументальными астрономическими часами, постановочными движениями камеры, процедурной водой, стеклянными планетами и освещением затмения. Chris W опубликовал результат запуска Astra и сравнение с другими моделями.
Промпт, опубликованный автором. Перевод и ваши изменения могут повлиять на результат.
Полный промпт дословно скопирован из общедоступного JSON бенчмарка автора (totality-engine.prompt), ссылка на который опубликована в посте X от 6 сентября. Согласно данным бенчмарка, промпт датирован 23 августа, а запуск GPT-6 Astra xHigh — 4 сентября; это недавно собранный источник, а не недавно созданный промпт. В приложенных исходных материалах Astra сравнивается с Fable; живая демоверсия указывает именно на запуск Astra. Результат не был независимо воспроизведён.
Three.jsWebGLкинематографичныйсоборGLSL
Промпт
Создай отполированный, визуально впечатляющий, автономный одnofайловый HTML/WebGL-проект под названием:
totality-engine.html помести его в documents/llm-benchmarks
Не ограничивайся описанием идеи. Действительно сгенерируй полностью рабочий HTML-файл и сохрани его в текущем каталоге.
Создай 32-секундный зацикленный кинематографичный короткометражный фильм, а не диораму-песочницу. Главный продукт — работа камеры. Интерактивность можно добавить после первого полного воспроизведения фильма.
Мир:
Затопленный готический собор в момент полной фазы солнечного затмения. Чёрная вода покрывает пол нефа. В средокрестии возвышаются монументальные латунные астрономические часы — Totality Engine: вложенные кольца армиллярной сферы, стеклянные планеты, ядро в виде чёрного солнца и 40-метровый маятник из тёмного мрамора с золотой фурнитурой. Мокрый известняк, патина вердигри, свечи и золотая пыль. Всё создаётся процедурно в коде. Никаких внешних моделей, текстур, изображений, файлов со шрифтами или аудио.
Постановочный фильм (одни часы, именованные сцены, бесшовный цикл):
0,0–4,0 с DUST
Экстремальный крупный план. Одна пылинка вращается в луче красно-золотого света. Контекста почти нет. Медленный наезд.
4,0–10,0 с NAVE
Камера отдаляется и поднимается. Мы стоим по колено в чёрной воде в средокрестии собора. Нервюрные своды уходят в туман. Маятник входит в кадр слева — тяжёлый, медленный — и проходит настолько близко, что ощущается его масса. От камеры по воде расходятся круги.
10,0–18,0 с ASCENT
Следуй за маятником на подъёме. Покажи армиллярную сферу под сводом: как минимум четыре вложенных латунных кольца с разными наклонами, три стеклянные планеты с различными атмосферами (одна облачная, одна с кольцами, одна с полосами бурь) и ядро в виде чёрного солнца. Вдоль трифория — группы свечей. Золотая пыль падает вверх, вопреки гравитации.
18,0–24,0 с THREAD
Камера проходит сквозь армиллярную сферу. Пройди через стекло планеты с кольцами (с преломлением, а не с помощью имитации прозрачности), на мгновение следуй вдоль плоскости её колец, затем выйди по направлению к чёрному солнцу. Следующий взмах маятника искажает свет вокруг него, словно слабая гравитационная линза.
24,0–30,0 с TOTALITY
Корона взрывается кольцом бело-золотого огня, которое становится крайним колесом армиллярной сферы. Один тик часов, который должен ощущаться на слух: все кольца мгновенно выстраиваются в идеальное совпадение, после чего корона замирает. Не высветляй кадр до белого. Удерживай силуэт всей конструкции на фоне огненного кольца.
30,0–32,0 с CODA
Плавно перейди в медленное продолжение, совпадающее с кадром 0, чтобы цикл был незаметным. Никакой резкой склейки.
После первого полного воспроизведения включи вращение камеры перетаскиванием, масштабирование колёсиком мыши и кнопку «Повторить фильм». Кнопка «Пауза» должна работать всегда. Дополнительно: клавиши 1–5 могут перемещать к началу соответствующей сцены.
Построение сцены:
- Выраженные передний, средний и задний планы. В сцене NAVE маятник занимает передний план. Своды и туман формируют глубину.
- Добавь как минимум два ориентира человеческого масштаба (затопленную скамью, упавшую башню, ряд свечей), чтобы конструкция воспринималась гигантской.
- Вода должна быть настоящим материалом: отражения армиллярной сферы, слабый эффект Френеля, медленная деформация поверхности, круги от маятника и камеры.
- Планеты должны быть из толстого стекла, а не светящимися шарами. Сквозь хотя бы одну из них должен просматриваться искажённый собор.
- Латунь должна ощущаться тяжёлой: в тени она тёмная, и только её кромки ловят свет короны.
- Пламя свечей и золотая пыль должны создаваться через инстансинг. Пыль поднимается вверх только во время ASCENT и TOTALITY.
- Нервюрные своды, силуэты аркбутанов и гигантское круглое окно-розетка / апертура затмения на дальней стене, выровненная с чёрным солнцем.
- Палитра ограничена и зафиксирована: мокрый известняк #8a8680, латунь #c4a574, вердигри #2f6f66, багряный цвет затмения #6b1020, корона #ffe9c2, чёрная вода #05070c, золотая пыль #e6c27a. Никакого циана, мадженты, неона, радуги или «AI-стиля» с фиолетовым на чёрном.
- Типографика: небольшой заголовок «TOTALITY ENGINE» и название сцены, кинематографично, не в виде дашборда.
Технические требования:
- Используй Three.js со стабильного CDN. Весь HTML, CSS и JS должны находиться в одном файле.
- Управляй всей анимацией с помощью единого таймера прошедшего времени и именованных временных интервалов сцен. Никаких независимых циклов с Math.random, никакого Date.now в шейдерах, никакого шума без заданного seed. Используй только генератор псевдослучайных чисел с seed; seed должен быть постоянным: 0xA2E1.
- В кинематографичной работе камеры используй плавную интерполяцию с ease-in-out для крупных движений, более тяжёлое сглаживание для маятника (у него есть масса) и длинный хвост затухания при переходе в TOTALITY. Линейное орбитальное движение в качестве основного поведения камеры — ошибка.
- Используй собственные GLSL-шейдеры (ShaderMaterial или полноэкранный проход), а не имитацию нужного эффекта стандартными материалами:
1. Вода (отражение + эффект Френеля + медленная деформация)
2. Корона чёрного солнца (огонь / плазма, а не спрайт)
3. Линзирование вокруг маятника (изгиб света рядом с грузом во время THREAD)
4. Толстое стекло как минимум для одной планеты
- Используй InstancedMesh для пыли, свечей и любых повторяющихся каменных или латунных элементов. Не создавай тысячи отдельных объектов Mesh.
- Постобработка допустима, но не может заменять освещение. Если используешь bloom, он должен быть едва заметным и применяться только к короне и свечам. UnrealBloom на всей сцене — ошибка.
- Атмосферу создают туман, мокрые отражения и апертура затмения. Не используй дешёвые прозрачные конусы в качестве «божественных лучей», если только они действительно не управляются шейдером.
- Проект должен адаптироваться к размеру окна, занимать всё окно браузера, корректно обрабатывать изменение размера и работать с целевой частотой 60 fps на ноутбуке 2023 года. Если приходится выбирать, сначала сокращай число частиц, а не урезай кинематографичную работу камеры.
- Небольшой ненавязчивый интерфейс: заголовок, текущая сцена, пауза, повтор. Никакого счётчика FPS, dat.gui или включённых отладочных инструментов.
- Никаких комментариев TODO, псевдокода, заглушек, отсутствующих функций или фраз вроде «с X было бы лучше».
- При загрузке фильм должен запускаться автоматически. Статичный кадр за кнопкой запуска — ошибка.
Планка качества:
Это должно выглядеть как кадр из короткометражного фильма, а не пример Three.js. Если на скриншоте на 26-й секунде не читается «соборные часы в момент затмения», работа не завершена. Сначала доработай композицию, материалы и камеру, и только потом добавляй новые объекты.
Как использовать этот промпт
01
Начните с подходящего инструмента
Откройте привычного помощника для программирования или 3D-инструмент. Попробуйте модель, указанную в примере, и изучите инструкции по настройке в связанных проектах.
02
Выберите одно изменение
Замените объект, художественный стиль или окружение. Чётко опишите камеру и взаимодействие. Сначала создайте небольшую версию, затем улучшайте по одной детали.
03
Добавьте собственные объекты в сцену
Для своего персонажа или реквизита создайте 3D-модель по короткому описанию предмета или референсу, затем импортируйте её в проект.
Права на превью принадлежат соответствующим авторам. Перед повторным использованием кода или материалов проверьте первоисточник и лицензию проекта.