Author: Ondřej Lukášek (xlukas15) Institution: Brno University of Technology (VUT), Faculty of Information Technology
A mobile application for sports and recreational shooters that automates the evaluation of shooting results. Built with an offline-first approach, it uses an embedded computer vision model to detect bullet holes in paper targets directly on the device.
Developed as a part of a Master's Thesis at Brno University of Technology (VUT).
- Real-time Hit Detection: Utilizes a custom-trained YOLOv8 computer vision model (quantized to FP16) to accurately identify new shots on paper targets.
- Offline-First Architecture: Completely functional without an internet connection, ensuring reliability at indoor and remote outdoor shooting ranges.
- Progress Tracking: Saves shooting sessions, calculates total shots, and visually differentiates between previous and new hits.
- Privacy: All images, data, and models are processed and stored locally on the user's device.
- Framework: React Native with Expo (File-based routing with Expo Router)
- Machine Learning: TensorFlow Lite via
react-native-fast-tflite - Camera Handling: Vision Camera
- Database & Storage:
expo-sqliteandexpo-file-system - State Management: TanStack Query for reactive database state
- Styling: NativeWind (Tailwind CSS for React Native)
- Node.js (LTS version recommended) (developed with version v24.13.1)
- Expo CLI
- EAS CLI (for building the app remotely)
-
Clone the repository:
git clone <your-repo-url> cd onpoint
-
Install dependencies:
npm install
-
Important: Important: Ensure the trained YOLOv8 model (
best_finetuned_float16.tflite) is placed in the./assets/model/directory before running the app.
To start the development server, run:
npx expo startNote: Since this app relies heavily on native modules (Vision Camera, Fast TFLite), it is highly recommended to test on a physical device using a Custom Development Build rather than Expo Go.
To build on physical device (recommended), you can use following command to run on device with native modules:
Android:
npx expo run:android --deviceIOS:
npx expo run:ios --deviceTo generate a standalone .apk for Android testing using Expo Application Services (EAS):
eas build -p android --profile previewOnce the build finishes, scan the provided QR code to download and install the app on your Android device.