About
TopOut solves a common frustration for boulderers: hours of footage buried in a phone gallery with long rest periods and no structure. The app uses two on-device machine learning models—a floor segmentation model and a pose detection model—to continuously analyze your camera feed while you climb. When your feet leave the detected floor area, an attempt begins; when they return (after a fall or successful top), the attempt ends and is automatically saved as a distinct clip. The home screen provides a clean overview of all past recordings sorted by date, so reviewing a specific session is quick. Each recording groups all attempts together, and users can manually adjust the start and end times if the AI detection needs refinement. The full video is always retained, giving you full editorial control. Built with Kotlin and Jetpack Compose, TopOut uses a reactive, stream-based architecture: every camera frame and ML model result triggers an immutable state update, keeping the UI consistently in sync. Attempt metadata is stored locally in a Room database. The source code is publicly available on GitHub, making it a great reference for developers interested in on-device ML, camera APIs, or reactive Android architecture. The app is not yet publicly distributed but represents a compelling proof-of-concept for AI-assisted sports video management.
Key Features
- AI Attempt Detection: Uses floor segmentation and pose detection ML models to automatically identify when a climbing attempt starts and ends based on foot position.
- Automatic Video Segmentation: Long recordings are split into individual attempt clips, eliminating rest periods and making footage review fast and efficient.
- Session Overview: A clean home screen organizes all recordings by date, grouping every attempt within each climbing session for easy browsing.
- Manual Attempt Editing: Full source video is always retained, allowing users to manually adjust attempt start and end times if AI detection needs correction.
- On-Device Processing: All ML inference runs locally on the device with no cloud dependency, preserving privacy and enabling real-time detection.
Use Cases
- Boulderers recording training sessions who want to automatically review each attempt without scrubbing through long videos full of rest periods.
- Climbers tracking progress over time by reviewing organized attempt libraries from past sessions.
- Climbing coaches analyzing footage of students' technique without manually finding relevant clips.
- Developers exploring on-device ML, camera integration, or reactive Kotlin/Jetpack Compose architecture using a real-world reference project.
- Climbers looking to save phone storage by automatically isolating and labeling only the active climbing portions of their recordings.
Pros
- Saves Review Time: Automatically trims out rest periods so you only watch actual climbing footage, dramatically speeding up technique review.
- Automatic Organization: Attempts are grouped by session and sorted by date, replacing chaotic phone galleries with a structured climbing log.
- Open Source: Full source code is available on GitHub, making it free to use, modify, and a valuable reference for Android and on-device ML development.
Cons
- Android Only: The app is built exclusively for Android with Kotlin/Jetpack Compose; no iOS version exists.
- Not Publicly Available: The app is currently not listed on the Play Store and must be compiled from source to use.
- No Social Features Yet: Planned features like leaderboards and route matching are not yet implemented, limiting it to personal use only.
Frequently Asked Questions
TopOut uses two on-device ML models: a segmentation model that identifies the gym floor area and a pose detection model that locates your feet. When your feet leave the floor region, an attempt is marked as started; when they return after a fall or top, the attempt ends.
No, the app is not currently available for download on the Play Store. The source code is publicly available on GitHub at github.com/filippo-orru/top-out-app for those who want to build and run it themselves.
Yes. All AI inference is performed on-device using local ML models, so no internet connection is required during recording or attempt detection.
Yes. The full original video is always saved, and you can manually edit the start and end times of any attempt if the automatic detection was inaccurate.
TopOut is fully open source under a public GitHub repository and has no pricing or subscription model. It is free to compile and use.
