MCPcopy Create free account

hub / github.com/AggieSportsAnalytics/CourtCheck / functions

Functions770 in github.com/AggieSportsAnalytics/CourtCheck

↓ 2 callersMethod_skippedIndices
()
docs/brand-drop/mocks/case-comp/deck-stage.js:1691
↓ 2 callersMethod_snapshotAuthorCss
Snapshot document stylesheets into a constructable sheet that each * thumbnail's nested shadow root adopts — so author CSS styles the * cl
docs/brand-drop/mocks/case-comp/deck-stage.js:685
↓ 2 callersFunction_stage
Write an early-stage breadcrumb to Supabase so the UI shows what's happening during the 15-90s window between the trigger-process webhook
backend/app.py:80
↓ 2 callersFunction_swing_side
P1 (track_id > 0) is near, expects far-side bounces; P2 is far, expects near-side bounces.
backend/pipeline/run.py:496
↓ 2 callersMethod_syncPrintPageRule
@page must live in the document stylesheet — it's a no-op inside * shadow DOM. Inject/update a single <head> style tag so the print * shee
docs/brand-drop/mocks/case-comp/deck-stage.js:985
↓ 2 callersMethod_syncRail
(follow)
docs/brand-drop/mocks/case-comp/deck-stage.js:1603
↓ 2 callersMethod_syncThumbHostAttrs
(host, cs)
docs/brand-drop/mocks/case-comp/deck-stage.js:723
↓ 2 callersMethod_trim
(self, x: torch.Tensor)
backend/models/stroke_classifier_tcn.py:49
↓ 2 callersFunction_verify_h264
(clip_path: Path)
backend/tools/extract_by_manifest.py:29
↓ 2 callersFunctionattach
()
frontend/web/components/recordings/NotesPanel.tsx:46
↓ 2 callersFunctionbuild_heatmap_court_background
Dark navy background with soft white court lines — matches minimap style.
backend/vision/heatmaps.py:14
↓ 2 callersMethodchoose_and_filter_players
Filter detections to the 2 actual players. Near player: track_id vote picks a PRIMARY id, but per-frame logic also accep
backend/models/player_tracker.py:233
↓ 2 callersMethodclass_counts
(self)
backend/training/train_tcn.py:190
↓ 2 callersFunctioncleanup
()
frontend/web/hooks/useVideoUpload.ts:15
↓ 2 callersFunctioncompute_angle
Return the angle at vertex b (in degrees) given 3 2D points a, b, c. Args: a: 2D point shape (2,) b: vertex 2D point shape (
backend/training/features.py:40
↓ 2 callersFunctioncs
(el)
frontend/web/scripts/audit/inspect.mjs:21
↓ 2 callersFunctiondb_get_all
Fetch every row from swing_labels. Handles Supabase 1 000-row page limit.
backend/tools/_swing_io.py:79
↓ 2 callersMethoddetect
Detect swing events across all frames. Args: pose_keypoints_per_frame: List (one per frame) of {track_id
backend/vision/swing_detector.py:55
↓ 2 callersFunctionfetchTemplatePlayers
()
frontend/web/app/api/onboarding/route.ts:39
↓ 2 callersFunctionfilter_usable
Drop entries with no keypoints, invalid flag, or non-supported label.
backend/training/train_tcn.py:269
↓ 2 callersFunctionfmtDate
(iso: string)
frontend/web/app/recordings/page.tsx:72
↓ 2 callersFunctionfmtTs
(sec: number)
frontend/web/components/recordings/NotesPanel.tsx:10
↓ 2 callersFunctionformatDateShort
(iso: string)
frontend/web/app/players/[id]/page.tsx:61
↓ 2 callersFunctionformatMinSec
(sec: number)
frontend/web/hooks/useVideoUpload.ts:33
↓ 2 callersFunctionformatTime
(seconds: number)
frontend/web/components/features/recordings/VideoPlayer.tsx:30
↓ 2 callersMethodfrom_json
(cls, path: str)
backend/training/config.py:66
↓ 2 callersFunctiongenerate_player_shot_dot_map
Generate a player position dot map at shot moments on a top-down court. For each shot frame, projects each detected player's foot position t
backend/vision/heatmaps.py:135
↓ 2 callersFunctiongetAuthenticatedUser
()
frontend/web/app/api/onboarding/route.ts:18
↓ 2 callersFunctiongetAuthenticatedUser
()
frontend/web/app/api/players/route.ts:16
↓ 2 callersFunctiongetAuthenticatedUser
()
frontend/web/app/api/players/[id]/route.ts:16
↓ 2 callersFunctiongetDemoFlag
()
frontend/web/lib/demo/demoData.ts:39
↓ 2 callersFunctiongetStatusMessage
()
frontend/web/components/courtcheck/VideoUpload.tsx:82
↓ 2 callersFunctionhip_center_normalize
Normalize a (T, 34) pose sequence to be invariant to player position and scale. This is the key preprocessing step that allows the TCN to ge
backend/training/features.py:81
↓ 2 callersFunctionlistQuery
(cols: string)
frontend/web/app/api/recordings/route.ts:33
↓ 2 callersFunctionload_manifest_entries
(path: str)
backend/training/train_tcn.py:264
↓ 2 callersFunctionmake
(label: string)
frontend/web/components/features/dashboard/HeatMaps.tsx:39
↓ 2 callersFunctionmake_streamable_mp4
Re-encode and remux to a browser-streamable MP4 (moov atom first). When ``source_audio_path`` is provided, the audio track from that file is
backend/pipeline/storage.py:7
↓ 2 callersFunctionmatch_bounces
(gt: list, pred: list)
backend/eval/run_eval.py:66
↓ 2 callersFunctionmatch_strokes
(gt: list, pred: list)
backend/eval/run_eval.py:37
↓ 2 callersMethodnext
()
docs/brand-drop/mocks/case-comp/deck-stage.js:1724
↓ 2 callersFunctionnormalize_keypoints
Normalize raw COCO-17 keypoints for TCN input. Steps: 1. Drop confidence channel: keep only x, y columns -> (T, 17, 2) 2. Flatte
backend/training/features.py:217
↓ 2 callersFunctionpick
(template: string | null)
frontend/web/app/onboarding/page.tsx:37
↓ 2 callersFunctionpollStatus
(match_id: string)
frontend/web/components/courtcheck/VideoUpload.tsx:61
↓ 2 callersMethodpostprocess
(self, ind_bounce, preds)
backend/models/bounce_detector.py:137
↓ 2 callersMethodprepare_features
(self, x_ball, y_ball)
backend/models/bounce_detector.py:23
↓ 2 callersFunctionreset
()
frontend/web/components/players/CountUp.tsx:55
↓ 2 callersFunctionresolve_device
(requested: str)
backend/training/train_tcn.py:392
↓ 2 callersFunctionrun_epoch
(model, loader, criterion, optimizer, device, is_train)
backend/training/train_tcn.py:365
↓ 2 callersFunctionsafeDurationSeconds
(fps: number | null, numFrames: number | null)
frontend/web/app/api/dashboard/summary/route.ts:6
↓ 2 callersFunctionsaveNotes
(updated: TimedNote[])
frontend/web/app/recordings/[id]/page.tsx:253
↓ 2 callersFunctionsave_gt
(gt_path: Path, video_path: Path, fps: float, total: int, strokes: list, bounces: list)
backend/eval/annotate.py:60
↓ 2 callersFunctionscanOverflow
(page, slug, w)
frontend/web/scripts/audit/overflow.mjs:35
↓ 2 callersFunctionseekToFrame
(frame: number)
frontend/web/components/recordings/RallyTable.tsx:80
↓ 2 callersFunctionsendLink
()
frontend/web/app/auth/forgot-password/page.tsx:26
↓ 2 callersFunctionsetDemoFlag
(on: boolean)
frontend/web/lib/demo/demoData.ts:51
↓ 2 callersFunctionshoot
(page, p, w)
frontend/web/scripts/audit/audit.mjs:41
↓ 2 callersMethodsmooth_predictions
(self, x_ball, y_ball)
backend/models/bounce_detector.py:98
↓ 2 callersFunctionstratified_split
Per-class stratified split.
backend/training/train_tcn.py:284
↓ 2 callersFunctionsubmit
()
frontend/web/components/recordings/EditableName.tsx:43
↓ 2 callersFunctionto_court
pixel court coords -> 0-27 x 0-78 SVG units.
backend/pipeline/run.py:376
↓ 2 callersFunctiontrain_one_split
( cfg: TrainingConfig, train_entries: list[dict], val_entries: list[dict], weights_filename: s
backend/training/train_tcn.py:400
↓ 2 callersFunctionuseVideoUpload
( onUploadComplete?: (matchId: string) => void, playerId?: string | null, )
frontend/web/hooks/useVideoUpload.ts:86
↓ 1 callersMethod__init__
( self, in_channels, out_channels, kernel_size=3, pad=1, stride=1, bias=True )
backend/models/ball_tracker.py:10
↓ 1 callersMethod__init__
( self, input_dim: int = INPUT_DIM, n_classes: int = 3, n_channels: int = 64,
backend/models/stroke_classifier_tcn.py:68
↓ 1 callersMethod_augment_kp
(self, kp: np.ndarray, label: int)
backend/training/train_tcn.py:196
↓ 1 callersFunction_balanced_assign
Assign clips so each annotator gets per_person clips, equally split across courts. Strategy: 1. Target per (annotator, court) = per_person /
backend/tools/assign_clips.py:51
↓ 1 callersFunction_ball_near_player
Return True if the ball comes within `proximity` pixels of the player bbox in any frame within [frame_idx - window, frame_idx + window].
backend/vision/swing_detector.py:254
↓ 1 callersFunction_bounce_level_metrics
Group rows by clip, apply postprocess() like inference, then match against GT bounces.
backend/training/train_bounce.py:161
↓ 1 callersMethod_build_conf_indices
Map court configurations to indices in key_points list.
backend/vision/homography.py:29
↓ 1 callersFunction_build_entries
Return (entries, missing_clip_files, already_extracted_keypoints).
backend/tools/build_courtcheck_manifest.py:40
↓ 1 callersFunction_build_shot_records
For each swing in the group, pair it with the next bounce in the group and emit a shot record with court-projected bounce coords.
backend/pipeline/rallies.py:276
↓ 1 callersFunction_camera_token
(source: Path)
backend/training/cut_bounce_clips.py:29
↓ 1 callersFunction_classify_rally_end
Apply the end-reason rules from the spec to a rally event group.
backend/pipeline/rallies.py:207
↓ 1 callersMethod_compute_far_court_roi_bounds
Project the far-court rectangle (court ref space) into image space and return (x1, y1, x2, y2) with padding. Cached after first call —
backend/models/ball_tracker.py:231
↓ 1 callersFunction_compute_wrist_velocities
Compute per-frame wrist speed (max of left/right wrist) for one player.
backend/vision/swing_detector.py:203
↓ 1 callersFunction_cut
ffmpeg cut + H.264 re-encode (browser + OpenCV friendly).
backend/training/cut_bounce_clips.py:44
↓ 1 callersMethod_deleteSlide
(i)
docs/brand-drop/mocks/case-comp/deck-stage.js:1662
↓ 1 callersFunction_detect_camera_id
(name: str)
backend/training/extract_ball_modal.py:52
↓ 1 callersFunction_draw_bounce_dot
Draw a bounce marker on image (in-place copy). In-bounds: filled circle (radius 12) with white ring (radius 16, thickness 4). Out-of-boun
backend/vision/heatmaps.py:52
↓ 1 callersFunction_extract_clip
Write clip as H.264 MP4 (browser-compatible). OpenCV writes to a temp mp4v file first, then ffmpeg transcodes to H.264. mp4v is the only code
backend/tools/extract_swings_local.py:50
↓ 1 callersFunction_extract_one
Slice frames [start, end] from `video_path`, write H.264 mp4 to `out_path`.
backend/tools/extract_by_manifest.py:37
↓ 1 callersFunction_find_server
Return the player whose first swing was a serve, else the player of the first swing in the group (best-effort), else None.
backend/pipeline/rallies.py:261
↓ 1 callersFunction_find_velocity_peaks
Return frame indices where wrist velocity exceeds threshold (local maxima).
backend/vision/swing_detector.py:231
↓ 1 callersFunction_frame_level_metrics
(y_true: np.ndarray, y_pred: np.ndarray, threshold: float)
backend/training/train_bounce.py:140
↓ 1 callersFunction_get_supabase
()
backend/tools/purge_zombie_recordings.py:34
↓ 1 callersFunction_get_supabase
()
backend/tools/cleanup_old_raws.py:44
↓ 1 callersFunction_hard_coded_fallback
Minimal fallback roster based on publicly available UCD Women's Tennis data. Re-run after connectivity is restored to pull the live version.
backend/tools/seed_players.py:143
↓ 1 callersFunction_has_swing_after
( group: list[dict], frame: int, player: int, window_frames: int, )
backend/pipeline/rallies.py:191
↓ 1 callersMethod_infer_roi_crop
TrackNet inference on the far-court crop with its own 3-frame buffer. Returns (x, y) in CROP-space pixel coords, or (None, None).
backend/models/ball_tracker.py:286
↓ 1 callersMethod_init_weights
(self)
backend/models/ball_tracker.py:91
↓ 1 callersFunction_interpolate_ball_track
Fill None entries in ball_track by linear interpolation between nearby detected positions. Only gaps of <= max_gap frames are filled; longer
backend/pipeline/run.py:153
↓ 1 callersFunction_is_swing_a_return
Ball-approach gate: a swing only counts as a real return if the ball is moving toward the hitter's baseline in the 8 frames leading up to
backend/pipeline/run.py:400
↓ 1 callersFunction_jmda
Joint-Mixing Data Aug: replace a random subset of joints in A with B's.
backend/training/train_tcn.py:140
↓ 1 callersFunction_joint_jitter
Add Gaussian noise to (x, y). sigma is in normalized units, scaled to pixels.
backend/training/train_tcn.py:116
↓ 1 callersFunction_joint_mask
Zero a random subset of joints across the whole sequence. Hips and shoulders are protected because hip-center normalization depends on them.
backend/training/train_tcn.py:127
↓ 1 callersFunction_label_rows
Return 0/1 labels for each feature row, positive if within ±tolerance of any GT bounce.
backend/training/train_bounce.py:73
↓ 1 callersFunction_last_bounce_in_group
(group: list[dict])
backend/pipeline/rallies.py:176
↓ 1 callersFunction_last_swing_before
(group: list[dict], frame: int)
backend/pipeline/rallies.py:183
↓ 1 callersFunction_list_results_folder
(supabase, match_id: str)
backend/tools/purge_zombie_recordings.py:56
↓ 1 callersMethod_loadNotes
()
docs/brand-drop/mocks/case-comp/deck-stage.js:1064
← previousnext →101–200 of 770, ranked by callers