Skip to content

This repo contains the global ReadMe for this organisation explaining the purpose and structure of this Github organisation.

Notifications You must be signed in to change notification settings

DartCaller/MainReadMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 

Repository files navigation

DartCaller

This readme will explain the purpose and structure of the whole Dart Caller Github Organisation. It should serve as a basis to understand the problem, the domain, and the solution. The individual ReadMe's of the other repositories then help give more insights into the finer details of each repository.

๐Ÿค” The Problem

Imagine playing a dart game ๐ŸŽฏ with your friend on a classical, non-electronic dartboard. You have a sheet of paper or a whiteboard to write down and keep track of your scores. But no matter if your friend waits with his throw while you write down your score, or if he does not, I find that keeping track of the score yourself is tedious, distracting, and sometimes straight annoying.

๐Ÿ’ก The Solution

The rather obvious solution is to detect the darts and update the score automatically, just like electronic dartboards do. The dart detection technique used within this organization is based on two small cameras sitting on the edge of the dartboard and then calculating the intersection of the line of sights of each camera.

๐Ÿ—ƒ๏ธ Repositories

This organisation is split into 3 repositories:

Web

https://github.com/DartCaller/web This repository contains the Nuxt.js Frontend that visualizes the current state of the Dart Game. It connects to the server to let the user create a Dart Game, and see the newest scores being added as soon as the darts hit the dartboard.

Api

https://github.com/DartCaller/api Here lives the server managing the dart games and keeping them up to date whenever darts hit the dartboard. This server exposes an HTTP route that the python dart recognition software can use when it detected a new dart. As soon as a score is published to that route, the server notifies the frontend about the latest score.

Darts Recognition

https://github.com/DartCaller/darts-recognition In this repository lives all the magic. It contains the scripts to control the cameras on the dartboard and the logic to extract the dart scores from the images. The calculated scores for each dart then get sent to the server.

๐Ÿ“– Dart Glossary

Game

A game means the total play between two players and consists of one or more legs.

Leg

A leg is one full round where all players often start with 501 Points and play it down to zero.

Game Mode

There are many different Game Modes, the most popular being 501, where everyone starts with 501 points and has to score it down to zero first. In these repositories, you can also play 301 simply meaning everybody starts with 301 points instead of 501.

Score

dartboard-scoring-guide_large

image credit to https://shotdarts.com/

The word score in these repositories means either the points achieved with a single dart or three darts of one turn. The used notation to represent which field was hit is simply a combination of the ring that was hit (S = Single, D = Double, T = Tripple) and the number that was hit. So using the above image as an example:

  • The two arrows labeled Single Scoring point at S20 and S5
  • The arrow labeled Double Ring points at D4
  • The arrow labeled Triple Ring points at T4
  • The arrow labeled Single Bull points at S25
  • The arrow labeled Double Bull points at D25

About

This repo contains the global ReadMe for this organisation explaining the purpose and structure of this Github organisation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published