NICE · замеры на устройствах

Стенды NICE

Откройте на телефоне или планшете, запустите стенд и сохраните результат файлом. Файл пришлите разработчику — он ляжет в bench/result_from_phones/.

Аналитика замеров →

Проверки разработки

Короткие замеры по ходу работы над движком. Каждая проверка отвечает на один вопрос из карточки в базе знаний и снимается на указанном устройстве; когда вопрос решён, проверка уходит из списка.

Твины на устройствах

≈ 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
Открыть стенд

Как сохранить результат

  1. В конце стенд покажет JSON и кнопки «Копировать» и «Сохранить файл».
  2. Нажмите «Сохранить файл» — файл попадёт в «Загрузки». Кнопка браузера «Назад» вернёт к списку стендов.
  3. Если сохранить не вышло, нажмите «Копировать» и вставьте текст в заметку или сообщение.

Каждый стенд — отдельная страница. Pixel 6 серии 2 снят на странице-артефакте claude.ai, где стенд работал во фрейме; разница с отдельной страницей — в пределах шума, кроме проверок «до касания».

Что уже снято

Зелёное — снято, жёлтое — нужно снять.