What the trainer records about your darts, where that record lives,
and the rules it follows.
β back to install & setup
Opting out is one line. Comment out DT_CENTRAL_URL in
/etc/dart-trainer/config.env and restart:
sudo nano /etc/dart-trainer/config.env # put a # in front of DT_CENTRAL_URL
sudo systemctl restart dart-trainer
Your rig then runs fully local: nothing leaves your Pi, and every game, score and statistic keeps working β the trainer is built local-first, so you lose no functionality on your own board.
Why we hope you stay in β three things only the central copy can do:
Since trainer 0.3.83, a throw isn't just a score β it is recorded together with the situation it was thrown into:
| recorded | example |
|---|---|
| Where it landed | exact board position in millimetres, plus the score (T20, D16, MISSβ¦) |
| What you were aiming at | in 501 the trainer knows from the game state: 32 left means this dart was thrown at D16; 170 left means T20. Every target game records its target per dart too. |
| What happened | bust, checkout, leg won, round halved (Bermuda), dart into a dead visit⦠|
| When | the true throw time β so session fatigue and pace can be measured later |
The source of truth for your statistics is a database on your own rig:
/var/lib/dart-trainer/stats.db. It is written on every dart, works with no internet
at all, and stays yours β if you opt out of the central service entirely (see below), you keep
collecting and (as the stats screens land) viewing your full statistics locally.
You can claim a player ID on the tablet: 12 words, shown once, written on paper. They
derive a cryptographic keypair (a Nostr-format npub β a pseudonymous public key).
What it does today: enter your words on any rig and your complete statistics history is restored
from the central backup, self-service β the recovery path for a dead SD card. What central
stores: only the binding between your npub and your player name; the secret never leaves your
rig. Strictly opt-in β everything works without one. The tablet can also show your words as
a QR code (to save or share) and scan one back to sign in on a friend's board β the photo is
decoded on the board itself and never stored. Lost your words and your rig? The operator
can re-bind your name to a fresh ID on request (that's the deliberate, friends-scale fallback).
Last updated: 15 July 2026 Β· applies to the dart-trainer app and the dataset/leaderboard service at dart-room.com
This is a private, invite-only, non-commercial hobby and research project, operated by z3n (dart-room.com). Contact for anything data-related, including all requests listed below: z3nlabs@proton.me. The operator's full identity is disclosed on request via that address.
| data | purpose | kept |
|---|---|---|
| Throw data β board coordinates, scores, per-throw game context (targets, busts, checkouts), throw timestamps | your statistics & leaderboards; training the open dart-detection model | until the project ends or you request deletion |
| Camera images of the dartboard captured per throw (3 cameras) | model training β this is the training data itself | until the project ends or you request deletion |
| Player name β free-text, chosen by you | attributing scores; shown on leaderboards | with the throw data |
| Rig identifier & calibration β a per-device id and the solved camera geometry | keeping every rig's data cleanly separate and re-scorable | with the throw data |
| Rig telemetry β app version, camera health, error log lines, feedback you send (with a screenshot of the app only if you tick the box) | diagnosing problems without anyone logging into your Pi | until no longer needed for diagnostics |
| Web-server logs β IP address, time, requested URL | operating and securing the service | 14 days (rotated daily) |
Under the GDPR you can request, at any time: access to the data stored about you (Art. 15), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), your data in a portable format (Art. 20), to object (Art. 21), and to withdraw consent with effect for the future (Art. 7(3)). Requests are handled free of charge and answered within one month at the latest (Art. 12) β in practice within days. (The GDPR's letter makes erasure conditional and lets manifestly excessive repeat requests be charged; neither matters here: because this project runs on your consent, withdrawing it obliges deletion β and beyond what the law requires, the operator's standing commitment is simpler: ask, and your rig's entire record is purged, no conditions.) One email to z3nlabs@proton.me (or a note via the in-app π¬ feedback button) is enough. You also have the right to complain to a data-protection supervisory authority.
β install & setup Β· dart-room.com Β· made for the crew π―