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
This commit is contained in:
root
2026-07-09 16:03:42 +02:00
parent a078d296e3
commit 39dc11c773
14 changed files with 440 additions and 75 deletions

View File

@@ -0,0 +1,187 @@
# Final Visual Polish Report
## Summary
Completed final visual refinements to the production 3D demo, improving realism, readability, and UI cleanliness without changing business logic.
## Visual Improvements
### 1. Conveyor Materials (Warehouse Aesthetic)
**Belt Surface:**
- Matte PVC/tarpaulin look (roughness: 0.85, metalness: 0.05)
- Blue-gray color (#6b8298) - not glossy
- Subtle stripe movement for texture feedback
**Frame & Guards:**
- Industrial metal gray (#8a9bb0) with metalness 0.5
- Brushed metal side guards (#7a8fa3)
- Realistic support legs and rollers
**Drive Components:**
- Motor housing in dark gray (#5a6a7a)
- Drive/tension rollers with metal finish
- Stepper motor detail maintained
### 2. Lighting & Shadows
**Soft Natural Lighting:**
- Ambient light: 0.7 intensity (reduced from 0.9)
- Hemisphere light: #f8fafc sky / #d0dae8 ground
- Main directional with soft shadows (1024px map)
- Fill light from opposite side (0.35 intensity)
**Shadows:**
- Enabled on desktop (disabled on simplified mode)
- Belt receives shadows
- Items cast shadows
- Floor receives shadows
- Contact shadow effect for grounding
### 3. Item/STL Readability
**Materials Updated:**
- Reduced emissive intensity (×0.5)
- Roughness 0.5, metalness 0.1
- Better contrast with belt surface
- Items cast shadows for depth
**STL Loading:**
- STL models load correctly
- Fallback primitives only on load failure
- No 404 errors in console
### 4. Color Palette Refinement
| Element | Old | New |
|---------|-----|-----|
| Background | #f6f9ff | #f4f7fb |
| Belt | #7aa2d8 | #6b8298 |
| Frame | #d8e6f8 | #8a9bb0 |
| Route B | #22c55e | #16a34a |
| Route C | #f97316 | #ea580c |
| Route D | #8b5cf6 | #7c3aed |
Colors are softer, less saturated for professional look.
### 5. UI Cleanup
**HUD (top-right):**
- Compact size: 160-200px width
- Smaller font: 11px
- Reduced padding
- Less obtrusive border
**CV Overlay (bottom-right):**
- Moved to bottom: 120px
- Narrower: 220px width
- Lower opacity background (0.88)
- Smaller font: 10px
**No Overlap:**
- HUD and CV overlay don't overlap
- Progress dots centered, not blocking view
- Play button centered bottom
- Auto Camera toggle subtle (bottom-left)
- Details link minimal (bottom-right)
### 6. Responsive Adaptations
**Desktop (≥1200px):**
- Full shadows enabled
- Standard HUD/overlay positions
- Cinematic camera active
**Laptop (768-1199px):**
- Compact overlays
- Camera positioned higher/wider
- All features functional
**Mobile (<768px):**
- WebGL fallback shown in headless test
- Compact HUD at top
- Play button accessible
- No horizontal scroll
## Files Modified
- `src/components/ThreeD/SorterDigitalTwinContinuous.tsx`
- Updated COLORS palette
- Added shadow support to Canvas
- Soft lighting setup
- Belt/frame/item materials refined
- BeltStripe more subtle
- `src/styles.css`
- HUD made compact
- CV overlay repositioned
- Smaller fonts
## Screenshots
Location: `docs/final_visual_polish_screenshots/`
| Screenshot | Description |
|------------|-------------|
| `desktop_overview.png` | Initial view with Play button |
| `desktop_playing_item_on_belt.png` | Item on belt with laser/stereo |
| `desktop_inspection_overlay.png` | CV overlay during measurement |
| `desktop_routing_to_b.png` | Routing to B zone |
| `desktop_routing_to_c.png` | Routing to C roll-cage |
| `desktop_routing_to_d.png` | Routing to D roll-cage |
| `desktop_roll_cages.png` | View of C/D cages |
| `laptop_1440.png` | Laptop viewport |
| `mobile_390.png` | Mobile viewport (fallback) |
| `details_page.png` | /details page |
## Acceptance Checklist
- ✅ 3D visible and loads correctly
- ✅ Play launches 8 scenarios
- ✅ Item rides on belt surface
- ✅ Belt visually moves at 1 m/s
- ✅ STL models visible
- ✅ Camera above items
- ✅ Laser/stereo/stepper readable
- ✅ B/C/D routing clear
- ✅ C/D roll-cages visible
- ✅ UI doesn't overlap
- ✅ Mobile doesn't break (fallback works)
- ✅ Console: 0 errors
- ✅ /details works
## Build/Test Results
```
npm run build - SUCCESS
npm run test - 113 tests passed
docker compose up -d --build - SUCCESS
Browser QA - 0 console errors
```
## Limitations
1. **Mobile WebGL**: Headless browser shows fallback; real mobile browsers with WebGL will render 3D.
2. **Shadow Performance**: Shadows disabled in simplified mode to maintain FPS.
3. **STL Loading**: Some STL files may appear as solid color rather than detailed model - acceptable for demo scale.
## Verdict
**ГОТОВО** - Demo production-ready for presentation.
## Commit Commands
```bash
git add -A
git commit -m "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"
git push origin dan_branch
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB