mozgi ← Все промпты
Claude Opus 5.5

Процедурный бесконечный зум в 3D в браузере: камера уходит всё глубже в сетку из красных и зелёных пикселей, доходя до кварков

Промпт

INFINIZOOM

Создайте infinizoom: процедурный мир с бесконечным приближением. Результат должен
представлять собой автономный проект BunJS. Запуск `bun run server` должен собрать и
запустить его (подключите соответствующий скрипт "server" в package.json). В этой
директории находятся три локальных ресурса, которые необходимо использовать:
./macbook_interior.png (настоящая фотография разобранного MacBook Pro),
./apple_m4_scheme.png (схема топологии кристалла Apple M4) и
./wallpaper.jpg (фотография обоев рабочего стола размером 1920×1200). Загружайте
обои из этого локального файла — никогда не получайте содержимое с внешних серверов
(единственное исключение: сам three.js можно импортировать по URL с CDN).

Мир

По единому 3D-миру бесконечно проходит фиксированная траектория камеры, которая
приближает изображение через следующие уровни:

Основной маршрут: комната → стол → MacBook Pro → внутренняя часть корпуса → логическая
плата → корпус Apple M4 → кристалл M4 → производительное ядро → блок целочисленного
ALU → стандартная логическая ячейка → FinFET-транзистор → сечение материала
внутри ребра → кристаллическая решётка кремния → одна элементарная ячейка → атом →
его ядро → нуклон → кварк. Логические вентили и схемы должны быть анимированы в
процессе вычислений.

Ветка экрана: ровно одно ответвление, парящее над MacBook. При выборе другой стороны
происходит погружение внутрь дисплея: экран → панель дисплея → тайлы пикселей →
блок пикселя → один пиксель → его красный/зелёный/синий субпиксельные светодиоды →
светоизлучающий слой → молекула-излучатель → затем маршрут сходится с той же
цепочкой атом → ядро → нуклон → хвост к кварку. Светодиоды должны быть точными:
строгое соответствие один к одному между пикселями экрана и светодиодами, а их цвета
должны совпадать с цветом соответствующего пикселя. Экран анимирован, а светодиоды
обновляются в соответствии с анимацией в реальном времени.

Движение вперёд по траектории И ЕСТЬ приближение; движение назад — отдаление.
Архитектура должна расширяться аддитивно: добавление новой структуры = одна функция
рендеринга + один вызов в её родителе; добавление ответвления = ещё один маршрут;
будущее расширение назад (t < 0: за окно → город → планета → Вселенная) должно
требовать только добавления уровней в начало траектории. Параметр времени должен
передаваться через всё дерево, чтобы анимация оставалась возможной на любой глубине.

Архитектура (жёсткие ограничения)

- Изменяемое состояние состоит РОВНО из: одного числа с плавающей точкой t (позиция
  на траектории), одной битовой строки ветвления (0 = левая/A, 1 = правая/D; бит
  добавляется при прохождении развилки и удаляется при возврате ниже неё) и исходного
  ввода (зажатые клавиши, положение мыши). Каждый кадр является чистой функцией от
  (t, branches, raw input, wall-clock time). Никакого другого состояния — ни графа
  сцены, ни объектов узлов, ни сохранённых данных мира, ни кэшей структуры мира.
- Рендереры являются чистыми функциями, которые напрямую вызывают дочерние функции:
  render_room() вызывает render_desk(), которая вызывает render_macbook() … вплоть до
  render_quark(). Никакого слоя диспетчеризации и никаких классов. Стек вызовов
  представляет собой обход сцены.
- Искажение пространства масштабов выполняется через локальные системы координат:
  числа с плавающей точкой не могут одновременно хранить метры и фемтометры, поэтому
  каждый рендерер работает в собственной локальной системе размером примерно в одну
  единицу, а камера преобразуется в систему координат каждого дочернего объекта.
  Геометрические вычисления выполняются относительно камеры в double и преобразуются
  в float только в самом конце, чтобы изображение оставалось свободным от артефактов
  на всех примерно 17 порядках масштаба. Абсолютно одинаковые константы компоновки
  должны размещать структуры при рендеринге И формировать траекторию — единый источник
  истины, иначе камера заметно собьётся с линии.
- Рендеринг в непосредственном режиме поверх three.js: на каждом кадре рекурсия
  передаёт примитивы в инстансированные пулы; three.js служит только растеризатором.
  Ничего находящегося за пределами экрана или меньше субпикселя не создаётся и не
  обрабатывается рекурсивно.

Траектория и камера

- Скорость: высокая. Вся основная поездка должна занимать примерно 20 секунд, с
  комфортным, ощущающимся как постоянный временем прохождения каждого уровня
  (экспоненциальное ощущение приближения) и мягким замедлением возле развилки и концов
  траектории.
- Форма: плавно изогнутые дуги. Не блуждающие, не круговые и не меняющие направление
  случайным образом — но и НЕ идеально прямые лучи. Мягкие, осмысленные изгибы.
