MCPcopy Create free account

hub / github.com/AggieSportsAnalytics/CourtCheck / functions

Functions770 in github.com/AggieSportsAnalytics/CourtCheck

↓ 1 callersFunction_load_gt_bounces
(gt_path: Path)
backend/training/train_bounce.py:66
↓ 1 callersFunction_load_labels
(csv_path: Path)
backend/tools/build_courtcheck_manifest.py:33
↓ 1 callersFunction_load_pool
(manifest_path: Path, min_velocity: float, exclude_clip_ids: set[str])
backend/tools/add_pool_clips.py:39
↓ 1 callersFunction_load_pool
(manifest_path: Path, min_velocity: float, exclude_clip_ids: set[str])
backend/tools/assign_clips.py:41
↓ 1 callersMethod_makeThumb
Create a lightweight thumb shell for one slide. The clone is * materialized later by the IntersectionObserver. Event handlers * look up th
docs/brand-drop/mocks/case-comp/deck-stage.js:1403
↓ 1 callersFunction_markdown_report
( clips: list[ClipSample], train_clips: list[str], val_clips: list[str], frame_metrics: list[d
backend/training/train_bounce.py:223
↓ 1 callersMethod_openConfirm
(i)
docs/brand-drop/mocks/case-comp/deck-stage.js:1642
↓ 1 callersMethod_openMenu
(i, x, y)
docs/brand-drop/mocks/case-comp/deck-stage.js:1617
↓ 1 callersFunction_parse_args
()
backend/tools/label_swings.py:66
↓ 1 callersFunction_pick_device
()
backend/tools/extract_swings_local.py:41
↓ 1 callersMethod_predict_heuristic
Simple rule-based fallback when TCN weights are unavailable. Logic: - Wrist y-position above shoulders at swing peak -> Se
backend/models/stroke_classifier_tcn.py:167
↓ 1 callersMethod_predict_tcn
(self, pose_sequence: np.ndarray)
backend/models/stroke_classifier_tcn.py:156
↓ 1 callersFunction_probe_duration
Return source duration in seconds via ffprobe.
backend/training/cut_bounce_clips.py:34
↓ 1 callersFunction_processed_exists
Confirm the processed video is actually in `results` before nuking raw.
backend/tools/cleanup_old_raws.py:55
↓ 1 callersFunction_processed_present
(supabase, results_path: str | None)
backend/tools/purge_zombie_recordings.py:43
↓ 1 callersMethod_railWidth
()
docs/brand-drop/mocks/case-comp/deck-stage.js:1147
↓ 1 callersMethod_refreshThumb
Re-clone a single thumb (live-update path). No-op if the thumb * hasn't been materialized yet — it'll pick up current content when * it sc
docs/brand-drop/mocks/case-comp/deck-stage.js:1566
↓ 1 callersMethod_render
()
docs/brand-drop/mocks/case-comp/deck-stage.js:796
↓ 1 callersFunction_resample_to_len
Resample a (T, D) array to (target_len, D) via linear interpolation. Matches the interpolation logic in extract_pose_sequence().
backend/training/features.py:62
↓ 1 callersFunction_resolve_camera_id
Infer camera_id from the video filename. Matches filenames containing 'Court' followed by a court number (e.g. StMarys_Court2.mp4). Retur
backend/pipeline/run.py:1536
↓ 1 callersMethod_restoreIndex
()
docs/brand-drop/mocks/case-comp/deck-stage.js:1076
↓ 1 callersFunction_rotate
(kp: np.ndarray, deg: float)
backend/training/train_tcn.py:89
↓ 1 callersFunction_scale
(kp: np.ndarray, sx: float, sy: float)
backend/training/train_tcn.py:96
↓ 1 callersFunction_scrape_table_fallback
Try to extract player names from a plain HTML table.
backend/tools/seed_players.py:129
↓ 1 callersFunction_seed_clip
Pre-label bounces into <clip>.gt.json. Returns count of seeds written.
backend/training/pre_label_bounces.py:47
↓ 1 callersMethod_setDrop
(i, where)
docs/brand-drop/mocks/case-comp/deck-stage.js:1587
↓ 1 callersFunction_signed_url
(supabase_path: str)
backend/tools/label_swings.py:55
↓ 1 callersFunction_stratified_sample
Pick n clips stratified across source_video and velocity bucket.
backend/tools/add_pool_clips.py:49
↓ 1 callersFunction_temporal_jitter
(kp: np.ndarray, max_shift: int)
backend/training/train_tcn.py:107
↓ 1 callersMethod_toggleSkip
(i)
docs/brand-drop/mocks/case-comp/deck-stage.js:1674
↓ 1 callersFunction_transcode
Re-encode src (mp4v) → dst (H.264). Returns True on success.
backend/tools/transcode_and_reupload.py:39
↓ 1 callersMethod_try_load
(self, path: str)
backend/models/stroke_classifier_tcn.py:119
↓ 1 callersFunction_upload
Upload via curl (avoids miniforge arm64 SSL issues). Returns True on success.
backend/tools/transcode_and_reupload.py:50
↓ 1 callersFunctionannotate
(video_path: Path)
backend/eval/annotate.py:122
↓ 1 callersFunctionappend_rows
Append new manifest rows, writing header if file is new.
backend/tools/_swing_io.py:44
↓ 1 callersFunctionapplyViewport
()
frontend/web/components/layout/Sidebar.tsx:64
↓ 1 callersFunctionbenchmark
(video_path: str, weights_name: str, weights_file: str, max_frames: int, device: str)
backend/tools/benchmark_ball_detection.py:29
↓ 1 callersFunctionbuildCards
( players: ApiPlayer[], recordings: ApiRecording[], )
frontend/web/app/players/page.tsx:66
↓ 1 callersFunctionbuildShotMapDots
Project API shots onto the top-half (opponent's side) court for ShotMap. * * Mirror by **bounce location**, not by who hit. Previously the code mirr
frontend/web/components/recordings/VizPanel.tsx:85
↓ 1 callersFunctionbuildSpacingShots
Derive spacing shots for the bottom-half spacing viz. * Only includes shots with both player + ball at contact. Quality classified by * distance:
frontend/web/components/recordings/VizPanel.tsx:119
↓ 1 callersFunctionbuild_clip_sample
( clip_path: Path, tolerance: int, detector: BounceDetector, )
backend/training/train_bounce.py:89
↓ 1 callersFunctionbuild_coverage_grid
Build the player-coverage occupancy grid for the bottom half-court. For every frame, project each detected player's foot position into court
backend/pipeline/run.py:716
↓ 1 callersFunctionbuild_error_summary
Direction-only error breakdown attributed to the near (P1) player. Tennis convention: an error belongs to the player who failed to make the s
backend/pipeline/run.py:1020
↓ 1 callersFunctionbuild_feature_matrix
Load keypoints and compute feature vectors for all valid entries. Returns: X: (N, N_FEATURES) feature matrix y: (N,) integer
backend/training/train_catboost.py:42
↓ 1 callersFunctionbuild_loaders
( train_entries: list[dict], val_entries: list[dict], cfg: TrainingConfig, )
backend/training/train_tcn.py:324
↓ 1 callersFunctionbuild_net_approach_summary
Net-approach detector + heuristic outcome. Approach: near player's foot svg_y crosses the service line (svg_y = 60) and stays in front of it
backend/pipeline/run.py:898
↓ 1 callersFunctionbuild_position_summary
4-zone court-position breakdown for the near player (P1), per the `coach-insights-spec.md`: inside baseline / on baseline / 5-10 ft behind / 1
backend/pipeline/run.py:806
↓ 1 callersFunctionbuild_report
(video_path: Path, gt: dict, pred: dict)
backend/eval/run_eval.py:93
↓ 1 callersFunctionbuild_shots
Build the per-shot record used by the frontend courtmaps. Bounce coordinates come from compute_bounce_positions() (the single source of truth
backend/pipeline/run.py:338
↓ 1 callersFunctioncalculate_rally_count
Group shot frames into rallies. A gap > gap_seconds between consecutive shots is treated as the start of a new rally.
backend/pipeline/run.py:71
↓ 1 callersFunctioncleanup
(match_ids: Iterable[str] | None, apply: bool, min_age_days: int)
backend/tools/cleanup_old_raws.py:71
↓ 1 callersFunctioncount_in_out_bounces
Classify each detected bounce as in-bounds or out-of-bounds using the court-space coordinates obtained via homography projection.
backend/pipeline/run.py:1238
↓ 1 callersFunctioncriterion
(logits, targets)
backend/training/train_tcn.py:429
↓ 1 callersFunctioncurrentSeasonStart
()
frontend/web/app/recordings/page.tsx:228
↓ 1 callersFunctiondb_save_label
Write a label for one clip to the DB.
backend/tools/_swing_io.py:109
↓ 1 callersFunctiondb_seed_from_csv
Bulk-upsert all rows from a manifest CSV into swing_labels. With `preserve_labels=True` (default), any row that already has a non-empty label
backend/tools/_swing_io.py:150
↓ 1 callersFunctiondeleteRecording
(id: string)
frontend/web/app/recordings/page.tsx:153
↓ 1 callersFunctiondetect_camera_id
(clip_path: Path)
backend/training/extract_ball_trajectory.py:62
↓ 1 callersMethoddetect_frame_with_far_roi
Main detection pass + a second focused pass on the far-court region. The far player is typically only 30-60 px tall in a 1080p zoome
backend/models/player_tracker.py:152
↓ 1 callersFunctiondetect_shot_frames
Detect frames where a player hits the ball by finding y-direction reversals in the ball trajectory. Args: ball_track: list of (x
backend/vision/postprocess.py:6
↓ 1 callersFunctiondraw_ball_trace
Draw a fading ball trajectory on the main frame. Parameters ---------- frame : np.ndarray Current video frame (modified in-p
backend/vision/drawing.py:50
↓ 1 callersFunctiondraw_court_keypoints_and_lines
Draw tennis court lines as a semi-transparent white overlay. Keypoint dots and debug labels are intentionally omitted.
backend/vision/drawing.py:105
↓ 1 callersFunctiondraw_hud
( frame, frame_idx: int, total: int, player: int, last_event: str, strokes: list[dict]
backend/eval/annotate.py:81
↓ 1 callersFunctiondraw_minimap_ball_and_bounces
Draw ball trace and accumulated bounces on the minimap. minimap: reference court image (will be modified in-place) homography_inv: frame
backend/vision/drawing.py:274
↓ 1 callersFunctiondraw_minimap_players
Draw player positions on the minimap using foot position projected through homography. Each player gets a filled dot in their assigned color
backend/vision/drawing.py:394
↓ 1 callersFunctiondraw_player_bboxes
Draw clean player bounding boxes with a small pill label. color is ignored when player_dict has multiple players — each gets its own col
backend/vision/drawing.py:194
↓ 1 callersFunctiondraw_stroke_labels
Draw stroke classification label above each player's bbox when a swing is active at this frame. Args: frame: Video frame (numpy
backend/vision/drawing.py:133
↓ 1 callersFunctionensure_720p
Resize video to target resolution using ffmpeg (GPU NVENC when available).
backend/pipeline/run.py:24
↓ 1 callersFunctionextract_clip_features
Extract a flat feature vector from a (T, 17, 3) keypoint sequence. Feature groups (~45 total): - Wrist velocity stats (6): max/mean/st
backend/training/features.py:258
↓ 1 callersFunctionextract_frame
(video_path: str, frame_number: int)
backend/tools/calibrate_court.py:47
↓ 1 callersFunctionextract_pose_sequence
Extract a fixed-length pose keypoint sequence for one player in a window. Args: handedness: 'right' (default) or 'left'. Lefty seque
backend/vision/swing_detector.py:123
↓ 1 callersFunctionextract_trajectory
( clip_path: Path, camera_id: str | None, weights_path: str = _DEFAULT_WEIGHTS, calibration_pa
backend/training/extract_ball_trajectory.py:70
↓ 1 callersMethodextrapolate
(self, x_coords, y_coords)
backend/models/bounce_detector.py:129
↓ 1 callersFunctionfetchLatestHeatmaps
()
frontend/web/components/features/dashboard/HeatMaps.tsx:60
↓ 1 callersFunctionfetchPlayerForOwnershipCheck
(id: string)
frontend/web/app/api/players/[id]/route.ts:41
↓ 1 callersFunctionfindLeadIndex
(metrics: PlayerMetric[])
frontend/web/components/dashboard/PlayerCard.tsx:180
↓ 1 callersFunctionfmtDate
(iso: string)
frontend/web/app/overall-stats/page.tsx:49
↓ 1 callersFunctionfmtDur
(s: number | null)
frontend/web/app/overall-stats/page.tsx:44
↓ 1 callersFunctionfmtTs
(sec: number)
frontend/web/app/recordings/[id]/page.tsx:86
↓ 1 callersFunctionformatDate
(iso: string)
frontend/web/app/page.tsx:94
↓ 1 callersFunctionformatDateShort
(iso: string)
frontend/web/components/players/PlayerCard.tsx:63
↓ 1 callersFunctionformatRelativeDate
(iso: string)
frontend/web/components/features/dashboard/GamePlay.tsx:16
↓ 1 callersFunctiongenerateCoverage
(rows: number, cols: number)
frontend/web/components/viz/Coverage.tsx:18
↓ 1 callersFunctiongenerate_minimap_heatmaps
Generate bounce dot map and player shot-position dot map on a top-down court. Bounce heatmap: color-coded dot per detected bounce (stroke ty
backend/vision/heatmaps.py:75
↓ 1 callersFunctiongenerate_scouting_report
Call GPT-4o-mini to generate a grounded scouting report. Grounded in the real coach-insight calculators (position / net / error / rally summa
backend/pipeline/run.py:1399
↓ 1 callersFunctiongetInitials
(name: string)
frontend/web/app/page.tsx:79
↓ 1 callersFunctionget_supabase_client
()
backend/tools/seed_players.py:160
↓ 1 callersMethodget_trans_matrix
Determine the best homography matrix from detected court points. Parameters ---------- points : list[(x, y) | None]
backend/vision/homography.py:59
↓ 1 callersFunctiongradientFor
(id: string)
frontend/web/components/players/PlayerCard.tsx:39
↓ 1 callersFunctiongreetingFor
(hour: number)
frontend/web/app/page.tsx:105
↓ 1 callersFunctionhandleAdd
()
frontend/web/components/recordings/NotesPanel.tsx:76
↓ 1 callersFunctionhandleSeek
(sec: number)
frontend/web/components/recordings/NotesPanel.tsx:86
↓ 1 callersFunctionhashColor
(seed: string)
frontend/web/app/recordings/page.tsx:46
↓ 1 callersFunctionhighlightStats
(text: string)
frontend/web/components/recordings/ScoutingReport.tsx:24
↓ 1 callersFunctioninPct
(inB: number | null, outB: number | null)
frontend/web/app/players/page.tsx:58
↓ 1 callersMethodinfer_single
Detect court keypoints, returning list of 14 (x, y) tuples.
backend/models/court_line_detector.py:35
↓ 1 callersMethodinit_state
(self, batch_size)
backend/models/stroke_detector.py:63
↓ 1 callersFunctioninitials
(s: string)
frontend/web/app/recordings/page.tsx:63
↓ 1 callersFunctioninitialsOf
(name: string)
frontend/web/components/players/PlayerCard.tsx:46
↓ 1 callersFunctioninitialsOf
(name: string)
frontend/web/app/players/[id]/page.tsx:44
← previousnext →201–300 of 770, ranked by callers