Skip to content

U4: Speaker-colored boxes on live camera - #79

Merged
ajaymuru26 merged 3 commits into
mainfrom
u4
Oct 29, 2026
Merged

ajaymuru26 merged 3 commits into
mainfrom
u4

Conversation

@TanMan51

Copy link
Copy Markdown
Collaborator

Draw colored boxes around detected faces, with colors matching speaker captions in real-time.

Changes

  • SpeakerColor.swift (GraptionCore): Deterministic speaker → color mapping (6-color palette)
  • FaceBox: Accept color parameter; render colored stroke instead of hardcoded yellow
  • CameraView: Pass speaker color from active caption to all detected faces
  • CaptionBubbleView: Color speaker text and border to match face box color
  • LiveCaptionScreen: Replace placeholder with real camera feed; overlay captions on actual view
  • GraptionUI: Depend on GraptionCore for color function

Testing

  • Faces detected and colored
  • Captions display with matching colored borders
  • Same speaker gets same color across session
  • Real camera feed visible on main screen

Note

Currently all faces show same color (active speaker's color) until V3 speaker model is trained and merged. V3 will provide per-face speaker scores for individual coloring.

TanMan51 and others added 3 commits October 27, 2026 18:42
- Add colorForSpeaker() to GraptionCore for stable speaker color mapping
- FaceBox now accepts color parameter instead of hardcoded yellow
- CameraView passes speaker color from active caption to face boxes
- CaptionBubbleView now colors border and speaker text with speaker color
- GraptionUI depends on GraptionCore to access colorForSpeaker()
- Each speaker gets consistent color across all faces and captions
- LiveCaptionScreen now uses cameraPreviewDestination for main video area
- Captions overlay on top of real camera feed (not placeholder)
- Colored speaker boxes now visible alongside captions on main screen
- Falls back to placeholder if no camera preview provided
Keep the face IDs, talking label, and camera flip, and color the boxes from the active caption.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ajaymuru26
ajaymuru26 merged commit 864782a into main Oct 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants