Add cleaned RealSense/OpenCV CV under cv/ with secret-free example
config, MQTT disabled by default, and canonical README coverage for
web + CV relationship without claiming production integration.
Co-authored-by: Cursor <cursoragent@cursor.com>
Roll back junction-contact / discharge / light-theme simulation changes
to the previously stable production tree while keeping linear history.
Co-authored-by: Cursor <cursoragent@cursor.com>
Document domain, launch/build commands, structure, env vars, cloud split,
and the real CV prototype on drho1y-mvp_1 for the final submission.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop React RigidBody props from fighting Rapier mesh sync on playback ticks, and convert the shell/scene to the centralized Ozon light palette.
Co-authored-by: Cursor <cursoragent@cursor.com>
A server-level types{} block replaced mime.types, so index/JS were served
as application/octet-stream; with nosniff the browser saved them as files.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unify CAD conveyor on / and /details, add RealSense D435i + contact paddle
physics, keep items moving through scan, lock 7×10 drop validation, and
ship Stage 2 artifacts with production on :3100 (permanent HTTPS still blocked).
Co-authored-by: Cursor <cursoragent@cursor.com>
Bring hardware/spec content from drho1y-mvp_1 (3d_models, arduino_code, backend_control, kicad, specification) so dan_branch holds the shared union of branch files without rewriting other branch tips.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add physicalItemMotion as the single source of item pose, synchronize belt/item speed at 1 m/s, route items through chutes, keep C/D items settled inside roll-cages, render historical settled items, and use STL models with explicit fallbacks.
- Matte PVC belt material (roughness 0.85)
- Soft natural lighting with shadows
- Industrial color palette
- Compact HUD and CV overlay
- No UI overlap
- Items cast shadows for depth
- Add cinematicCamera.ts with 9 camera modes
- Smooth camera transitions with lerp
- Camera follows item during movement
- Category-aware routing views (B/C/D)
- Viewport adaptation (desktop/laptop/mobile)
- Motion trail for movement feedback
- Auto camera toggle button
- 20 unit tests for camera logic
- Stepper motor length measurement (step counting)
- Laser rangefinder height measurement
- Stereo camera width/shape analysis
- PLC decision logic with C-priority
- Actuator pusher animation
- Full measurement overlay with live data
- Create physicalLayout.ts with all dimensions
- Update conveyorPath.ts to use correct belt height
- Rebuild ConveyorBelt with support legs, rollers, drive motor
- Item Y = BELT_TOP_Y + itemHeight/2
- Add CVInspectionOverlay component (industrial camera monitor style)
- Add inspectionViewModel adapter for playback → inspection data
- Add camera rig with overhead frame and laser emitters
- Add inspection zone highlight on belt
- Add animated scan line during detection
- Add bounding box wireframe during measurement
- Add shape outline (circle/square) during classification
- Show dimensions pass/fail, roundness warning, confidence warning
- Show C-priority indicator for edge cases
Tested on https://arhipovdan.ru/ — all phases display correctly
Root cause: Docker container was 4 days old and nginx had no
try_files fallback for SPA routes like /details.
Changes:
- Add nginx.conf with try_files $uri $uri/ /index.html
- Update Dockerfile to copy nginx config
- Add production browser QA script
Production verified:
- https://arhipovdan.ru/ shows full-screen 3D demo
- https://arhipovdan.ru/details shows detailed page
- Add continuousPlayback.ts with phase-based state machine
- Add conveyorPath.ts for physics-accurate item positioning (1m=1unit, 1m/s)
- Create SorterDigitalTwinContinuous.tsx for main page 3D scene
- Update MainPage to use ContinuousPlaybackState
- Add 16 unit tests for playback logic
- Add Playwright test script for browser QA
- Screenshots: case1_start, case1_detection, case1_routing, case2_started, case8_or_finished
Timeline per case: ~6.3s (spawn → detection → classification → routing → exit)
Total playback: ~50s for all 8 cases
- Document movement proof via manual demo steps
- Item moves from zone A to zone B through full cycle:
Detection → Classification → Decision → Command → Routing
- Add README to docs/visual_fix_screenshots/
- Update report with final verification results
Verified: build, 43 tests, docker, curl all OK.
3D works on 1440px laptop, movement visually confirmed.
- Increase item visual scale ×2.5 with glow ring
- Move camera closer [4.0, 3.0, 4.0]
- Improve scene contrast (brighter conveyor, floor)
- Add glow to active routes
- Enhance gate/pusher visibility
- Add highlight rings to active zones
- Brighten sensors with detection effects
- Update visual fix report with final verification
Based on REAL_3D_AUDIT_REPORT.md P0/P1 fixes.
Verified: build, 43 tests, docker, curl all OK.
3D works on 1440px laptop (not 2D fallback).
- Increase item visual scale ×2.5 with glow ring
- Move camera closer [4.0, 3.0, 4.0]
- Improve scene contrast (brighter conveyor, floor)
- Add glow to active routes
- Enhance gate/pusher visibility
- Add highlight rings to active zones
- Brighten sensors with detection effects
Based on REAL_3D_AUDIT_REPORT.md P0/P1 fixes.
CHANGES:
1. README.md:
- Added "3D Verification Checklist" section
- Important note: must click "3D Digital Twin" toggle first
- Desktop Chrome manual verification steps
- Mobile verification checklist
2. BLACK_SCREEN_FIX_REPORT.md:
- Updated Visual QA section with detailed test steps
- Test 1-5: Initial load → 2D fallback → 3D toggle → Auto demo in 3D
- Clarified: Browser MCP verified both 2D and 3D modes
- Removed false claims, added honest limitations
VERIFIED (Browser MCP):
- ✅ 2D fallback works
- ✅ 3D scene renders (WebGL available, FPS ~60)
- ✅ Auto demo runs in 3D mode
- ✅ NO BLACK SCREEN in both modes
NOT VERIFIED (Requires manual check):
- ⚠️ Desktop Chrome real device
- ⚠️ Mobile real device (<640px)
- ⚠️ STL model loading in production
CONCLUSION:
Black screen fix is solid (ErrorBoundary + throttled RAF works).
3D rendering confirmed via browser MCP.
Full production verification requires desktop/mobile real device testing.