56 Commits

Author SHA1 Message Date
root
f2ce611330 fix: align CV rules and refresh final documentation
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 22:51:41 +02:00
root
d701339930 release: finalize clean submission repository
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 22:39:46 +02:00
root
21e83be26e release: consolidate web simulation and real CV prototype
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>
2026-08-02 22:23:05 +02:00
root
3777fecacf docs: finalize submission materials
Document domain, launch/build commands, structure, env vars, cloud split,
physics contracts of the accepted baseline, and CV on drho1y-mvp_1.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 22:13:30 +02:00
root
bb76963902 revert: restore last working simulation (13ce16b)
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>
2026-08-02 22:11:16 +02:00
root
496162a3db docs: finalize submission materials
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>
2026-08-02 22:07:48 +02:00
Даня Архипов
6e3b6ae3f0 fix: align discharge sorting and camera classification
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 07:56:35 +00:00
Даня Архипов
30a9f7efb3 fix: synchronize product visuals and apply Ozon light theme
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>
2026-08-02 07:09:17 +00:00
Даня Архипов
dce7faee24 feat: add physical junction contact routing
Replace scripted junction handoff with kinematic CAD diverter colliders and contact-only B/C/D routing, validated by a 45-run engineering-derived matrix.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 06:46:10 +00:00
Даня Архипов
1586e9d2ab feat: add stable physical conveyor foundation
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 05:52:28 +00:00
Даня Архипов
13ce16bedc chore: consolidate documentation and clean repository
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 18:29:15 +00:00
Даня Архипов
4413f01ce4 chore: preserve pre-cleanup product baseline
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 17:48:00 +00:00
Даня Архипов
c0dedfcdfb docs: finalize Stage 2E report with commit identity
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 14:29:03 +00:00
Даня Архипов
30103ccefc feat: Stage 2E physics p95, runtime videos, domain audit, device-test QR
Measure Rapier world.step p95 (~0.2 ms) on GTX 1080, record real route WebMs,
expand runtime/headless hash parity, and document permanent-domain/phone blockers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 14:28:14 +00:00
Даня Архипов
014a46077d feat: Stage 2D hardware perf PASS, SPEC_DERIVED_CAD mechanism, device-test
Measure GTX 1080 matrix (A/B/C 60 FPS p95~17ms); selective CAD shadows and
DPR 1.25; ship SPEC_DERIVED_CAD sorter mechanism GLB/STEP; add /device-test;
document domain blocker and phone NOT_TESTED.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 13:01:44 +00:00
Даня Архипов
68327635ce feat: Stage 2C CAD assembly cleanup, full-height canvas, physics parity
Remove default Measurement overlay and procedural motor duplicate; force
opaque CAD materials; modular extension pitch from CAD; shared runtime/
headless physics config hash; layout e2e and Stage 2C artifacts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 12:35:50 +00:00
Даня Архипов
0a1be376eb fix: restore default nginx MIME types so HTML/JS are not downloaded
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>
2026-07-30 12:16:49 +00:00
Даня Архипов
acc59ec912 feat: finish Stage 2B continuous sorter realism and local deploy
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>
2026-07-30 12:00:09 +00:00
Даня Архипов
40e9b18e8d feat: stage 2 real CAD conveyor, hybrid physics drops, mobile policy (WIP)
- CAD pipeline: conveer.FCStd -> FreeCAD headless -> conveyor-web.glb
  (555KB Draco, 42 named nodes) integrated into main scene; gates and
  rollers animated from domain state
- Domain-driven adapter sorterVisualState.ts; per-SKU visual physics
  profiles (VISUAL_PHYSICS_ESTIMATE)
- Hybrid Rapier physics: kinematic belt travel -> dynamic drop handoff
  -> verified freeze; shared collider layout (physicsWorldLayout) used
  by runtime and headless validation sim (physicsDropSim + 13 tests)
- Gravity chutes / open roll-cage front redesign (drop tuning in progress:
  4/7 routes verified headless)
- Premium industrial visual: PBR, ACES, PCFSoft shadows, Lightformer env,
  UI cleanup behind ?debug=1
- Mobile capability policy: SVG fallback / Mobile Low / full tiers,
  Telegram WebView forced to SVG, e2e stubs for weak devices
- Performance benchmarks cad-light/physics/full pass; stage2 artifacts

