← Portfolio
RangeCoach Native Android UI Mockup
Native Android · 240 FPSKotlin · Jetpack Compose · Audio DSP · CameraX

RangeCoachHigh-Speed 240fps Swing Analysis & Acoustic Strike Trigger

Target DeviceGoogle Pixel 10 Pro XL (Android 17 / API 37)ArchitecturePure Kotlin Core · 418 Desktop Unit TestsRoleCreative Technologist & Product Builder

The Engineering Problem

Standard smartphone golf apps fail on two fundamentals: golfers cannot touch their screen while holding a club on the range, and 30fps/60fps video produces 20ms+ motion blur that completely obscures ball impact.

RangeCoach was engineered as a zero-touch native Android system. The phone sits on a tripod behind the golfer, listening continuously through a circular audio ring buffer. Upon hearing the distinct acoustic signature of ball contact, it automatically slices and persists the 2.5 seconds before impact and 1.5 seconds after, running on-device pose estimation at 240fps without the golfer ever approaching the phone.

Acoustic Accuracy

45 / 45

Accepted real range strikes while correctly rejecting 19 adjacent bay shots.

Impact Precision

4 – 8 ms

Verified frame-by-frame within 1–2 frames at 240fps.

Under The Hood

Technical Architecture

01

Acoustic Strike Trigger (Zero-Touch)

Uses a high-frequency circular audio buffer (AudioRecord) running real-time spectral thresholding.

When a ball strike peak is verified, it commands the video pipeline to assemble the preceding 2.5s and succeeding 1.5s into an uncompressed MP4 segment. The golfer hits 50 balls continuously without ever walking to the tripod.

02

240fps CameraX High-Speed Pipeline

Interfaces directly with the Google Pixel 10 Pro XL camera HAL to lock high-speed 1080p @ 240fps recording with strict exposure control to eliminate club head motion blur.

Each frame is recorded at 4.16ms intervals with hardware timestamp validation before feeding into the decoding and pose estimation workers.

03

Pure Kotlin Core & 418 Desktop Unit Tests

The swing segmentation mathematics (analysis/, autocapture/, coach/) are completely decoupled from android.* APIs.

All 418 unit tests run in milliseconds on desktop JVM without emulators or devices, enabling rapid verification of tempo math (backswing/downswing ratios) and event segmentation.

04

Voice Caddie SC300i Radar Telemetry

Integrated with Doppler radar launch monitor data to read real-world ball metrics: carry distance, ball speed, club head speed, launch angle, and smash factor.

Feeds an insight correlation engine designed to compare mechanical body metrics (hip sway, head dip, early extension) against actual ball flight results.

Jetpack Compose Review Interface

RangeCoach Analysis Screen

Sub-Frame Scrubbing & Skeleton Toggle

The review screen built in Jetpack Compose allows frame-by-frame scrubbing with single-millisecond precision, slow-motion playback at 1/4x and 1/8x speeds, and instant jumping between swing landmarks: Address → Top → Impact → Finish.

  • Real-time skeletal angle overlays (shoulder rotation, spine angle)
  • Tempo ratio calculation (e.g. 2.7:1 backswing to downswing tempo)
  • Plain-language coaching bullets with honest measurement confidence

Technology Stack

Kotlin
Native Android Language
Jetpack Compose
Reactive UI Engine
CameraX / NDK
240fps Video Capture
AudioRecord DSP
Acoustic Trigger
Room SQLite
Offline Shot Database
Desktop JVM
418 Unit Tests