- Зелёная линия: траектория всегда видна внутри сцены как полупрозрачная зелёная
  линия. Это должна быть бесконечно тонкая линия шириной примерно 2 пикселя на экране
  НА ЛЮБОМ расстоянии, реализованная как настоящий примитив GL line (не трубки, не
  стержни и не меши любого вида), прозрачная (никогда не сплошная), и она НИКОГДА не
  должна становиться шире при приближении к камере или прохождении мимо неё — это
  буквально линия пути, видимая как вблизи, так и вдали.
- Камера никогда не должна смотреть в пустоту. В каждый момент поездки изображение
  должно быть заполнено структурой. Конкретно: приближение к каждому уровню должно
  быть диагональным скольжением (примерно под углом 45°) над поверхностью родительского
  объекта — никогда низким горизонтальным пролётом (который оставляет верхнюю половину
  экрана пустой) и никогда отвесным падением (которое вырождает крен камеры). Каждый
  уровень должен отображать насыщенное, неоднородное содержимое на расстоянии, где
  прибывает камера, — никогда не плоскую серую пластину.
- Точки погружения должны попадать точно в центр значимых подструктур. Линия должна
  входить в ЦЕНТР одного из маленьких цветных квадратов (конкретного ядра на кристалле,
  конкретного блока в ядре, конкретного пикселя на экране) — никогда в границу, край,
  промежуток, шов или серую область-заполнитель. Переходы между уровнями (например,
  производительное ядро → блок целочисленного ALU, «100 мкм в ширину») должны быть
  тщательно проверены: камера должна видеть детализированную структуру на всём пути.
- Окклюзия никогда не должна проявляться рывком: каждая оболочка, которую камера
  собирается пересечь (клавиатурная панель, затвор транзистора, катод светодиода,
  защитное стекло экрана и т. д.), должна плавно исчезать как чистая функция от t
  непосредственно перед приближением камеры к ней и возвращаться точно так же при
  движении наружу.

Управление и HUD

- W перемещает глубже, S — обратно.
- На развилке: большая полупрозрачная ‹ у левого края и › у правого края экрана,
  каждая обозначена своей клавишей (A / D), а текущая выбранная сторона подсвечена и
  светится. Никакого текста в форме предложений с инструкциями.
- Движение мыши управляет направлением взгляда с полным диапазоном 360° — можно
  посмотреть во все стороны, включая назад.
- В левом верхнем углу всегда отображается название текущего места (например,
  "performance core") вместе с текущим физическим масштабом ("3.2 mm across").

Содержимое — точность и плотность

Всё должно быть насыщенно детализировано — считайте, что нужно «в 10 раз больше
деталей, чем кажется достаточным», а скрытие должно быть неагрессивным: удалённые и
периферийные объекты остаются видимыми; больше деталей всегда предпочтительнее, чем
меньше. Всё, что может выглядеть правдоподобно, должно быть анимировано и живым.

- Комната и стол: убедительная залитая дневным светом комната (окно, занавески, пол,
  стены, полка, стул, дверь, ковёр, настенные часы, стрелки которых действительно
  движутся, лампы, кабели) и убедительный стол (MacBook, растение в горшке, бумага,
  кружка, книги, телефон, ручки…).
- Внешний вид MacBook: правильные пропорции, полноценная клавиатура с обозначениями
  на каждой клавише, трекпад, порты, шарнир, рамка экрана с выемкой и камерой.
- Внутренняя часть MacBook: внутри MacBook множество компонентов — воспроизведите их
  в пиксельно точных местах в соответствии с ./macbook_interior.png: два вентилятора
  с ЯВНО ВРАЩАЮЩИМИСЯ, хорошо различимыми лопастями (используйте несколько крупных
  лопастей, а не плотное размытие), S-образная тепловая трубка и теплорассеиватель,
  чёрная логическая плата, покрытая пассивными компонентами, экранами EMI и чипами,
  антенная планка вдоль шарнира, боковые платы портов, расположение аккумуляторных
  ячеек: 4 по углам + 2 высокие по центру, с напечатанными обозначениями, алюминиевые
  распорки, гибкий кабель трекпада, проходящий посередине к своему золотому разъёму,
  расположенные по бокам динамики, лента, термопрокладки, винты — всё это.
- Кристалл M4: размещение блоков должно соответствовать ./apple_m4_scheme.png
  (4 P-ядра + общий L2, 6 E-ядер + L2, 10 GPU-ядер, 16 ядер Neural Engine, SLC,
  медиа- и дисплейные движки, ISP, Secure Enclave, PHY-подсистемы памяти по краям),
  при этом нигде не должно быть пустой/серой подложки — каждая область должна быть
  подписанным блоком, а блоки должны показывать внутреннюю подструктуру на каждом
  промежуточном масштабе. Внутренняя структура CPU (топология ядра: кэши, декодеры,
  планировщики, ALU, блоки вычислений с плавающей точкой, регистровые файлы…)
  должна быть чрезвычайно детализированной, а не состоять из нескольких плоских
  прямоугольников.
- Цифровые схемы, выполняющие операции, — явно важнейший приоритет: приближение должно
  проходить через логику, которая заметно ВЫПОЛНЯЕТ ВЫЧИСЛЕНИЯ. Стандартные ячейки
  являются настоящими вентилями (AND/OR/NAND/NOR/XOR/NOT): по их входным сетям идут
  живые сигналы 0/1 (яркий = 1, тёмный = 0), их выход является фактической булевой
  функцией входов, импульсы мчатся по проводам при переключении вентилей, а целые
  логические блоки мерцают от активности переключений на каждом уровне приближения.
- Анимированная электронная симуляция: затвор FinFET работает на основе живой формы
  управляющего сигнала, и пока он открыт, носители заряда заметно движутся от истока
  к стоку. Продолжайте проходить через настоящие материалы: оксид затвора, легирующие
  примеси, алмазоподобную кубическую решётку кремния с истинным шагом 0,543 нм,
  внутрь атомов с обращающимися электронами, в ядро с протонами и нейтронами и
  анимированным глюонным полем, а затем к кваркам.
- Экран должен быть НАСТОЯЩИМ: настоящее изображение с реальной детализацией панели
  MacBook — фотография ./wallpaper.jpg в качестве фона рабочего стола и процедурно
  нарисованная поверх неё ОС (строка меню, док с узнаваемыми значками, перекрывающиеся
  окна приложений: редактор кода со строками, окрашенными по синтаксису, файловый
  браузер, терминал с мигающим курсором и окно видео, в котором действительно
  воспроизводится видео с анимацией на полной частоте кадров). Никогда не используйте
  мозаику из цветных квадратов. Все уровни экрана (полная панель → тайлы → пиксели →
  яркость субпикселей) должны вычисляться из ОДНОЙ И ТОЙ ЖЕ функции изображения, чтобы
  содержимое не менялось при приближении, а детализация должна строго монотонно
  увеличиваться при приближении камеры — ни на каком расстоянии приближения экран не
  может стать МЕНЕЕ детализированным, чем мгновение назад.
- Светодиоды субпикселей: каждый светодиод должен светиться ФАКТИЧЕСКИМ значением
  соответствующего канала экранного изображения в этой точке пикселя — реалистично и
  точно, без цветов по умолчанию. Поскольку экран анимирован, светодиоды должны
  заметно МЕНЯТЬ цвет со временем. Точка погружения должна находиться в пикселе
  воспроизводимого видео, где R, G и B отчётливо отличаются друг от друга и
  продолжают изменяться. Внутри светодиод не является сплошным объектом: смоделируйте
  полный стек OLED — управляющую схему TFT с линиями данных/сканирования и накопительным
  конденсатором, отражающий анод, транспортные слои, светоизлучающий слой,
  полупрозрачный катод, вспомогательную проводку, распорки, герметизацию — с живой
  симуляцией: дырки дрейфуют вверх, электроны — вниз, рекомбинируют в
  светоизлучающем слое со вспышкой, а фотоны вылетают вверх и наружу. Ниже этого
  слоя он переходит в молекулярную плёнку, затем в одну молекулу-излучатель,
  построенную из настоящих атомов и соединяющуюся с общей атомной цепочкой.

Законы визуального качества

- Нигде и ни на каком масштабе, при движении в любом направлении, ничего не должно
  внезапно появляться, мерцать или конфликтовать по глубине. В частности, никогда не
  создавайте перекрывающиеся компланарные поверхности или вложенные совпадающие
  полупрозрачные объёмы; любой материал, освобождённый от тумана (светящиеся экраны,
  стекло, свечение), всё равно должен вручную затухать и отсекаться по расстоянию,
  иначе оболочки окружающих структур будут преследовать камеру на больших глубинах
  приближения в виде гигантских мерцающих плоскостей.
- Все переходы LOD должны быть плавными морфингами или строго более детальными
  уточнениями идентичного содержимого — никогда не заменяйте его чем-то более грубым,
  размытым или окрашенным иначе.
- Вращательные/периодические анимации должны быть настроены так, чтобы их можно было
  различить (без временного алиасинга, из-за которого они замирают или искажаются).
- Работа при 60 fps.

Качество кода

Обеспечьте лаконичную, минимальную и элегантную реализацию. По возможности
используйте чистые функции. Сохраняйте максимально близкий к Haskell стиль, даже
несмотря на то, что это TypeScript. Основная сложность функций должна определяться
различными отображаемыми объектами, причём каждый объект должен быть отдельной
функцией рендеринга. Каждый отображаемый объект должен находиться в собственном
файле src/render/<name>.ts — именно эта директория должна расширяться по мере
добавления новых объектов. Организуйте проект так, чтобы его можно было масштабировать
простым добавлением новых функций/файлов рендеринга в src/render/. Избегайте
ненужной сложности.
Открыть в каталоге
Права на промпт принадлежат автору @VictorTaelin. За коммерческое использование — продвижение нейросетей, агрегаторов, Telegram-ботов — отвечаете вы: mozgi.io ответственности не несёт. Подробнее →
Модель
Claude Opus 5.5
Формат
16/10
Автор
@VictorTaelin
Оригинал
x.com ↗

Похожие промпты

Все промпты для Claude Opus 5.5

Скопировано