feat: add presentation demo mode

This commit is contained in:
deploy
2026-07-04 01:09:10 +02:00
parent 77069748ee
commit f3e2d16059
15 changed files with 1064 additions and 87 deletions

View File

@@ -1,69 +1,98 @@
# Demo Script
Target duration: 3-5 minutes.
Open https://arhipovdan.ru/ and switch Header to `Presentation Mode`.
## 1. Open The Dashboard
## 3-Minute Defense
Open https://arhipovdan.ru/.
### 0:00-0:25 — System Overview
Explain that this is a 2D engineering simulation, not a decorative animation: the SVG scene shows a scaled work zone, conveyor dimensions, sensors, stop-gate, pushers and roll-cages.
Demo step: `System overview`.
## 2. Normal Flow
Say: the system models the full loop: detection -> classification -> actuator command -> physical route.
Select `Normal flow`, press `Start`.
Watch: engineering SVG scene, sensors, stop-gate, pushers and B/C/D routes.
Explain:
### 0:25-0:55 — Normal Item To B
- item enters zone A;
- camera captures bbox;
- laser measures height;
- ultrasonic confirms gate position;
- gate holds item;
- classifier selects B/C/D;
- route command is shown on the scene;
- event log records the full cycle.
Demo step: `Normal item to B`.
Question closed: can the system show a full sorting cycle end-to-end?
Apply scenario, use `Run suggested action` or `Step state`.
## 3. Step-By-Step Decision
Say: dimensions pass, roundness is below threshold, category B opens the gate and sends the item straight.
Press `Reset`, then use `Step state`.
### 0:55-1:25 — Oversized To C
Explain each state in the timeline. Show that Step advances by logical state, not by arbitrary animation time.
Demo step: `Oversized item to C`.
Question closed: can the jury inspect synchronization and state transitions?
Say: dimensions fail first, so C has priority even before shape routing.
## 4. Oversized And Round Rules
Watch: decision tree FAIL, `ROUTE_TO_C`, lower roll-cage.
Select `Oversized item`, step to classification.
### 1:25-1:55 — Round Object To D
Show decision tree:
Demo step: `Round object to D`.
- dimensions check fails;
- category C selected;
- roundness is lower priority because dimensions are checked first.
Say: dimensions pass, but roundness >= 0.8, so the item goes to D for repack/shape issue.
Then select `Round object` and show D when dimensions pass and roundness >= 0.8.
### 1:55-2:25 — Fault And Safety
Question closed: how is classification proved?
Demo step: `Jam / fault handling` or `Emergency stop`.
## 5. Robustness Scenarios
With Safe Demo ON, confirm the fault scenario intentionally.
Show `close_items`, `low_confidence`, `jam`, `emergency_stop`.
Say: abnormal states stop conveyor motion and require Reset.
Explain:
### 2:25-3:00 — Criteria Coverage
- close items generate spacing warning and queue length;
- low confidence uses rule-based fallback;
- jam enters FAULT and stops conveyor;
- emergency stop enters EMERGENCY_STOP and requires Reset.
Demo step: `Performance and synchronization`, then focus criteria panel.
Question closed: what happens outside the happy path?
Say: this checklist maps every OZON criterion to scenario, component and doc evidence.
## 6. PID And Metrics
## 5-Minute Defense
Point to PID panel and metrics cards.
Use all 10 demo steps:
Explain that PID is simplified: actual speed approaches target in normal flow and decays toward zero in fault/emergency.
1. System overview.
2. Normal item to B.
3. Oversized item to C.
4. Round object to D.
5. Boundary dimensions.
6. Low confidence fallback.
7. Close items queue.
8. Jam / fault handling.
9. Emergency stop.
10. Performance and synchronization.
Question closed: how is conveyor control represented without overbuilding physics?
For each step:
1. Read `What to watch`.
2. Apply recommended scenario.
3. Use `Step state` or `Run suggested action`.
4. Point to the highlighted focus area.
5. Close with the presenter phrase.
## Fallback If Domain Does Not Open
1. SSH to server.
2. Check local frontend:
```bash
curl -I http://127.0.0.1:3100/
```
3. Check Docker project:
```bash
docker compose -p owl -f /opt/arhipovdan/app/docker-compose.server.yml ps
```
4. If screenshots/video are prepared later, show them while explaining the same demo steps.
## What Each Screen Proves
- SVG scene proves physical route and actuator command.
- Classification panel proves why category B/C/D was selected.
- Timeline proves synchronization and step-by-step behavior.
- PID panel proves conveyor control-loop behavior.
- Event Log proves traceability.
- Criteria panel proves coverage of OZON evaluation points.

