Files
ozone-tech_owl_prime/docs/VISUAL_REALISM_AUDIT.md
Даня Архипов 985f7c327d feat: maximize sorter demo realism and add safe agent MVP
Wire live classifyItem into continuous playback, add jam/E-stop cases,
presenter controls (seek/speed/hotkeys), quality modes, demo scripts,
audit docs, and a verify-only autonomous agent CLI with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:53:35 +00:00

7.0 KiB
Raw Blame History

Аудит визуального реализма

Дата: 2026-07-15
Стек визуализации: Three.js + React Three Fiber + drei (клиентский WebGL)
Решение по стеку: остаёмся на R3F — смена на Babylon/Unity Web не обоснована; текущий стек уже даёт industrial twin и STL.

Легенда: Измерено (код/сборка/тесты) · Оценка (экспертный вывод без GPU-профайлера браузера в этом отчёте).


1. Цель аудита

Отделить:

  1. Что уже выглядит как оборудование.
  2. Что всё ещё «игровое» или декоративное.
  3. Что критично для доверия жюри за первые 10 секунд.

2. Текущая визуальная архитектура

Компонент Continuous / Details /details
Scene root SorterDigitalTwinContinuous SorterDigitalTwin
Items PhysicalPlaybackItem / motion domain Item3D + sim state
Conveyor Conveyor3D + network layout Аналогичные примитивы, другой wiring
Actuators Gate/pusher анимации State-driven actuators
Sensors Overlay + measurement HUD SensorRig3D / panels
Models STL через modelAssets + fallbacks То же семейство ассетов
Camera Cinematic / demo camera path Свободная/инженерная

Проблема parity: два twin визуально расходятся — разные акценты освещения/композиции/детализации. Для жюри это снижает ощущение «одной реальной линии».


3. Чек-лист визуальных факторов

Фактор Статус Комментарий Тип
Геометрия / пропорции Частично OK Layout в мм через physicalLayout Измерено
Масштаб сцены OK Единая физическая раскладка Измерено
Камера / перспектива OK на / Cinematic playback Измерено
Focal length / DoF Минимально DoF не форсируется (мешает чтению) Оценка
Освещение Среднее Достаточно для читаемости; не studio HDRI Оценка
Контактные тени Ограничено shadows: false в quality presets (perf) Измерено
AO / post FX Выкл. в presets effectsEnabled: false Измерено
Материалы PBR Базовые Шероховатость/металл упрощены Оценка
Текстуры / загрязнения Слабо Нет сильного wear layer Оценка
Края / bevel Частично STL + примитивы Оценка
Движение ленты / ролики OK с trade-off Static/sparse rollers в perf-режимах Измерено (ветка perf)
Приводы / задержки Симулированы кинематикой Не servo-physics Измерено
Motion blur Нет Сознательно Измерено
Anti-aliasing По режиму low/medium off; high/demo on Измерено
Звук / вибрация Нет Не реализовано Измерено
Заполнение накопителей Упрощено B receiver timing учтён в истории perf Измерено (история)
CV overlay Есть RULE line + inspection Измерено
Presentation declutter Есть Скрытие панелей в presentation Измерено

4. Режимы качества

Источник: src/domain/qualityMode.ts (Измерено).

Mode dprMax AA Shadows maxItems rollers target FPS
low 1 нет нет 3 none 30
medium 1.25 нет нет 5 sparse 30
high 1.5 да нет 6 full 60
demo 1.5 да нет 6 full 60

Автовыбор: по ширине viewport и опционально по recent FPS; adaptQuality понижает режим при просадке.

Целевая демо: стабильные 60 FPS при возможности, иначе стабильные 30 без рывков (требование брифа; фактический FPS на клиенте жюри — не измерен в этом аудите на всех устройствах).


5. Что выглядит убедительно

  • Непрерывный путь товара от входа до B/C/D с подписями зон.
  • STL-модели там, где ассет доступен; осознанные fallbacks для тяжёлых STL.
  • Proof HUD и CV overlay связывают картинку с решением.
  • Fault визуально останавливает поток (freeze).
  • Presentation mode убирает engineering chrome.

6. Что снижает доверие («игровое»)

Симптом Почему заметно Рекомендация
Разный вид / и /details «Две разные игрушки» Shared scene kit (Open)
Нет теней/AO Плоские объекты Осторожно включить в demo на мощных GPU клиентов
Pseudo-CV bbox Идеальная геометрия Оставить RULE + confidence честно
Отсутствие звука Тихая «сцена» Опциональный ambient loop (низкий приоритет)
Идеально ровное движение без контактов Нет micro-collisions Seeded jitter уже частично компенсирует

7. Критичность для показа

Приоритет Находка Действие
P0 Proof + classification visible Сделано
P0 Presentation + hotkeys Сделано
P1 Twin visual unify Open
P2 Shadows/AO в demo-only Open, perf-gated
P3 Sound / wear textures Backlog

8. Вывод

Визуальный стек достаточен. Узкое место не «не тот движок», а согласованность двух сцен и сдержанный shading ради FPS. Для жюри важнее читаемый контур решения, чем ray-traced реализм. Следующий максимум ROI: унификация twin + актуальный production dist.