Добавить Vue 3 web-dashboard с расширенным API и Docker-сборкой.

Полноценный браузерный UI (Pinia, Three.js) с паритетом Qt: редактор цепочки, wizard, пресеты, метрики и 3D viewer; API расширен для catalog/validate/demo/user-presets; CLI отдаёт step metrics в JSON.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-18 14:53:53 +03:00
co-authored by Cursor
parent 45b2ed6e22
commit 18a58f2e85
33 changed files with 4304 additions and 56 deletions
+26 -14
View File
@@ -208,10 +208,13 @@ CLI печатает краткую сводку по метрикам (`input`,
Для запуска пайплайна с PCL в изолированной среде (без конфликтов с `libpq` на хосте) добавлены:
- `docker/Dockerfile` — сборка `DotsToSirface` с `PCL_ENABLED` и запуск FastAPI;
- `docker/Dockerfile` — сборка `DotsToSirface` с `PCL_ENABLED` + Vue 3 dashboard;
- `docker/docker-compose.yml`;
- `api/main.py` — HTTP API (`/api/run`, `/api/presets`);
- `web/`браузерный 3D viewer (Three.js).
- `api/main.py` — HTTP API (`/api/run`, `/api/presets`, `/api/validate-config`, …);
- `web-vue/`Vue 3 + Pinia + Three.js (полный dashboard, паритет с Qt);
- `web/` — legacy MVP (fallback, если Vue `dist` не собран).
**Qt desktop (`./DotsToSirface`) сохраняется** как локальный fallback без Docker.
### Быстрый старт
@@ -222,21 +225,30 @@ docker compose up --build
Откройте в браузере: [http://localhost:8080](http://localhost:8080)
1. Загрузите `.ply`
2. Выберите preset (или оставьте default)
3. Нажмите **Run pipeline**
4. В viewer появятся точки и mesh, справа — метрики пайплайна
### Локальная разработка frontend
### API
```bash
cd web-vue
npm install
npm run dev
```
API проксируется на `http://localhost:8080` (см. `vite.config.js`).
### API (основное)
- `GET /api/health` — статус сервиса
- `GET /api/presets` — список JSON-пресетов
- `POST /api/run` — multipart: `file` + опционально `preset_id`
- `GET /api/catalog` — метаданные стадий
- `GET /api/builtin-presets` — LiDAR / RGBD / Synthetic / Fast / Robust
- `GET /api/presets` — встроенные + файловые + user presets
- `POST /api/validate-config` — warnings / chainHealth без запуска
- `POST /api/wizard` — suggested chain
- `GET /api/demo` — демо-облако точек
- `POST /api/user-presets` — сохранение пользовательских пресетов
- `POST /api/run` — multipart: `file` или `demo_surface` + `config_json`
- `GET /api/geometry/{workId}` — бинарная геометрия для больших облаков
CLI внутри контейнера пишет в `--output-json` не только метрики, но и геометрию:
`points` (массив `[x,y,z]`) и `triangleIndices` (массив `[i0,i1,i2]`).
Конфиг пайплайна по умолчанию: `docker/default_pipeline.json`.
CLI `--output-json` включает `points`, `triangleIndices`, `preprocessStepMetrics`.
## Демо