Monday, 8 August 2016

Magic Darts Wagon Wheel

The title "magic darts wagon wheel" isn't particularly satsifying. It includes two important words: "magic" and "darts", but referring to something that looks like a dartboard as a wagon wheel is maybe a little odd. Particularly considering the fact that it looks like a dartboard because it's a diagram of a dartboard. Wagon wheel just happens to be a term from sports broadcasting (cricket), which is why it is even being used here as the working title for my latest invention.

If it's displaying properly, here's the magic darts wagon wheel of Germany against India from the 2015 World Cup of Darts.

In case it isn't evident what's happening, I'll explain it in a few simple bullet-points:
  • the dartboards start white (actually coloured as normal but 100% transparent;
  • the beds that get hit (singles affect both beds irrespective of which is hit) get a little bit less transparent for each dart that hits them;
  • there are a few settings which mean that the type of bed being hit (single, double, treble etc.) is considered when determining the impact on opacity of a dart in that bed;
  • this is because you are probably hitting far fewer doubles that singles (for example) so if I want them registering on the magic darts wagon wheel, then I need to do that;
  • missed doubles (which hit nothing) are registered as black just outside the double;
  • I have these parameters easily editable – at the moment you enter the number of legs needed to win in the match and it gives you some suggested parameters - this may yet be fine-tuned based on results of testing;
  • the boards update automatically when you enter the beds hit, then I save an image of both boards after each visit to a board;
  • these are then strung together in a GIF making the animation of the whole match.
As you may well agree, this is pretty nice. Even a casual observer will see that India hit too many single 20s and too many treble 1s and never really hit any doubles.

There are a few things that I could still improve like:
  • tidying up the drawn dartboard. It's a little jaggy in places;
  • tidying up the programming for saving the image - it works but there is an approx. 1.5 second delay which could maybe be shortened with neater programming;
  • possibly add a scoreboard to the grapic, though as there is currently no entry of "double to win leg", this would require additional data entry (or something else like actually calculating the score based on the beds hit, which possibly wouldn't be impossible, but isn't currently included at all);
  • possible alteration to the means of data entry. Currently I have a grid and I add 1 to the appropriate cell but I could set up something where you enter the three beds hit, e.g. T20, T20, 20 and then it sources from there. Not sure if that would actually be easier though. Am considering something with dropdown menus;
  • other improvements based on testing and/or user feedback.

Please do comment and/or make suggestions for improvements. And, as with my darts wave, covered in previous posts on this blog, please do credit me if using the magic darts wagon wheel for your own darts matches, Twitter feeds or television broadcasts. Thanks.

Also as a little tip, for the latest news and updates, be sure to follow @herrbench on Twitter (that's me by the way) as that's where I'm often posting stuff like this in more reduced form, but including the nice graphics. And it's very handy to retweet stuff on Twitter so feel free to do that as well.


  1. I think it would look better if it had a bit more colour in it. Maybe you could make it so that the first dart in a bed a big impact like whacking the opacity up to 35% or something. It's more interesting to see the differences between a bed being hit 0, 1 and 2 times than 20, 21 and 22 times. I don't know how much your settings reflect that now, but I suggest making it reflect it more.

  2. This is an excellent suggestion. I will look into it. The current settings are just a simple linear scale of opacity. So if your max for a certain type of bed (e.g. singles) is 50 darts, then each dart gives you 2% additional opacity. With the doubles you get a nice splash of colour with the first hit because the max. is set much lower (equal to number of legs required to win match) but then not so much with something like a treble 1, which would indeed probably be nice to make a bit greener.

  3. You could try a formula like Max x (1-[2/3]^n) where Max is the maximum you've set for that bed and n is the number of darts in the bed. So when n is 0 you get 0 opacity, when n is 1 you get 1/3, when n is 2 you get 5/9, then 19/27 and so on. You could vary the 2/3 parameter or divide n by something until they start looking the way you want them. Maybe you could automatically generate a bunch of them for different values of Max x (1-a^kn) and just pick the one you like best.

  4. Thank you. I will use that as a start, certainly. I think it will be quite easy for me to implement based on my current setup as well. This is great!