🚧Work in progress🚧
OpenDarts is a comprehensive dart application for playing, practicing, and socializing with fellow dart enthusiasts. The app provides everything you need for a complete dart experience, from game management and score tracking to social features and automated scoring capabilities.
React Native/Expo mobile application for comprehensive dart game management, practice sessions, and social interaction.
Demo Video:
Python WebSocket server that enables automated scoring through YOLO models for auto scoring.
Features:
- Automatic dartboard calibration
- Real-time scoring calculation
- Command-line tools for testing and calibration
Kotlin Spring Boot backend for game management and stabilization of auto scoring results.
- Mobile App: React Native, Expo, TypeScript
- Backend: Kotlin, Spring Boot, Maven for game and user management
- AutoScore Server Python, WebSockets, OpenCV, YOLO, Ultralytics
For all backend services:
docker compose up -dThe app can be found as apk in the releases section.
- Node.js 20+
- Python 3.11-3.12
- Java 21+
- uv (Python package manager)
-
AutoScore Server
cd autoscore-server uv sync autoscore-server -
Mobile App
cd app/open-darts-app npm ci npx expo start -
Backend
cd backend ./mvnw --pl core -amd clean compile spring-boot:run
Auto-Scoring
- The mobile app captures images of the dartboard using the device camera
- Images are sent to the AutoScore Server via WebSocket connection
- The server uses YOLO models to detect darts and calculate scores automatically
- Scoring results are sent back to the mobile app in real-time
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See the LICENSE file for details.
Dart detection model and portions of the codebase adapted from dart-sense. Built with Ultralytics YOLO for object detection and OpenCV for image processing.