View File

@@ -1,41 +1,61 @@
# Jury Q&A
## 1. Why 2D, Not 3D?
## 1. Why Is This Not Just An Animation?
The animation is driven by a deterministic state machine, classifier, sensor state, actuator state, metrics and event log. The scene visualizes domain state instead of playing a decorative timeline.
## 2. How Is Classification Connected To The Actuator?
`classifyItem` returns B/C/D. The simulation maps that category to `ROUTE_TO_B`, `ROUTE_TO_C` or `ROUTE_TO_D`, which changes gate and pusher states and draws the physical route.
## 3. How Do You Prove The Route Was Correct?
The decision tree shows thresholds and PASS/FAIL, the scene shows the selected command and route arrow, and Event Log records state, command/category and item id.
## 4. Where Are OZON Rules Reflected?
The rules are explicit in classification limits: min/max dimensions, roundness threshold and C priority. Criteria Coverage maps these rules to scenarios and docs.
## 5. How Does The Operator Safely Stop The System?
The `emergency_stop` scenario enters `EMERGENCY_STOP`, stops conveyor target speed and requires Reset. In Presentation Mode, Safe Demo requires confirmation before fault scenarios.
## 6. What Happens On Sensor Failure Or Low Confidence?
Low confidence is logged as a warning. The system still applies deterministic dimensions/roundness rules as a fallback and shows this in the panel.
## 7. Why 2D, Not 3D?
2D is enough for MVP validation: it shows geometry, timing, sensor positions, routes and state transitions without spending effort on heavy rendering.
## 2. Where Is Computer Vision?
## 8. What Is Needed For A Physical Prototype?
Replace pseudo-CV with a real CV service, connect PLC/robot telemetry, calibrate sensor latencies, add hardware interlocks and persist event logs.
## 9. Where Is Computer Vision?
The MVP uses pseudo-CV: bbox, dimensions, confidence and latency are derived from mock items. The architecture keeps CV output separate from classification, so a real CV service can replace it later.
## 3. How Is Classification Correctness Proven?
## 10. How Is Classification Correctness Proven?
The decision tree shows PASS/FAIL for dimensions and roundness, actual values, thresholds and final category. Tests cover key boundary cases.
## 4. How Are Dimensions And Circular Section Handled?
## 11. How Are Dimensions And Circular Section Handled?
Dimensions are checked first against min/max width, depth and height. If they pass, roundness is checked against threshold 0.8.
## 5. Why Does C Have Priority Over D?
## 12. Why Does C Have Priority Over D?
Oversized or undersized items are operationally unsafe for the main line and must be diverted first. Therefore dimensions check precedes roundness.
## 6. How Is Synchronization Shown?
## 13. How Is Synchronization Shown?
Cycle timeline shows state order, simulated timestamps, durations and status: done, active, pending or skipped.
## 7. How Does The Actuator Part Work?
## 14. How Does The Actuator Part Work?
The stop-gate fixes the item. B opens the gate, C extends pusher C, D extends pusher D, then mechanisms return home.
## 8. What Happens On Jam?
## 15. What Happens On Jam?
The system enters FAULT, conveyor target speed becomes 0, actual speed decays toward 0, and Reset is required.
## 9. What Happens On Low CV Confidence?
A warning is logged, but the system still classifies by deterministic dimensions and roundness rules.
## 10. How To Scale This To A Real Hardware-Software System?
Replace pseudo-CV with a CV service, connect PLC/robot telemetry via backend/WebSocket, persist event logs, calibrate sensor latencies and add recovery policies.

View File

@@ -0,0 +1,19 @@
# Submission Checklist
Before final submission:
- [ ] `npm run build` passed.
- [ ] `npm run test` passed.
- [ ] Docker project `owl` is running.
- [ ] `https://arhipovdan.ru/` opens.
- [ ] `https://www.arhipovdan.ru/` opens.
- [ ] `https://ai-shorts.ru/` still works and was not affected.
- [ ] Presentation Mode opens.
- [ ] Demo steps checked.
- [ ] Safe Demo confirmation checked for jam/emergency.
- [ ] OZON Criteria Coverage Panel checked.
- [ ] Engineering Mode still works.
- [ ] Scenarios checked: normal_flow, oversized_item, round_object, boundary_dimensions, close_items, low_confidence, jam, emergency_stop.
- [ ] Docs present: README, ARCHITECTURE, DEMO_SCRIPT, SCENARIOS, JURY_QA, SUBMISSION_CHECKLIST.
- [ ] Branch pushed to `origin/dan_branch`.
- [ ] Nginx backup path from deploy is known if infrastructure rollback is needed.