Files
ozone-tech_owl_prime/src/data/demoSteps.ts
Даня Архипов 4413f01ce4 chore: preserve pre-cleanup product baseline
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 17:48:00 +00:00

138 lines
7.1 KiB
TypeScript

import type { DemoStep } from '../domain/types';
export const DEMO_STEPS: DemoStep[] = [
{
id: 'system-overview',
title: 'System overview',
scenarioId: 'normal_flow',
preferredAction: 'reset',
focusArea: 'scene',
explanation: 'The line is presented as detection -> classification -> actuator command -> physical route.',
whatToWatch: 'Scaled SVG scene, sensor positions, stop-gate, pushers and B/C/D routing arrows.',
juryValue: 'Shows that the project is an engineering simulation of a sorting cell, not a decorative animation.',
relatedCriteria: ['engineering-realism', 'cv-actuator-integration', 'physical-routing'],
presenterPhrase: 'We model the whole loop: the item is detected, classified by rules, converted to an actuator command and routed physically.',
},
{
id: 'normal-item-to-b',
title: 'Normal item to B',
scenarioId: 'normal_flow',
preferredAction: 'step',
focusArea: 'classification',
explanation: 'A regular box passes dimensions and roundness checks, so it stays on the main sorter path.',
whatToWatch: 'Decision tree PASS/PASS and ROUTE_TO_B command in the scene and event log.',
juryValue: 'Proves the happy path and shows category correctness for standard goods.',
relatedCriteria: ['category-correctness', 'classification-rules', 'physical-routing'],
presenterPhrase: 'For a normal SKU, dimensions pass and circular section is not detected, so the gate opens to B.',
},
{
id: 'oversized-to-c',
title: 'Oversized item to C',
scenarioId: 'oversized_item',
preferredAction: 'step',
focusArea: 'classification',
explanation: 'Oversized goods fail the first rule and are routed to roll-cage C before shape is considered.',
whatToWatch: 'Dimensions FAIL, category C, pusher C and route arrow to the lower roll-cage.',
juryValue: 'Shows rule priority and safe diversion for non-compliant dimensions.',
relatedCriteria: ['classification-rules', 'boundary-cases', 'manipulation-logic'],
presenterPhrase: 'C has priority because geometry safety is checked before shape: this item cannot continue on the main sorter.',
},
{
id: 'round-object-to-d',
title: 'Round object to D',
scenarioId: 'round_object',
preferredAction: 'step',
focusArea: 'scene',
explanation: 'Roundness K > 0.8 after valid dimensions sends the item to D for repack/shape issue handling.',
whatToWatch: 'Roundness FAIL for B, category D and the upper route/pusher D command.',
juryValue: 'Shows how the circle-section rule becomes a physical route.',
relatedCriteria: ['classification-rules', 'geometry-variety', 'physical-routing'],
presenterPhrase: 'The dimensions fit, but roundness is high, so the system sends it to D for do-upakovka.',
},
{
id: 'c-priority-oversized-round',
title: 'C priority oversized + round',
scenarioId: 'c_priority',
preferredAction: 'step',
focusArea: 'classification',
explanation: 'Item is both oversized and round; dimensions are checked first so category is C, not D.',
whatToWatch: 'DIM FAIL, K high, category C, ROUTE_TO_C active, route D inactive.',
juryValue: 'Proves C-priority rule for Track 3.',
relatedCriteria: ['classification-rules', 'boundary-cases', 'physical-routing'],
presenterPhrase: 'Even though the item is round, dimensions fail first, so we route only to C.',
},
{
id: 'boundary-dimensions',
title: 'Boundary dimensions',
scenarioId: 'boundary_dimensions',
preferredAction: 'step',
focusArea: 'classification',
explanation: 'Items at the edge of the allowed envelope prove the rule implementation is stable.',
whatToWatch: '450 x 320 x 320 passes, while width 9 mm fails min width and goes to C.',
juryValue: 'Shows deterministic boundary behavior rather than visual guessing.',
relatedCriteria: ['boundary-cases', 'category-correctness', 'reproducibility-docs'],
presenterPhrase: 'The exact boundary is accepted, but one millimeter below minimum width is rejected.',
},
{
id: 'low-confidence-fallback',
title: 'Low confidence fallback',
scenarioId: 'low_confidence',
preferredAction: 'step',
focusArea: 'eventLog',
explanation: 'Low pseudo-CV confidence raises a warning but does not block rule-based classification.',
whatToWatch: 'Warning message, fallback note and final category in classification/event log.',
juryValue: 'Shows graceful degradation when CV is uncertain.',
relatedCriteria: ['cv-actuator-integration', 'fault-handling', 'classification-rules'],
presenterPhrase: 'CV confidence is low, so we flag it, but dimensions and roundness still produce a deterministic decision.',
},
{
id: 'close-items-queue',
title: 'Close items queue',
scenarioId: 'close_items',
preferredAction: 'start',
focusArea: 'timeline',
explanation: 'Close spacing creates a queue warning and items are still processed one cycle at a time.',
whatToWatch: 'Queue length, queue delay, spacing warning and sequential timeline.',
juryValue: 'Shows robustness for a common operational issue without overcomplicated physics.',
relatedCriteria: ['timing-synchronization', 'cycle-time-throughput', 'fault-handling'],
presenterPhrase: 'The line detects close spacing, holds the queue and keeps the state machine deterministic.',
},
{
id: 'jam-fault-handling',
title: 'Jam / fault handling',
scenarioId: 'jam',
preferredAction: 'step',
focusArea: 'safety',
explanation: 'A jam at the stop-gate moves the system to FAULT and stops the conveyor.',
whatToWatch: 'FAULT state, red scene overlay, PID target 0 and Reset required.',
juryValue: 'Shows fail-safe behavior and operator recovery path.',
relatedCriteria: ['fault-handling', 'safety-emergency', 'pid-synchronization'],
presenterPhrase: 'When the gate jams, the safest command is to stop motion and require reset.',
},
{
id: 'emergency-stop',
title: 'Emergency stop',
scenarioId: 'emergency_stop',
preferredAction: 'step',
focusArea: 'safety',
explanation: 'Emergency stop interrupts the line and brings motion toward zero.',
whatToWatch: 'EMERGENCY_STOP state, stopped conveyor and PID speed falling to zero.',
juryValue: 'Shows explicit safety handling for abnormal operation.',
relatedCriteria: ['safety-emergency', 'fault-handling', 'engineering-realism'],
presenterPhrase: 'Emergency stop is not another route; it is a safety state that freezes the line until reset.',
},
{
id: 'performance-sync',
title: 'Performance and synchronization',
scenarioId: 'normal_flow',
preferredAction: 'start',
focusArea: 'pid',
explanation: 'Timeline, latency cards and PID graph show how the simulated control loop stays synchronized.',
whatToWatch: 'CycleTimeline, CV latency, actuator latency, throughput and PID speed curve.',
juryValue: 'Shows that the demo explains timing and throughput, not only classification.',
relatedCriteria: ['cycle-time-throughput', 'timing-synchronization', 'engineering-realism'],
presenterPhrase: 'Here we close the loop: decisions are timestamped, actuators have latency and conveyor control is visible.',
},
];