tsc clean. Physics drop validation for 3 SKU routes still in progress.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 21:05:46 +00:00
Даня Архипов
394c513037 chore: checkpoint premium 3d stages 0 and 1
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 19:05:27 +00:00
Даня Архипов
5cc27c6fc2 chore: add unique assets from other branches into dan_branch
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>
2026-07-29 14:32:56 +00:00
Даня Архипов
060971da75 docs: re-verify production identity and domain cutover status
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 08:43:37 +00:00
Даня Архипов
982f85dae1 chore: sync production release markers for 4fcce5b
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 22:22:23 +00:00
Даня Архипов
4fcce5bff9 ops: finalize production domain and hardware benchmark tooling
Add /version.json build identity, deploy 16e7930 release markers,
DNS/Named Tunnel prep docs, portable browser benchmark, and replay
stability probe. Keep Quick Tunnel until permanent domain cutover.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 22:21:13 +00:00
Даня Архипов
16e7930304 fix: stabilize public demo and align sorter twins
Document arhipovdan.ru DNS/TLS blocker, add production smoke and GPU
perf tooling, unify twin layout, and expand visual regression coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 18:00:25 +00:00
Даня Архипов
b5985f33bb feat: ship production deploy, Playwright e2e, and agent implementer
Add Docker atomic deploy tooling, CI, Playwright smoke/visual suite,
shared industrial theme, physics invariants, quality-mode wiring,
and a worktree-isolated agent implementer MVP with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 17:14:01 +00:00
Даня Архипов
985f7c327d feat: maximize sorter demo realism and add safe agent MVP
Wire live classifyItem into continuous playback, add jam/E-stop cases,
presenter controls (seek/speed/hotkeys), quality modes, demo scripts,
audit docs, and a verify-only autonomous agent CLI with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:53:35 +00:00
root
e89c728dd2 perf(3d): static rollers, lite mode, B receiver bin timing, clean console 2026-07-09 18:39:59 +02:00
root
8e9ae4f62b fix(3d): unified conveyorNetwork, physical B receiver, C/D containment, belt sync, real STL 2026-07-09 17:18:32 +02:00
root
1528cfce10 fix: deterministic physical item motion in 3D demo
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.
2026-07-09 16:37:38 +02:00
root
39dc11c773 polish: final visual refinements for 3D demo
- 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
2026-07-09 16:03:42 +02:00
root
a078d296e3 feat: cinematic camera playback for 3D demo
- 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
2026-07-09 15:53:50 +02:00
root
717a992b98 fix: physical realism for 3D demo
- Load STL models with fallback to primitives
- True physical scale (1 unit = 1 meter)
- Sensor rig at 1.35m above max item
- Roll-cages for C/D zones (1.2×0.8×0.8m)
- Chutes for physical routing
- HUD/overlay repositioned to avoid overlap
- Added physicalLayout tests
2026-07-09 15:39:07 +02:00
root
3aad908aaf feat: engineering measurement architecture in 3D demo
- 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
2026-07-09 14:35:58 +02:00
root
fa770f9da9 fix: physical conveyor realism - belt at 0.7m, item rides ON belt
- 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
2026-07-09 14:21:00 +02:00
root
35138c824c feat: add CV inspection overlay with visual effects
- 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
2026-07-09 14:07:50 +02:00
root
d9bf861960 fix: add nginx SPA fallback for BrowserRouter routing
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
2026-07-09 13:46:51 +02:00
root
ae2f38d6cf feat: implement continuous 8-case playback engine for main 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
2026-07-09 13:41:24 +02:00
root
05029e6f51 feat: add routing with MainPage (full-screen 3D) and DetailsPage
- Add react-router-dom for routing
- Create MainPage with full-screen 3D demo viewport
- Create DetailsPage with all existing documentation blocks
- Create demoPlaylist.ts with 8 showcase cases
- Add styles for main page HUD, controls, progress bar
- Routes: / → MainPage, /details → DetailsPage, * → redirect to /
2026-07-09 13:27:13 +02:00
root
600699f155 fix: prove 3D item movement and update visual fix report
- 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.
2026-07-04 20:10:57 +02:00
root
4ffafa699a fix: improve 3D digital twin visual clarity
- 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).
2026-07-04 20:01:39 +02:00
root
f9eb0819c0 fix: improve 3D digital twin visual clarity
- 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.
2026-07-04 19:48:57 +02:00
root
29035dad5f docs: add honest 3D verification checklist and update QA report
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.
2026-07-04 17:15:38 +02:00
root
ad2898200b fix: stabilize 3D auto demo and clean scene labels
ROOT CAUSE:
- requestAnimationFrame loop calling setState 60fps caused Canvas unmount/remount every frame
- Circular dependency in useEffect deps (simulation.currentItem) caused infinite re-render loop
- No ErrorBoundary meant Canvas errors showed black screen
- "Накопитель" label cluttered clean view

