# AI-полигон: операторская ревизия ## Причина и результат Владелец обнаружил реальные дефекты первой поверхности: разделение на «Мои» и «Готовые» локации, внешние синие ссылки вместо подготовленных файлов, автоматически открытый кадр старого прогона, отсутствие видимого ровера и неясное состояние Stop. Техническая связка камеры и моделей ещё не давала удобной наблюдаемой симуляции. Теперь библиотека содержит только «Доступные локации»: скачанные Forest Scan и Bamboo Trail с действием «Открыть». Нижний preview, внешний каталог, список исторических кадров и raw links удалены из этой поверхности. Авторство и лицензия сохранены у каждой сцены. LCC Gaussian Mirror и AI Inference остаются отдельными. Открытая локация имеет явный заголовок, включая fullscreen. Один viewer переключает «За ровером», «Обзор» и «Камера AI». Первый показывает упрощённый ровер с размерами колёс/колеи Jetbot по фактическим XY/yaw из applied receipt; второй даёт свободный обзор; третий показывает именно RGB из Isaac, переданный моделям. Это не экспорт точной модели Jetbot и не цифровой двойник физического аппарата владельца. Отрисовка интерполирует только уже полученные позы, не вычисляет свои команды или физику и не подменяет кадры inference. В режиме камеры 3D rendering приостановлен. Кнопки паузы/шага/Stop и состояние находятся внутри fullscreen viewer. Подготовка показывает стадии мира, моделей и камеры. Stop сначала показывает остановку, после cleanup — «Остановлено · inference выключен». Пауза показывает нулевое движение, без устаревшего показателя скорости. Конечная поза текущего прогона сохраняется; старые прогоны сами в библиотеке не открываются. При отсутствии первого кадра завершённый прогон не продолжает показывать ожидание камеры. Использованы существующие Button, IconButton, SegmentedControl, StatusBadge, LoadingRegion, GlassSurface из NODEDC Design Guideline и отдельный domain renderer. Новых продуктовых корней или локальных замен дизайн-компонентов нет. ## Bamboo Trail [Источник](https://superspl.at/scene/dd49e9a8), автор luckysplat, CC BY 4.0. Лицензия и разрешённая загрузка проверены в авторизованном SuperSplat Download UI. Его Source action не дал файл; сохранены публичные assets именно опубликованного viewer и SHA manifest, без извлечения cookies или credentials. `fetch_lod.py` выбирает полный опубликованный LOD0 из manifest и архивирует 11 SOG chunks через `fetch_sog.py`. Добавлена обработка gzip JSON. Официальный закреплённый SplatTransform 3.4.0 через `Prepare-Scene.ps1` собрал обычный PLY без перезаписи предыдущего результата; LOD0 содержит 5 818 957 splats, SH degree 0. - PLY: 325 861 955 bytes. - SHA-256: `d7f2aad3240cc1a7369eb0d8b0d4c96a9cadbe07ee352c25d297b1037a812824`. - World: `aiworld-7a58431a5551469cbbf0e8a4efef2a8b`. - Rotation [-90, 0, 180], ground Z -2.418, spawn [-0.696364224, -0.696364224], heading 22.55°, camera height 0.8, max speed 0.15, условный scale 1. Файл импортирован штатными блоками по 4 MiB, хеш проверен при завершении и на Worker. Native Isaac успешно создал camera RGB; конвертированный USD закеширован. Первый запуск был долгим из-за конвертации 5.8 млн splats. При исходном heading 47.55° камера смотрела на край тропы и камни, первые 15 решений были no-road. Heading повёрнут на 25° вдоль видимой тропы, после чего выполнен полный тест ниже. ## Причины задержки и сбоя Stop В пользовательском `airun-2b1d079ab6b04df3a39019d664c75329` фактически выполнено 54 samples / 54 applied. Native process завершился одновременно с taskkill; его exit code 255 был ошибочно принят coordinator как сбой. Isaac и временные модельные контейнеры уже отсутствовали, но UI получил failed вместо stopped. `worker.py` теперь ожидает действительное завершение дочернего процесса и допускает гонку с уже вышедшим процессом. После cleanup он заново читает control/state, чтобы конкурентный Stop не превратился в completed или failed. `model_stack.py` проверяет отмену при подготовке моделей. Core принимает промежуточные стадии подготовки, не объявляя running до первого sample. Reservation освобождается только после завершения native process и удаления собственных container IDs. UI ранее опрашивал каталог раз в 1.5 с и пропускал промежуточные кадры; теперь активный прогон опрашивается с интервалом 200 мс, с одним последовательным запросом. Постоянные HTTP connections сокращают повторные TCP handshakes; соединение пересоздаётся после простоя >2 с, чтобы не переиспользовать истёкший server keepalive. Неопределённые mutation requests автоматически не повторяются. RTX subframes: 1. Applied receipts получили yaw и измерения полного цикла/render/transport. Physics остаётся lockstep: ровно 100 мс симуляции за решение, 6 ticks по 1/60 с; во время ожидания моделей мир не движется. Плавность browser viewer не означает такую же частоту камеры или решений. Это ещё не realtime 1×. ## Проверки на Worker | Проверка | Фактический результат | | --- | --- | | Forest через UI, `airun-5950929b54754077a3f21ae64ea1e8a5` | 87 samples / 87 applied; stopped | | Пауза Forest | Счётчик удержан на 86 через 1.2 с; один шаг дал строго 87 | | Полный цикл Forest | Медиана 313 мс; render 62 мс; transport до receipt 47 мс; inference 156 мс | | Bamboo, `airun-a10fe72eddca48548ab8ec23e4f59d38` | 120 samples / 120 applied; completed; 26 road, 17 uncertain, 77 no-road | | Полный цикл Bamboo | Медиана 297 мс; inference 156 мс | | Stop во время движения, `airun-9015f6ab095848e78db24b6dcda5045d` | 6 samples / 6 applied; stopped через 2.17 с после запроса | | Stop при загрузке моделей, `airun-1c2c258e1211459dbbfe471a9fb1b958` | 0 samples; stopped; подготовка отменена | | Stop из fullscreen, `airun-e9be1e3e45e84f71862a9c0b7eddcda0` | 0 samples; «Останавливаем…» → «Остановлено · inference выключен» | Проверены SHA-256 всех 87 Forest-кадров. Bamboo дал движение, затем остановку при недостатке уверенно распознанной дороги; это не прохождение всей тропы. Полный цикл соответствует примерно 3.2–3.4 решениям/с и 0.32–0.34× simulation time. Ранее указанные 156 мс — только latency моделей, не полный FPS системы. Локально: 71 backend test (AI-полигон и shared recorded queue) прошёл, после корректировки starting/running повторены 19 AI-полигон tests. Добавлены регрессии для startup progress и гонки taskkill. Frontend full pass: 891/892; единственная ошибка была старым ожиданием соседнего Rerun camera-journal теста. Оно исправлено в его задаче; затем все 11 focused architecture/simulation/camera-journal tests прошли. Финальные production build/typecheck, Ruff и diff whitespace check прошли. В фактическом браузере проверены обе сцены, движущийся pose marker, камера AI, пауза, step, Stop, свободный обзор, fullscreen с доступным Stop и Escape. После финального build проверены название в fullscreen и библиотека без нижнего preview. Тяжёлый 3D закрыт, оставлена библиотека из двух локаций на Core 8000. ## Сохранение окружения и handoff Release `0af432ce95816402`, SHA-256 архива `47230a1d1a2cffe3dd448e5e0fb5aef354bba4ee4ad6a0d7008791593cd1e0b9`. После проверки сохранены все прежние 21 container ID и их image/status/restart, mounts, memory/GPU bindings и настроенные PortBindings; все прежние 108 image identities/tags и 9 volumes. Runtime NetworkSettings.Ports не подменяет сравнение настроенных PortBindings. Отдельная соседняя задача добавила CPU-only контейнер `ndc-rerun-navigation-build` и свой образ; они не относятся к AI-полигону. В 18:48 UTC собственных kit.exe и model containers нет, active_run null. Оставлен один idle coordinator PID 19724 с worker.lock, через foreground launcher session 21791 и private reverse forward 18081. Автозапуска OS нет. Core 8000 жив; 8765 не слушает. Существующие AI Inference/KB4 конфигурации не менялись. Запуск/остановка описаны в [runbook](../runbooks/AI_POLYGON_WORKER_006.md). Private evidence: `outputs/ai-polygon-2026-09-21/revision-2/`: forest-performance, bamboo-performance, pause-verification, stop-qualification, worker-inventory, worker-preservation, operator-handoff JSON; исходные receipts и RGB рядом. Архивы Bamboo и manifests находятся в родительском private outputs directory. Промежуточные неуспешные попытки и пользовательский failed run сохранены. ## Оставшаяся граница Это наблюдаемая лабораторная симуляция с реальным inference, но ещё не принятая автономная навигация. Масштаб некалиброван, физическая земля плоская. Деревянная ступень Forest не имеет collision и раньше не была распознана как препятствие. Трава только визуальная. Объезд, тормозной путь, устойчивое движение по длинной тропе, динамические люди/животные и глобальный GPU arbitration требуют отдельных контролируемых сценариев. Физические VESC/ASVD-аппараты в этом контуре отсутствуют.