Skip to content

feat: 볼 구속·RPM 분석 탭 추가 #3

@devpark435

Description

@devpark435

개요

볼링 투구 영상을 촬영해 구속(km/h)과 RPM 추정값을 측정하고, 슬로우모션 재생과 히스토리를 제공하는 분석 탭을 추가한다. 외부 AI API 없이 순수 이미지 처리로 구현한다.

탭 위치

홈 / 통계 / 분석(신규) / 내볼 / 설정 (5탭)

주요 기능

  • 캐릭터 가이드 — CustomPainter 볼링핀 캐릭터, 촬영 위치 3단계 안내
  • 고fps 녹화 — 240fps → 120fps → 60fps 자동 폴백
  • 볼 감지 + 속도 계산 — 프레임 차분(motion detection) 기반, 레인 표준 길이(18.29m) 적용
  • RPM 추정 — 볼 가장자리 X좌표 진동 분석, 항상 "추정값" 명시
  • 슬로우모션 재생video_player.setPlaybackSpeed(0.25), 4배 슬로우
  • 히스토리 저장 — 메타데이터 Supabase, 영상 파일 로컬
  • 세션 연결 — 당일 세션 있으면 연결 선택 바텀시트

신규 패키지

camera: ^latest
video_player: ^latest

Supabase 테이블

create table ball_analysis (
  id uuid primary key default gen_random_uuid(),
  user_id uuid references auth.users not null,
  recorded_at timestamptz not null,
  speed_kmh numeric(5,2) not null,
  rpm_estimated integer,
  fps_used integer not null,
  video_local_path text,
  linked_session_id uuid references sessions(id) on delete set null,
  created_at timestamptz default now()
);

관련 플랜

docs/superpowers/plans/2026-04-25-ball-analysis-tab.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    aiAI / ML 모델 활용feat새 기능 추가planned플랜 작성 완료, 구현 대기

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions