Проверки разработки
Короткие замеры по ходу работы над движком. Каждая проверка отвечает на один вопрос из карточки в базе знаний и снимается на указанном устройстве; когда вопрос решён, проверка уходит из списка.
Твины на устройствах
≈ 3 мин
Пример твинов движка NICE (лок 30): при старте — интро (красное лого выезжает сверху и делает оборот, синие кнопки выпрыгивают по очереди, загорается лампа); шарик-«рука» качается у левой кнопки; средняя синяя кнопка — пауза на 3 секунды; монеты крутятся и мигают разом; тап по зелёному кубу гасит только его; тап по ящику уничтожает его посреди пути; зелёная CTA внизу пульсирует, тап — «нажатие»; правая синяя кнопка открывает и закрывает окно эндкарда. Замера нет — пройдите пример и ответьте агенту по четырём пунктам.
- Карточка
- v1tw-devices
- Устройства
- Galaxy M12 (лок 30) и iPhone 16.
- Проверить
- 1. Интро: плавно, конечное положение лого не мелькает до выезда. 2. Пауза (средняя кнопка): всё стоит, «рука» качается. 3. Сверните браузер на пару секунд и вернитесь: пока свёрнуто, ничего не уехало вперёд — всё продолжается с того же места. 4. CTA пульсирует; тап — кнопка коротко «нажимается» без дёрганья и снова пульсирует.
- Ответ
- По каждому пункту на каждом устройстве — «работает» или что не так.
Ввод на устройствах
≈ 5 мин
Пример ввода движка NICE: капсула ходит джойстиком (полоса внизу слева) и клавишами WASD или стрелками; тап по мячу, дереву или капсуле вверху подсвечивает модель; ящик тащится пальцем; тап по полу ставит метку; щипок или колесо мыши — зум; быстрый свайп — поворот камеры на 90°; клавиша P — пауза. Замера нет — пройдите пример и ответьте агенту по четырём пунктам.
- Карточка
- v1in-devices
- Устройства
- Galaxy M12, Pixel 6, iPhone 16, iPad; на ПК — мышь и клавиатура.
- Проверить
- 1. Пример управляется пальцем, на ПК — мышью и клавиатурой. 2. Джойстик и тап вторым пальцем по модели одновременно: модель выбрана, капсула идёт дальше. 3. Нет зума страницы, прокрутки, меню долгого нажатия, выделения текста. 4. Свайп от края экрана посреди джойстика отпускает его — капсула встаёт.
- Ответ
- По каждому пункту на каждом устройстве — «работает» или что не так.
Освещение на устройствах
≈ 3 мин
Пример освещения движка NICE: карта и такси из плеебла, ночь — солнце с тенью, 8 фонарей-spot, 2 мигалки-point, туман, отражения неба на машине, панорама неба. Статичный кадр и облёт камеры; облёт без тени солнца, без тумана, с потолком фонарей 4 и 0, с DPR 1; день; четыре перехода пресетов подряд; фонарь с тенью; без отражений; время свёртки карты отражений; снимки машины и неба. По замеру решаем, держит ли M12 лок 30 и что урезать.
- Карточка
- v1sl-devices
- Устройства
- Лок 30 — Galaxy M12: «Старт». Лок 60 — Pixel 6, iPhone 16, iPad: «Старт». Панорама 4096 — Galaxy M12: «Старт», в конце посмотрите на снимки неба — совпадают ли с обычной страницей.
- Перед стартом
- Телефон вертикально, другие приложения закрыты, экран не трогать до конца. Страница весит 5 МБ. В конце — «Отправить агенту».
- Файлы
- nice-lighting-…json, nice-lighting-pano4k-…json
Город на устройствах
≈ 4 мин + 1 мин
Сборка движка NICE с городом из плеебла: 525 мешей, 30 материалов, 20 машин, солнце с тенью. Статичный кадр и пролёты камеры по улицам с тенью live, cache и none, карта тени 2048, DPR от 1 до устройства; большой город из 9 копий — облёт над крышами и улицы с отсечением мешей и без. Отдельно — «Регулятор»: пролёт на high, как движок сам снижает качество. По замеру решаем бюджеты пикселей, размер карты тени, кэш тени на low и отсечение.
- Карточка
- v1r-devices
- Устройства
- Лок 30 — Galaxy M12: «Старт», затем «Регулятор». Лок 60 — iPhone 16, iPad, Pixel 6: «Старт». Без лока — Pixel 6: «Старт».
- Перед стартом
- Телефон вертикально, другие приложения закрыты, экран не трогать до конца. Страница весит 8 МБ.
- Файлы
- nice-city-…json, nice-city-governor-…json
Стенды
Графика
≈ 1 + 2 мин
Сцена плеебла: земля, 70 пропсов, 10 героев. Два набора. Основной — 14 случаев по отдельности: разрешение, тени, точечный свет, обводка, частицы, пост-обработка. Нагрузка — сочетания (тень + свой проход + частицы), 100–300 частиц, mediump, UI-слой из 30 элементов, PBR с шестью картами, сглаживание контекста, PMREM.
- Перед стартом
- Телефон вертикально, другие приложения закрыты, экран не трогать до конца. Сначала «Основной», затем «Нагрузка».
- Файлы
- nice-bench-…json, nice-bench-load-…json
Открыть стенд
Кадр и ядро
≈ 50 с
Частота экрана до первого касания и после него, три способа ограничить FPS на 30, 60 и 45, цена кадра на 1000 и 5000 объектов и скорость JS относительно ПК.
- Перед стартом
- Откройте стенд и подождите пару секунд до нажатия «Старт» — это замер до касания.
- Файл
- nice-frame-…json
Открыть стенд
Анимация
≈ 1 мин
Скиновые персонажи размером с дроида: 43 кости, 47 тыс. вершин, три клипа сразу. Сколько их держит устройство: 1, 5, 10, 20, 30 и 40; 30 с обновлением через кадр; 30 без обновления, только скиннинг на GPU.
- Перед стартом
- Экран не трогать до конца.
- Файл
- nice-anim-…json
Открыть стенд
Ассеты и распаковка
≈ 20 с
Старт сжатой сборки: base64 и base122 в байты, распаковка встроенным DecompressionStream и fflate, геометрия meshopt на 50 тыс. вершин, декод WebP, JPEG, PNG и AVIF и загрузка текстур в WebGL, список сжатых форматов GPU.
- Файл
- nice-assets-…json
Открыть стенд
Звук и ввод
≈ 5 мин
Когда звук начинает играть, какие форматы декодируются, слышно ли в беззвучном режиме, возвращается ли звук после сворачивания и звонка. Потом касания: джойстик, мультитач, жесты у краёв экрана.
- Перед стартом
- Громкость на половину, беззвучный режим выключен. Стенд сам попросит переключить режим, свернуть браузер и отвечать «слышно / не слышно».
- Файл
- nice-audio-input-…json
Открыть стенд
Физика: crashcat
≈ 30–60 с
Лёгкий бэкенд на чистом JS — кандидат по умолчанию. Три сцены: «плеебл» (50 тел на неровной земле, триггер и луч за кадр), 150 тел с 20 лучами, стопки из 300 кубов; шаг 1/60 и 1/30. Меряется только шаг физики; кубы на экране — чтобы было видно, что стенд живой.
- Перед стартом
- Экран не трогать до конца. Три стенда физики лучше пройти подряд: crashcat, Bullet, Rapier.
- Файл
- nice-physics-crashcat-…json
Открыть стенд
Физика: Bullet
≈ 2–3 мин
Урезанный Bullet (ammo.js, ядро) в двух сборках, -O3 и -Oz, и Bullet из Cocos 3.8.8 для сравнения — в WASM и в asm.js (как в сборках Cocos с «Bundle Mode Of Native Code: Asmjs»). WASM внутри страницы, как в плеебле. Те же три сцены и два шага, плюс время загрузки WASM.
- Перед стартом
- Экран не трогать до конца.
- Файл
- nice-physics-bullet-…json
Открыть стенд
Физика: Rapier
≈ 1–1,5 мин
Rapier 0.21: урезанная сборка t1 и полная из npm. Страница весит 7 МБ — грузится дольше остальных. Те же три сцены и два шага, плюс время загрузки WASM и рывок первых шагов.
- Перед стартом
- Экран не трогать до конца.
- Файл
- nice-physics-rapier-…json
Открыть стенд
Как сохранить результат
- В конце стенд покажет JSON и кнопки «Копировать» и «Сохранить файл».
- Нажмите «Сохранить файл» — файл попадёт в «Загрузки». Кнопка браузера «Назад» вернёт к списку стендов.
- Если сохранить не вышло, нажмите «Копировать» и вставьте текст в заметку или сообщение.
Каждый стенд — отдельная страница. Pixel 6 серии 2 снят на странице-артефакте claude.ai, где стенд работал во фрейме; разница с отдельной страницей — в пределах шума, кроме проверок «до касания».
Что уже снято
Samsung Galaxy M12Mali-G52 · 339×753 @2,125
графика 27.09нагрузкакадранимацияассетызвукфизика
Google Pixel 6Mali-G78 · 412×915 @2,625
графика 27.09нагрузка 27.09кадр 27.09анимация 27.09ассеты 27.09звук 27.09физика
iPhone 15
графиканагрузкакадранимацияассетызвукфизика
iPad Pro 12.9" 4-го пок.iPadOS 26.7
графиканагрузкакадранимацияассетызвукфизика
Зелёное — снято, жёлтое — нужно снять.