FIXES:
1. Throttled RAF Loop (App.tsx):
   - Update UI only every 100ms instead of every 16ms (60fps)
   - Removed circular dependency from useEffect deps
   - Added refs for proper RAF cleanup
   - Canvas no longer remounts every frame

2. ErrorBoundary (ThreeErrorBoundary.tsx):
   - Created error boundary for Canvas
   - Shows fallback UI instead of black screen
   - "Reload 3D" and "Use 2D Fallback" buttons
   - Auto-triggers 2D fallback on error

3. Clean Labels (SceneLabels3D.tsx):
   - Moved "Накопитель" label to technical mode only
   - Cleaner default 3D view
   - Less clutter, easier to see simulation

RESULT:
- NO MORE BLACK SCREEN 
- Stable auto demo 
- Clean 3D scene 
- Proper error handling 

STATUS:
- Build:  TypeScript successful (4.14s)
- Tests:  43/43 passed (1.19s)
- Docker:  Rebuilt successfully (8.08s)
- Domains:  All 200 OK
- Visual QA:  Verified via browser MCP (no black screen!)

CHANGES:
- Modified: App.tsx (+114), ProductDemoSection.tsx (+29), SceneLabels3D.tsx (+4), styles.css, README.md
- Created: ThreeErrorBoundary.tsx (new error boundary component)
- Total: +215 insertions, -24 deletions (5 files modified, 1 file created)
2026-07-04 17:09:47 +02:00
root
3e1f10a01a feat: 3D digital twin major rework - real models, clean labels, improved geometry
- Real STL Models: 6 models loaded (55%), fallback for 5 (45%)
- Clean Labels: 12+ → 5 default, step-based, technical toggle
- Geometry: Gate lift, pusher plates, conveyor rollers, roll-cage wireframes
- Demo Director: 12 steps, camera presets, auto-play logic (not integrated)
- Tests: +16 new (43/43 green), Build , Docker , Domains 

Remaining: Auto demo UI integration, camera transitions, docs updates, Visual QA
2026-07-04 16:45:43 +02:00
root
a700a146a3 fix: final parameter verification and source of truth documentation
- Add exact references to official specification (page/section/line) in INPUT_INFO_ANALYSIS.md
- Fix last hardcoded min dimensions in SceneLabels3D.tsx (10×10×10 → dynamic from DIMENSION_LIMITS)
- Fix hardcoded roundness threshold in Item3D.tsx (0.8 → dynamic from DIMENSION_LIMITS)
- Update THREE_D_FEASIBILITY.md checklist to reflect current parameters (10×10×2, K≥0.7)

Source of truth confirmed:
- Min dimensions: 10×10×2 mm (Постановка_Задача_3_сжато_2.pdf, стр. 2/17, строка 81)
- Roundness threshold: K ≥ 0.7 (Постановка_Задача_3_сжато_2.pdf, стр. 7/17, строка 245)
- Max dimensions: 450×320×320 mm (Постановка_Задача_3_сжато_2.pdf, стр. 2/17, строка 82)
- Conveyor speed: 1.0 м/с (Постановка_Задача_3_сжато_2.pdf, стр. 4/17, строка 188)

Tested: build OK, tests 16/16 passed, Docker OK, domains OK, smoke test OK
2026-07-04 16:12:12 +02:00
root
17c37c2580 feat: align project with OZON Track 3 official specification
- Fix critical parameters: min dimensions 10×10×2 mm (was 10×10×10)
- Fix roundness threshold: K ≥ 0.7 (was 0.8)
- Add input_info analysis document (INPUT_INFO_ANALYSIS.md)
- Update Hero: new title, badges (Min 10×10×2, K≥0.7→D, C priority), proof-line
- Add CurrentProofCard summary block: Category/Command/Target/Why (cyan border)
- Add CPriorityExplanation component (orange card, dedicated section)
- Update all docs: README, DEMO_SCRIPT (7-min timing), JURY_QA, SUBMISSION_CHECKLIST
- Update tests: 16/16 passed under new parameters
- Update 3D twin: dynamic DIMENSION_LIMITS display
- Update criteria cards: roundness ≥ 0.7
- Tested: build OK, Docker OK, domains OK (arhipovdan.ru, www, ai-shorts.ru)
2026-07-04 13:09:49 +02:00
root
e0a655db4f feat: align 3D digital twin with OZON Track 3 requirements 2026-07-04 12:39:57 +02:00
root
b749cef14e feat: add 3D digital twin visualization 2026-07-04 12:33:20 +02:00
root
a7025ca50c design: redesign product demo UI 2026-07-04 12:14:08 +02:00