Commit Graph

25 Commits

Author SHA1 Message Date
Ruslan Bakiev
aaa4199c85 fix: compact camera params card, text only, all english
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:40:38 +07:00
Ruslan Bakiev
99ccca3968 feat: editable camera params panel on Court tab with live 3D update
Position Y, Height, Stereo gap, Rotation angle, HFOV — all adjustable
in real time, 3D scene updates on change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:10:16 +07:00
Ruslan Bakiev
4605ed1e2c fix: correct HFOV to 128° (IMX219 160° diagonal on 4:3 sensor)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:00:13 +07:00
Ruslan Bakiev
39159f804f fix: FOV rays originate from actual camera position (Y=-1), not court edge
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:54:42 +07:00
Ruslan Bakiev
2ff8a87037 fix: correct FOV projection origin from camera position on court edge
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:49:57 +07:00
Ruslan Bakiev
014cc03677 fix: smooth polygon coverage, angle 15°, overlap blends to purple
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:44:06 +07:00
Ruslan Bakiev
72e6d1c191 fix: rasterized court coverage with 3 distinct colors
- Blue = cam0 only, Pink = cam1 only, Purple = overlap
- Grid-based fill, no dashed lines or edge artifacts
- White court lines on top

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:42:02 +07:00
Ruslan Bakiev
d34c25a6d7 fix: bright colored court coverage, all white court lines
- Camera FOV coverage fills court with visible color (opacity 0.4)
- All court lines now white (no more red/grey)
- Lines raised above coverage so they stay visible

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:37:45 +07:00
Ruslan Bakiev
fedf46670a fix: project camera FOV coverage directly onto court surface
- FOV clipped to court boundaries (0,0)-(13.4,6.1)
- Colored overlay shows which court areas each camera covers
- Dashed center line shows each camera's look direction
- cam0 (blue) -28° from +Y, cam1 (pink) +28° from +Y

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:31:39 +07:00
Ruslan Bakiev
d8cc3904e6 feat: stereo camera rig on net line with 160° FOV projection
- Cameras at net line (X=6.7), 1m outside court (Y=-1), 1m height
- Stereo pair 6cm apart, each rotated 28° outward
- FOV cones projected onto court surface showing coverage
- cam0 (blue) looks left, cam1 (pink) looks right

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:28:45 +07:00
Ruslan Bakiev
7c8a87f9be feat: add physical camera marker on 3D court (1m from net, center, 1m height)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:18:37 +07:00
Ruslan Bakiev
dc79763dab fix: cameras side by side, panels next to them, zoom out 3D view
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:15:24 +07:00
Ruslan Bakiev
8dd1573d0e fix: court/trajectory layout, net orientation, camera position
- Court and Trajectory tabs: 3D viewport full screen, cameras small
  at bottom center as horizontal thumbnails
- Fix net orientation (was perpendicular, now spans court width)
- Default camera: center line, 1m from net, 1m height

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:11:44 +07:00
Ruslan Bakiev
9ebee2a529 fix: swap cam0/cam1 order and horizontal camera layout on all tabs
Cameras now display as a horizontal panorama (cam1 left, cam0 right)
on Detection, Court, and Trajectory tabs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:06:00 +07:00
Ruslan Bakiev
b87665e8bc Simplify calibration status text in sidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:57:35 +07:00
Ruslan Bakiev
f54bc165f6 Move calibration controls into Court sidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:52:32 +07:00
Ruslan Bakiev
85623454b6 Info panel only visible on Trajectory tab
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:49:11 +07:00
Ruslan Bakiev
351e3818f9 Court + Trajectory: split layout — 3D 80% left, cam previews + VAR in sidebar right
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:39:58 +07:00
Ruslan Bakiev
6fbc17c6e0 Remove all camera labels — overlaps with debug overlay
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:37:57 +07:00
Ruslan Bakiev
0785cb3296 Remove camera labels from Court tab small previews
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:25:25 +07:00
Ruslan Bakiev
2f0eb81dce Court tab: 3D scene primary, cameras small at bottom
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:21:08 +07:00
Ruslan Bakiev
0aae067e95 Remove auto-imports from src/__init__.py to avoid inference_sdk dependency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:17:20 +07:00
Ruslan Bakiev
4c9b48e057 Add referee system architecture: 3-tab web UI, physics, VAR detection
- src/calibration: 3D camera calibration (solvePnP, homography)
- src/physics: trajectory model with gravity/drag, close call event detector
- src/streaming: camera reader + ring buffer for VAR clips
- src/web: Flask app with 3-tab UI (Detection, Court, Trajectory) + Three.js
- jetson/main.py: unified entry point wiring all components

Court tab: one-click calibration button, 3D scene with camera positions
Trajectory tab: accumulated ball path, VAR panel with snapshot + timer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:16:12 +07:00
Ruslan Bakiev
d61d6b3636 Add dual CSI camera web detection stream for Jetson
GStreamer hardware ISP capture, YOLOv8n CUDA inference,
JPEG snapshot-based web UI for both cameras simultaneously.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 11:25:49 +07:00
Ruslan Bakiev
549fd1da9d Initial commit 2026-03-06 09:43:52 +07:00