6.1 KiB
6.1 KiB
Final Physical Acceptance Audit
1. Verdict: ГОТОВО
Все критические требования к 3D-демо выполнены. Движение товаров стало физически детерминированным, полностью устранено хаотичное движение, "полеты" и телепортации. Демо готово к записи видео защиты.
2. Что проверено на production
- Production URL:
https://arhipovdan.ru/иhttps://arhipovdan.ru/details. - Автоматизированный скрипт на базе Playwright прошёл полный цикл из 8 сценариев, засняв ключевые этапы.
- Скриншоты сохранены и подтверждают корректность интерфейса и физики.
- Проверка доступности: все адреса возвращают
HTTP 200 OK.
3. 8-scenario checklist
- box_b → B: Стандартный товар корректно едет по конвейеру в зону B.
- lunchbox_b → B: Компактный товар корректно проходит классификацию в зону B.
- oversized_box_c → C: Негабарит уходит по
chute_cи оседает в C. - small_item_c → C: Слишком маленький товар забракован и уходит в C.
- plate_d → D: Круглый товар распознан и отправлен в D.
- bottle_d → D: Цилиндрический товар отправлен в D.
- c_priority → C: Товар, который одновременно негабаритный и круглый, отправлен в приоритетную зону C.
- low_confidence → B: Товар с низкой уверенностью ML (с предупреждением в HUD) прошел по fallback-правилам в зону B.
Для каждого сценария команда соответствует ожидаемой категории (ROUTE_TO_B/C/D), визуальный путь совпадает, товар остается "физичным" (находится на поверхностях), без хаотичных прыжков или вращений.
4. Physical motion checklist
- Товар движется только по допустимым поверхностям (лента, склиз C/D, линия B, пол корзины C/D).
- Товар не летит.
- Товар не телепортируется.
- Товар не проваливается под текстуры.
- Товар не выходит за пределы roll-cage после остановки (settled).
- Скорость на ленте строго = 1 м/с.
- Лента и товар движутся абсолютно синхронно в фазах перемещения (доказано тестами
physicalItemMotion).
5. STL/model checklist
box-300.stlиспользуется (SKU-001)lunchbox.stlиспользуется (SKU-002)box-400.stlиспользуется (SKU-004)plate.stlиспользуется (SKU-006)bottle.stlиспользуется (SKU-007)cylinder.stlиспользуется (SKU-008)- Fallback primitives используются честно и только там, где STL реально нет или она слишком тяжелая (например, моющее средство 3.5 MB заменено на
box, пуфик наcylinder, ручка наbox, и отсутствующие boundary/oversized box наboxиcylinder).
6. C/D containment checklist
oversized_box_c→ уходит поchute_c, остается внутри C roll-cage на уровне пола.c_priority→ уходит в C.plate_d / bottle_d→ уходят поchute_d, оседают внутри D roll-cage.- Оседание реализовано детерминированно, товары распределяются в сетке слотов внутри 1.2x0.8м, поэтому остаются внутри корзины.
7. UI/adaptive checklist
- HUD и CV overlay не накладываются (CV overlay смещен влево и имеет max-height).
- Кнопки Play/Pause/Stop работают корректно.
- Окно Demo Complete появляется после 8 сценариев.
- Страница
/detailsработает без проблем. - Mobile layout не ломается (ширина 390px протестирована), нет горизонтального скролла.
8. Console/runtime errors
- Нет. Проверка Playwright
page.on('console')вернула 0 ошибок (NO_CONSOLE_ERRORS).
9. Screenshots list
Все файлы успешно сохранены в docs/final_physical_acceptance_screenshots/:
01_home_idle.png02_stl_item_on_belt.png03_belt_sync_t0.png04_belt_sync_t1.png05_route_to_b.png06_route_to_c_chute.png07_settled_in_c_cage.png08_route_to_d_chute.png09_settled_in_d_cage.png10_c_priority_to_c.png11_low_confidence_warning.png12_demo_complete.png13_mobile.png14_details.png
10. Remaining risks
- Незначительное пересечение моделей (clipping) в корзине C/D при накоплении множества товаров (mesh intersection), так как физический движок не добавлялся, и позиционирование происходит по индексной сетке слотов. Это визуально допустимо и не ломает защиту.
11. Recommendation
Можно смело переходить к записи видео защиты. Проект выглядит профессионально, физическая модель стабильна, багов не выявлено.